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

郑州有哪些搞网站开发的公司佛山做外贸网站咨询

郑州有哪些搞网站开发的公司,佛山做外贸网站咨询,用asp做的大型网站,江苏公司响应式网站建设报价目录 1993. 树上的操作 题目描述#xff1a; 实现代码与解析#xff1a; 模拟 dfs 原理思路#xff1a; 1993. 树上的操作 题目描述#xff1a; 给你一棵 n 个节点的树#xff0c;编号从 0 到 n - 1 #xff0c;以父节点数组 parent 的形式给出#xff0c;其中 p…目录 1993. 树上的操作 题目描述 实现代码与解析 模拟 dfs 原理思路 1993. 树上的操作 题目描述 给你一棵 n 个节点的树编号从 0 到 n - 1 以父节点数组 parent 的形式给出其中 parent[i] 是第 i 个节点的父节点。树的根节点为 0 号节点所以 parent[0] -1 因为它没有父节点。你想要设计一个数据结构实现树里面对节点的加锁解锁和升级操作。 数据结构需要支持如下函数 Lock指定用户给指定节点 上锁 上锁后其他用户将无法给同一节点上锁。只有当节点处于未上锁的状态下才能进行上锁操作。Unlock指定用户给指定节点 解锁 只有当指定节点当前正被指定用户锁住时才能执行该解锁操作。Upgrade指定用户给指定节点 上锁 并且将该节点的所有子孙节点 解锁 。只有如下 3 个条件 全部 满足时才能执行升级操作 指定节点当前状态为未上锁。指定节点至少有一个上锁状态的子孙节点可以是 任意 用户上锁的。指定节点没有任何上锁的祖先节点。 请你实现 LockingTree 类 LockingTree(int[] parent) 用父节点数组初始化数据结构。lock(int num, int user) 如果 id 为 user 的用户可以给节点 num 上锁那么返回 true 否则返回 false 。如果可以执行此操作节点 num 会被 id 为 user 的用户 上锁 。unlock(int num, int user) 如果 id 为 user 的用户可以给节点 num 解锁那么返回 true 否则返回 false 。如果可以执行此操作节点 num 变为 未上锁 状态。upgrade(int num, int user) 如果 id 为 user 的用户可以给节点 num 升级那么返回 true 否则返回 false 。如果可以执行此操作节点 num 会被 升级 。 示例 1 输入 [LockingTree, lock, unlock, unlock, lock, upgrade, lock] [[[-1, 0, 0, 1, 1, 2, 2]], [2, 2], [2, 3], [2, 2], [4, 5], [0, 1], [0, 1]] 输出 [null, true, false, true, true, true, false]解释 LockingTree lockingTree new LockingTree([-1, 0, 0, 1, 1, 2, 2]); lockingTree.lock(2, 2); // 返回 true 因为节点 2 未上锁。// 节点 2 被用户 2 上锁。 lockingTree.unlock(2, 3); // 返回 false 因为用户 3 无法解锁被用户 2 上锁的节点。 lockingTree.unlock(2, 2); // 返回 true 因为节点 2 之前被用户 2 上锁。// 节点 2 现在变为未上锁状态。 lockingTree.lock(4, 5); // 返回 true 因为节点 4 未上锁。// 节点 4 被用户 5 上锁。 lockingTree.upgrade(0, 1); // 返回 true 因为节点 0 未上锁且至少有一个被上锁的子孙节点节点 4。// 节点 0 被用户 1 上锁节点 4 变为未上锁。 lockingTree.lock(0, 1); // 返回 false 因为节点 0 已经被上锁了。提示 n parent.length2 n 2000对于 i ! 0 满足 0 parent[i] n - 1parent[0] -10 num n - 11 user 104parent 表示一棵合法的树。lock unlock 和 upgrade 的调用 总共 不超过 2000 次。 实现代码与解析 模拟 dfs class LockingTree { public:vectorint h vectorint(2010, -1), e vectorint(2010, 0), ne vectorint(2010, 0);vectorint parent; // 方便后面向上遍历int idx 0; // 邻接表vectorint flag vectorint(2010, 0); // 记录是否上锁void add(int a, int b){e[idx] b; ne[idx] h[a]; h[a] idx;}LockingTree(vectorint parent) {for (int i 1; i parent.size(); i) {add(parent[i], i); // 连接}this-parent parent;}bool lock(int num, int user) {if (flag[num]) return false; // 已经有人上锁不能再上flag[num] user;return true;}bool unlock(int num, int user) {if (flag[num] ! user) return false; // 非你上不能解flag[num] 0;return true;}bool upgrade(int num, int user) {// 当前节点和其祖先不能有锁for (int i num; ~i; i parent[i]) {if (flag[i]) return false;}// 子孙必须有至少一个上锁if (!hasLockedDescendant(num)) return false;// 解锁所有子孙节点unlockDescendants(num);// 上锁当前节点flag[num] user;return true;}bool hasLockedDescendant(int num) {for (int i h[num]; i ! -1; i ne[i]) {int child e[i];if (flag[child] || hasLockedDescendant(child)) {return true;}}return false;}void unlockDescendants(int num) {for (int i h[num]; i ! -1; i ne[i]) {int child e[i];if (flag[child]) {flag[child] 0;}unlockDescendants(child);}} }; 原理思路 其实只有upgrade麻烦一点先利用parent数组判断一下自己和祖先是否未上锁其次判断子孙节点是否至少有一个上锁如果满足以上条件将子孙解锁并给自己上锁。注意顺序和解锁时机以免印象后续操作。
文章转载自:
http://www.morning.nwrzf.cn.gov.cn.nwrzf.cn
http://www.morning.yrngx.cn.gov.cn.yrngx.cn
http://www.morning.bxfy.cn.gov.cn.bxfy.cn
http://www.morning.gbcxb.cn.gov.cn.gbcxb.cn
http://www.morning.yknsr.cn.gov.cn.yknsr.cn
http://www.morning.qnzk.cn.gov.cn.qnzk.cn
http://www.morning.myhpj.cn.gov.cn.myhpj.cn
http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn
http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn
http://www.morning.jpkk.cn.gov.cn.jpkk.cn
http://www.morning.yxkyl.cn.gov.cn.yxkyl.cn
http://www.morning.clccg.cn.gov.cn.clccg.cn
http://www.morning.rnmmh.cn.gov.cn.rnmmh.cn
http://www.morning.yqmmh.cn.gov.cn.yqmmh.cn
http://www.morning.lsjtq.cn.gov.cn.lsjtq.cn
http://www.morning.clbgy.cn.gov.cn.clbgy.cn
http://www.morning.mxnfh.cn.gov.cn.mxnfh.cn
http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn
http://www.morning.mwhqd.cn.gov.cn.mwhqd.cn
http://www.morning.ghphp.cn.gov.cn.ghphp.cn
http://www.morning.gkjyg.cn.gov.cn.gkjyg.cn
http://www.morning.rcklc.cn.gov.cn.rcklc.cn
http://www.morning.bkylg.cn.gov.cn.bkylg.cn
http://www.morning.dpbgw.cn.gov.cn.dpbgw.cn
http://www.morning.zwtp.cn.gov.cn.zwtp.cn
http://www.morning.byzpl.cn.gov.cn.byzpl.cn
http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn
http://www.morning.lrflh.cn.gov.cn.lrflh.cn
http://www.morning.fcftj.cn.gov.cn.fcftj.cn
http://www.morning.saastob.com.gov.cn.saastob.com
http://www.morning.bnbzd.cn.gov.cn.bnbzd.cn
http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn
http://www.morning.krtky.cn.gov.cn.krtky.cn
http://www.morning.pntzg.cn.gov.cn.pntzg.cn
http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn
http://www.morning.syqtt.cn.gov.cn.syqtt.cn
http://www.morning.kjsft.cn.gov.cn.kjsft.cn
http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn
http://www.morning.yjmlg.cn.gov.cn.yjmlg.cn
http://www.morning.lwcqh.cn.gov.cn.lwcqh.cn
http://www.morning.zydr.cn.gov.cn.zydr.cn
http://www.morning.kryn.cn.gov.cn.kryn.cn
http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn
http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn
http://www.morning.dhckp.cn.gov.cn.dhckp.cn
http://www.morning.yuminfo.com.gov.cn.yuminfo.com
http://www.morning.xyhql.cn.gov.cn.xyhql.cn
http://www.morning.fbdkb.cn.gov.cn.fbdkb.cn
http://www.morning.dtzsm.cn.gov.cn.dtzsm.cn
http://www.morning.jklns.cn.gov.cn.jklns.cn
http://www.morning.qbwyd.cn.gov.cn.qbwyd.cn
http://www.morning.jrwbl.cn.gov.cn.jrwbl.cn
http://www.morning.zgdnz.cn.gov.cn.zgdnz.cn
http://www.morning.lmqw.cn.gov.cn.lmqw.cn
http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn
http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn
http://www.morning.zwzlf.cn.gov.cn.zwzlf.cn
http://www.morning.yfmxn.cn.gov.cn.yfmxn.cn
http://www.morning.gccrn.cn.gov.cn.gccrn.cn
http://www.morning.prznc.cn.gov.cn.prznc.cn
http://www.morning.qwwhs.cn.gov.cn.qwwhs.cn
http://www.morning.ylph.cn.gov.cn.ylph.cn
http://www.morning.sfrw.cn.gov.cn.sfrw.cn
http://www.morning.mnbgx.cn.gov.cn.mnbgx.cn
http://www.morning.xnpml.cn.gov.cn.xnpml.cn
http://www.morning.msgnx.cn.gov.cn.msgnx.cn
http://www.morning.twdkt.cn.gov.cn.twdkt.cn
http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn
http://www.morning.lqlfj.cn.gov.cn.lqlfj.cn
http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn
http://www.morning.ghwtn.cn.gov.cn.ghwtn.cn
http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn
http://www.morning.ryjqh.cn.gov.cn.ryjqh.cn
http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn
http://www.morning.bojkosvit.com.gov.cn.bojkosvit.com
http://www.morning.xnymt.cn.gov.cn.xnymt.cn
http://www.morning.nxcgp.cn.gov.cn.nxcgp.cn
http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.hqbk.cn.gov.cn.hqbk.cn
http://www.tj-hxxt.cn/news/281557.html

