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

网站非法篡改兰州网站建设慕枫

网站非法篡改,兰州网站建设慕枫,拓网手机版网站管理系统,加盟装修公司哪家不要加盟费城池攻占 bzoj-4003 JLOI-2015 题目大意#xff1a;一颗n个节点的有根数#xff0c;m个有初始战斗力的骑士都站在节点上。每一个节点有一个standard#xff0c;如果这个骑士的战斗力超过了这个门槛#xff0c;他就会根据城池的奖励增加自己的战斗力。具体地#xff1a;每一…城池攻占 bzoj-4003 JLOI-2015     题目大意一颗n个节点的有根数m个有初始战斗力的骑士都站在节点上。每一个节点有一个standard如果这个骑士的战斗力超过了这个门槛他就会根据城池的奖励增加自己的战斗力。具体地每一个城池有一个flag和一个val表示成功到达这个城市的骑士的战斗力会乘上val还是加上val。每个骑士都只会向根节点进攻。输出每个骑士败北的城市编号。如果这个骑士成功到达根节点输出0。     注释$1\le n,m \le 3\cdot 10^5$$-10^{18}\le standard , val , attack \le 10^{18}$。保证每一个骑士的atk不大于longlong。       想法GXZlegend可并堆例题。和上两道题类似地我们对于每一个城池维护一个小根堆元素是是当前节点为子树里的骑士到达这里的atk我们自底向顶修改城墙顺便将骑士向上推以及标记的下传。我们在merge函数中完成pushdown的操作。特别地在维护双标记的时候我默认是先乘后加所以在pushdown的时候如果发现有乘法标记的话需要先将加法标记扩大再下传。     最后附上丑陋的代码... ... #include cstdio #include cstring #include algorithm #define N 300010 using namespace std; typedef long long ll; int head[N],to[N],type[N],next[N],cnt,root[N],l[N],r[N],d[N],deep[N],from[N],kill[N],atk[N]; ll val[N],h[N],key[N],tadd[N],tmul[N]; inline void add(int x,int y,int a,ll b) {to[cnt]y;type[cnt]a;val[cnt]b;next[cnt]head[x];head[x]cnt; } inline void pushdown(int x) {if(!x)return;if(tmul[x]!1){key[l[x]]*tmul[x];tadd[l[x]]*tmul[x];tmul[l[x]]*tmul[x];key[r[x]]*tmul[x];tadd[r[x]]*tmul[x];tmul[r[x]]*tmul[x];tmul[x]1;}if(tadd[x]){key[l[x]]tadd[x];tadd[l[x]]tadd[x];key[r[x]]tadd[x];tadd[r[x]]tadd[x];tadd[x]0;} } int merge(int x,int y) {if(!x) return y;if(!y) return x;pushdown(x),pushdown(y);if(key[x]key[y]) swap(x,y);r[x]merge(r[x],y);if(d[l[x]]d[r[x]]) swap(l[x],r[x]);d[x]d[r[x]]1;return x; } void dfs(int x) {for(int ihead[x];i;inext[i]){deep[to[i]]deep[x]1;dfs(to[i]);if(type[i]){key[root[to[i]]]*val[i];tadd[root[to[i]]]*val[i];tmul[root[to[i]]]*val[i];}else{key[root[to[i]]]val[i];tadd[root[to[i]]]val[i];}root[x]merge(root[x],root[to[i]]);}while(root[x]key[root[x]]h[x]){kill[x],atk[root[x]]x,pushdown(root[x]),root[x]merge(l[root[x]],r[root[x]]);} } int main() {int n,m,x,a;ll b;scanf(%d%d,n,m);for(int i1;in;i) scanf(%lld,h[i]);for(int i2;in;i) scanf(%d%d%lld,x,a,b),add(x,i,a,b);for(int i1;im;i){tmul[i]1,scanf(%lld%d,key[i],from[i]),root[from[i]]merge(root[from[i]],i);}d[0]-1,deep[1]1;dfs(1);for(int i1;in;i){printf(%d\n,kill[i]);}for(int i1;im;i){printf(%d\n,deep[from[i]]-deep[atk[i]]);}return 0; }小结type标记存在哪里都无所谓qwq     转载于:https://www.cnblogs.com/ShuraK/p/8872352.html
http://www.sadfv.cn/news/311790/

相关文章:

  • 哪个网站做系统苏州公司网站建设服务
  • seo整站优化技术培训网站开发好后要做什么
  • 长沙电子商务公司网站制作山东公司网页定制
  • 旅游推荐网站怎么做做网站一年
  • 建站模板wordpress网站搭建公司哪家好
  • 创建一个新的公司网站计算机网络技术就业率
  • 营销型网站开发公司电话网站设计开发维护
  • 天津网站建设培训课件wordpress 如何添加模板文件
  • 中国建设银行员工网站网络营销的特点是
  • 英文商城网站昆明做百度网站电话
  • 微信微网站模板下载佛山网站建设专家评价
  • 建站赚钱灰色招工信息发布平台
  • 无锡大型网站建设公司西安关键词快速排名
  • 做个网站需要什么设备福州设计网站
  • 满山红网站建设公司wordpress链接 颜色
  • 建设政务网站报告wordpress会员收费权限
  • 上海网站营销是什么做网站经常用的字体有哪些
  • 建设网站需要公司吗wordpress后台管理界面地址
  • 网站建设服务好公司排名注册科技公司需要什么条件
  • 土巴兔网站开发关于建设网站的报告
  • 建设派网站手机网站主机
  • 专业的建设机械网站制作织梦网站图片移动
  • 盐城网站开发包括哪些北京旅游设计网站建设
  • 网站建设公司douyanet视觉设计专业就业前景
  • 携程旅行网站内容的建设湛江网站建设方案优化
  • 海丰网站制作做任务的奖金网站
  • 九江公司网站建设做网站客户没有付定金
  • 建设高端网站公司北京网站建设公司房山华网
  • 最专业的网站开发公司哪家最专业wordpress做h5
  • 中兴建设云南有限公司网站网站建设项目的预算