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

好的网站建设公司哪家好/网络推广app是干什么的

好的网站建设公司哪家好,网络推广app是干什么的,淘宝客网站设计,网易企业邮箱登录入口网页版题目大意 http://www.lydsy.com/JudgeOnline/problem.php?id4003 题解 一开始看漏条件了题目保证当占领城池可以使攻击力乘上\(v_i\)时,一定有\(v_i>0\) 上面这句话很重要(或者说去掉这句话就可以出成一道新题) 我们考虑在每个节点上都维护一个最小堆 每次移动时我们让在堆…

题目大意

http://www.lydsy.com/JudgeOnline/problem.php?id=4003

题解

一开始看漏条件了
题目保证当占领城池可以使攻击力乘上\(v_i\)时,一定有\(v_i>0\)
上面这句话很重要(或者说去掉这句话就可以出成一道新题)
我们考虑在每个节点上都维护一个最小堆
每次移动时我们让在堆中的所有骑士一起移动
这样我们知道:如果堆顶的骑士可以占领成功
那么这个堆里剩下的所有骑士都一定能够占领成功
如果堆顶元素无法占领我们就删去这个堆顶的元素,这样我们最多删除n次
最坏情况是\(O(nlogn)\)的,可以承受
所以我们还需要这个堆支持快速合并,任意一个可并堆即可

于是我敲了一棵左偏树上去...打标记打到手软...第一次在堆上打标记
这个标记的正确性就由上面加粗的话保证了
这句话保证了:打标记后树的结构不会改变

调了1h才发现是merge没有return...
神奇的windows系统还让我过了样例和对拍,linux虚拟机下直接爆炸

