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

如何做网站联盟营销什么广告推广最有效果

如何做网站联盟营销,什么广告推广最有效果,哪个网站可以做任务,免费做淘宝客网站有哪些链接: 1993. 树上的操作 题意 **Lock:**指定用户给指定节点 上锁 ,上锁后其他用户将无法给同一节点上锁。只有当节点处于未上锁的状态下,才能进行上锁操作。**Unlock:**指定用户给指定节点 解锁 ,只有当…

链接:

1993. 树上的操作

题意

  • **Lock:**指定用户给指定节点 上锁 ,上锁后其他用户将无法给同一节点上锁。只有当节点处于未上锁的状态下,才能进行上锁操作。
  • **Unlock:**指定用户给指定节点 解锁 ,只有当指定节点当前正被指定用户锁住时,才能执行该解锁操作。
  • Upgrade:指定用户给指定节点 上锁 ,并且将该节点的所有子孙节点 解锁 。只有如下 3 个条件全部满足时才能执行升级操作:
    • 指定节点当前状态为未上锁。
    • 指定节点至少有一个上锁状态的子孙节点(可以是 任意 用户上锁的)。
    • 指定节点没有任何上锁的祖先节点。

基础的类设计,用到的是递归/dfs

可以用递归优化子节点的查询,同时把修改子节点的值

 bool check2(int num){bool ans=false;for(auto s:son[num]){ans |= book[s]!=0;book[s]=0;ans |= check2(s);}return ans;}

实际代码:

class LockingTree {
public:vector<int>parent;vector<vector<int>>son;vector<int>book;LockingTree(vector<int>& parent) {this->parent=parent;book.resize(parent.size());son.resize(parent.size());for(int i=0;i<parent.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 ans=false;vector<int>begin=son[num];while(true){vector<int>next;for(auto b:begin){if(book[b]){ans=true;book[b]=0;}for(auto bson:son[b]){next.push_back(bson);}}if(next.empty()) break;begin=next;}return ans;}bool check1(int num){while(parent[num]!=-1){num=parent[num];if(book[num]) return false;}return true;}void clear(int num){vector<int>begin=son[num];while(true){vector<int>next;for(auto b:begin){if(book[b]) book[b]=0;for(auto bson:son[b]){next.push_back(bson);}}if(next.empty()) break;begin=next;}}
};/*** 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.length
  • 2 <= n <= 2000
  • 对于 i != 0 ,满足 0 <= parent[i] <= n - 1
  • parent[0] == -1
  • 0 <= num <= n - 1
  • 1 <= user <= 104
  • parent 表示一棵合法的树。
  • lockunlockupgrade 的调用 总共 不超过 2000 次。
http://www.15wanjia.com/news/51545.html

相关文章:

  • 深圳html5网站制作bt磁力搜索引擎索引
  • iis默认网站不能启动企业网站设计论文
  • 深圳网络优化网络优化培训骗局
  • 企业官方网站怎么建设雅思培训班价格一览表
  • 网站首页设计代码巨量数据分析入口
  • apache 网站建设营销网站建设方案
  • 做网站时如何给文字做超链接如何自己制作一个网站
  • 企业网站备案名称窍门网上全网推广
  • 做pc端网站哪家好seo公司推荐推广平台
  • 企业网站的好处自己怎么优化网站排名
  • 丹阳建站微博营销
  • 红河网络营销aso搜索优化
  • 电子手表网站重庆seo技术
  • 济南正规做网站公司史上最强大的搜索神器
  • H5响应式网站数据网络营销的渠道
  • 做结婚视频储存网站成都网站搭建优化推广
  • WordPress首页站内搜索搜盘网
  • 阅读网站建设百度商业平台
  • 做网站用到的软件关键词有哪些?
  • 外贸网站做开关行业的哪个好合肥网络推广营销
  • 邢台做网站信息运用搜索引擎营销的案例
  • 做网页赚钱的网站百度公司官网招聘
  • 做婚纱摄影网站钦州seo
  • les做ml网站关键词排名推广方法
  • 自己做网站流程重庆百度快速优化
  • 新的网站建设seo推广优化
  • 深圳网络营销公司排行榜360优化大师安卓下载
  • 自己做网站怎么让字体居中营销推广的平台
  • 成都网站设计哪家好有哪些网站可以免费推广
  • 医院做网站的意义域名查询网