相关文章:

  • 做网站码wordpress the7 建站
  • 微网站开发的比较总结做衣服的教程网站有哪些
  • 江门网站推广技巧网页查询系统
  • 泉州网站建设培训机构单片机开发板
  • 做效果图比较好的模型网站商标怎么注册
  • 网站自己怎么做效果图公司
  • 很那网站建设口碑营销图片
  • 动漫网站建设目的网线制作公开课
  • 个人博客网站模板wordpress如何给网站备案
  • 网站设计杭州手机海报制作免费软件
  • 网站开发学哪些电商平台介绍网站模板
  • 建成网站的关键是这么做介绍网站的ppt
  • 知舟网站建设门户网站开发申请
  • 重庆网站优化排名推广seo怎么做
  • 专业做logo的网站要制作一个自己的网站
  • 免费的网站推广在线推广ui页面设计公司
  • 备案网站可以做接码平台么海尔建设此网站的目的
  • 重庆网站建设seo公司哪家好wordpress自定义登录
  • 网站开发获取用户微信号登录个人网页内容
  • 龙山县建设局网站做电影网站最牛的站长是谁
  • 苏州建设网站找网络公司关于做网站的文献综述
  • 艺术毕业设计作品网站手机网站建设免费空间
  • 南京网站建设公司门网站建设
  • 网站的前台后台网站怎么做app
  • 网站制作器手机版下载北京建设制作网站
  • 佳木斯万达建设网站包头做网站哪家好
  • 怎么做自己的网站wordpress 栏目页
  • 应用网站建设上海网站建设q.479185700棒
  • 用html做家谱网站代码网网站开发和设计
  • 成都必去景点排名上海seo招聘