Code

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
template<typename T>inline void read(T &x){x=0;char ch;bool flag = false;while(ch=getchar(),ch<'!');if(ch == '-') ch=getchar(),flag = true;while(x=10*x+ch-'0',ch=getchar(),ch>'!');if(flag) x=-x;
}
inline int cat_max(const int &a,const int &b){return a>b ? a:b;}
inline int cat_min(const int &a,const int &b){return a<b ? a:b;}
const int maxn = 300010;
struct Node{Node *ch[2];ll val,add,mul;int cnt,tag,deg,id;
}*null;
Node mem[maxn<<1],*li;
Node *root[maxn];
inline void init(){li = mem;null = li++;null->ch[0] = null->ch[1] = null;null->val = null->add = null->cnt = null->tag = null->mul = 0;
}
inline Node* newNode(int id,ll val){Node *p = li++;p->val = val;p->ch[0] = p->ch[1] = null;p->cnt = p->tag = p->deg = p->add = 0;p->mul = 1;p->id = id;return p;
}
inline void pushdown(Node *p){if(p == null) return;if(p->ch[0] != null){Node *x = p->ch[0];if(p->mul != 1){x->mul *= p->mul;x->add *= p->mul;x->val *= p->mul;}if(p->add != 0){x->add += p->add;x->val += p->add;}if(p->tag != 0){x->tag += p->tag;x->cnt += p->tag;}}if(p->ch[1] != null){Node *x = p->ch[1];if(p->mul != 1){x->mul *= p->mul;x->add *= p->mul;x->val *= p->mul;}if(p->add != 0){x->add += p->add;x->val += p->add;}if(p->tag != 0){x->tag += p->tag;x->cnt += p->tag;}}p->mul = 1;p->tag = p->add = 0;
}
Node *merge(Node *x,Node *y){//printf("%d %d\n",x,y);if(x == null) return y;if(y == null) return x;if(x->val > y->val) swap(x,y);pushdown(x);x->ch[1] = merge(x->ch[1],y);if(x->ch[0]->deg < x->ch[1]->deg)swap(x->ch[0],x->ch[1]);x->deg = x->ch[1]->deg + 1;return x;
}
int ans1[maxn],ans2[maxn];
inline void pop_less(int i,ll k,int p){while(1){if(root[i] == null) break;if(root[i]->val >= k) break;pushdown(root[i]);ans2[root[i]->id] = root[i]->cnt;//printf("%d died on %d with killed %d\n",root[i]->id,p,root[i]->cnt);//printf("%lld <-> %lld\n",root[i]->val,k);root[i] = merge(root[i]->ch[0],root[i]->ch[1]);ans1[p]++;}
}
ll h[maxn],v[maxn],s[maxn];
int c[maxn],fa[maxn],a[maxn];
inline void update(Node *p,int i){//printf("update");p->tag++;p->cnt++;if(a[i] == 0){p->add += v[i];p->val += v[i];}else{p->mul *= v[i];p->add *= v[i];p->val *= v[i];}
}
int main(){init();int n,m;read(n);read(m);for(int i=1;i<=n;++i) read(h[i]),root[i] = null;//printf("%d\n",root[2]);for(int i=2;i<=n;++i){read(fa[i]);read(a[i]);read(v[i]);}for(int i=1;i<=m;++i){read(s[i]);read(c[i]);if(s[i] < h[c[i]]){ans1[c[i]]++;ans2[i] = 0;}else{Node *p = newNode(i,s[i]);update(p,c[i]);root[c[i]] = merge(root[c[i]],p);}}for(int i=n;i>=2;--i){pop_less(i,h[fa[i]],fa[i]);update(root[i],fa[i]);root[fa[i]] = merge(root[i],root[fa[i]]);}while(root[1] != null){pushdown(root[1]);ans2[root[1]->id] = root[1]->cnt;//printf("%d win with killed %d\n",root[1]->id,root[1]->cnt);root[1] = merge(root[1]->ch[0],root[1]->ch[1]);}for(int i=1;i<=n;++i) printf("%d\n",ans1[i]);for(int i=1;i<=m;++i) printf("%d\n",ans2[i]);getchar();getchar();return 0;
}

转载于:https://www.cnblogs.com/Skyminer/p/6414082.html

http://www.lbrq.cn/news/1545535.html

相关文章:

  • 苏州h5建站/网店培训
  • 网件路由器wifi初始密码/免费seo排名优化
  • 网站建设教程参加苏州久远网络/网站站点查询
  • 铜川市网站建设/seo外包靠谱
  • 网络营销推广的应用场景/百度网站的优化方案
  • wordpress主页分栏/廊坊百度快照优化哪家服务好
  • 深圳网站设计招聘信息/代运营公司怎么找客户
  • 大连微网站建设/100种宣传方式
  • 做便民网站都需要哪些模块/免费推客推广平台
  • 时时彩网站开发代理代码/新浪舆情通官网
  • 制作一个网站步骤排版/seo优化排名易下拉用法
  • 短视频营销是什么意思/深圳百度seo整站
  • 网站上传文件/企业网站管理系统
  • 镜像网站怎么做排名/最有效的线上推广方式
  • wordpress软件下载站/咨询公司
  • java做企业网站/直通车关键词怎么优化
  • 运动猿app 网站开发/网络整合营销
  • 如何做一个静态网站/用模板快速建站
  • 温州敎玩具网站建设/百度官方客户端
  • 做网站没有公网/网络平台推广方案
  • 做网站公司 信科网络/今日头条国际新闻
  • 网站开发团队奖惩/天门seo
  • 一个几个人做网站的几个故事电影/信息推广
  • 视频网站用户增长怎么做/360推广登录入口官网
  • 网站 服务器 域名/广州头条今日头条新闻
  • 如何选择昆明网站建设/互联网推广员是做什么的
  • 做家具城网站的意义/百度网站优化公司
  • 手机app界面设计优秀作品/昆明百度推广优化
  • wordpress数据库登录密码/windows优化大师怎么样
  • 注册域名后怎么做网站/南京网站设计公司大全
  • 技术分享:跨域问题的由来与解决
  • AP6275S AMPAK正基WiFi6模块方案与应用
  • 【GNSS定位原理及算法杂记5】​​​​PPK(后处理动态定位)深度解析:后处理的艺术与 RTK 的互补
  • 常见的 Bash 命令及简单脚本
  • 如何新建一个自己的虚拟环境
  • AR技术为消防救援装上“智能透视眼”