当前位置: 首页 > news >正文

签约网站做PPT上海市建上海市建设安全协会网站

签约网站做PPT,上海市建上海市建设安全协会网站,湖北省建设网站,网站建设费要摊销吗链接#xff1a; 1993. 树上的操作 题意 **Lock#xff1a;**指定用户给指定节点 上锁 #xff0c;上锁后其他用户将无法给同一节点上锁。只有当节点处于未上锁的状态下#xff0c;才能进行上锁操作。**Unlock#xff1a;**指定用户给指定节点 解锁 #xff0c;只有当…链接 1993. 树上的操作 题意 **Lock**指定用户给指定节点 上锁 上锁后其他用户将无法给同一节点上锁。只有当节点处于未上锁的状态下才能进行上锁操作。**Unlock**指定用户给指定节点 解锁 只有当指定节点当前正被指定用户锁住时才能执行该解锁操作。Upgrade指定用户给指定节点 上锁 并且将该节点的所有子孙节点 解锁 。只有如下 3 个条件全部满足时才能执行升级操作 指定节点当前状态为未上锁。指定节点至少有一个上锁状态的子孙节点可以是 任意 用户上锁的。指定节点没有任何上锁的祖先节点。 解 基础的类设计用到的是递归/dfs 可以用递归优化子节点的查询同时把修改子节点的值 bool check2(int num){bool ansfalse;for(auto s:son[num]){ans | book[s]!0;book[s]0;ans | check2(s);}return ans;}实际代码 class LockingTree { public:vectorintparent;vectorvectorintson;vectorintbook;LockingTree(vectorint parent) {this-parentparent;book.resize(parent.size());son.resize(parent.size());for(int i0;iparent.size();i){if(parent[i]0){son[parent[i]].push_back(i);}}}bool lock(int num, int user) {if(book[num]0){book[num]user;return true;}return false;}bool unlock(int num, int user) {if(book[num]user){book[num]0;return true;}return false;}bool upgrade(int num, int user) {if(book[num]0){if(check1(num) check2(num)){book[num]user;//clear(num);return true;}}return false;}bool check2(int num){bool ansfalse;vectorintbeginson[num];while(true){vectorintnext;for(auto b:begin){if(book[b]){anstrue;book[b]0;}for(auto bson:son[b]){next.push_back(bson);}}if(next.empty()) break;beginnext;}return ans;}bool check1(int num){while(parent[num]!-1){numparent[num];if(book[num]) return false;}return true;}void clear(int num){vectorintbeginson[num];while(true){vectorintnext;for(auto b:begin){if(book[b]) book[b]0;for(auto bson:son[b]){next.push_back(bson);}}if(next.empty()) break;beginnext;}} };/*** Your LockingTree object will be instantiated and called as such:* LockingTree* obj new LockingTree(parent);* bool param_1 obj-lock(num,user);* bool param_2 obj-unlock(num,user);* bool param_3 obj-upgrade(num,user);*/限制 n parent.length2 n 2000对于 i ! 0 满足 0 parent[i] n - 1parent[0] -10 num n - 11 user 104parent 表示一棵合法的树。lock unlock 和 upgrade 的调用 总共 不超过 2000 次。
http://www.dnsts.com.cn/news/74239.html

相关文章:

  • 校园网页设计模板河源市seo推广
  • 北京网站建设亿玛酷专注4简单企业网站模板
  • 烟台市两学一做网站免费行情软件app网站下载大全
  • 简述网站制作方案和主要内容转转怎么做钓鱼网站
  • 安徽城乡建设 厅网站深圳燃气公司服务电话
  • 建筑网站建设赏析济南新站seo外包
  • 怎样查网站和增加网站福州百诚互联
  • 学做网站零基础个人网站建设优化
  • 用ps切片做网站能不能完成济南网站建设咨询电话
  • 企业商城网站建设方案基础建设文本网站
  • 网站服务类型帮朋友做网站的坑
  • 网站维护页面模板快手作品推广网站
  • 福州房产网站建设xp系统做局域网内网站
  • 服务好的高端网站建设深圳市建设设计院网站
  • 电商网站建设浩森宇特怎样在网站做链接
  • 网站建设方案书模板 备案网络营销策划方案案例
  • 动感网站模板vps wordpress
  • 有没有公司做农副产品网站的263企业邮箱入口注册
  • 祁阳网站设计广州外包公司都有哪些
  • 图片点击就能跳转网站怎么做的网站建设中网站制作包括哪些内容
  • 网站设计公司发展大连市房屋管理局官网
  • 河南电商网站开发网站开发主流技术线路介绍
  • vs2010网站开发实例seo推广思路
  • 做查询网站有哪些云南旅游网站
  • 微信营销手机网站模板长春seo顾问
  • wordpress整站密码访问wordpress调用副标题
  • ping一下新浪网站怎么做上海做软件
  • 现在流行用什么做网站一呼百应网做的网站
  • 江苏五星建设集团有限公司网站如何自己搭建一个企业网站
  • 创建网站的步骤网站制作时间