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

网站建设 营销/网站建设的公司

网站建设 营销,网站建设的公司,免费商用WordPress主题,jsp sql 网站开发传送门 启发式合并菜题。 题意:支持与连通块有关的几种操作。 要求支持连边,单点修改,连通块修改,全局修改和单点查值,连通块查最大值和全局最大值。 我们对每个连通块和答案用可删堆维护最大值,然后用启发…

传送门
启发式合并菜题。
题意:支持与连通块有关的几种操作。
要求支持连边,单点修改,连通块修改,全局修改和单点查值,连通块查最大值和全局最大值。


我们对每个连通块和答案用可删堆维护最大值,然后用启发式合并来解决连边的问题。
关键在于连通块修改,这个可以给每个连通块维护一个标记,然后在合并的时候每个数记得修改值就行了。
代码

#include<bits/stdc++.h>
#define ri register int
using namespace std;
inline int read(){int ans=0,w=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();return ans*w;
}
const int N=3e5+5;
struct IN_OUT_priority_queue{priority_queue<int>a,b;inline void push(const int&x){a.push(x);}inline void del(const int&x){b.push(x);}inline int top(){while(b.size()&&a.top()==b.top())a.pop(),b.pop();return a.top();}inline int size(){return a.size()-b.size();}
}ans,S[N];
int n,fa[N],det[N],val[N],all=0;
vector<int>id[N];
inline int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}
inline void solve1(){int x=find(read()),y=find(read());if(x==y)return;if(id[x].size()<id[y].size())swap(x,y);fa[y]=x,ans.del(S[x].top()+det[x]),ans.del(S[y].top()+det[y]);for(ri i=0;i<id[y].size();++i)id[x].push_back(id[y][i]),val[id[y][i]]+=det[y]-det[x],S[x].push(val[id[y][i]]);ans.push(S[x].top()+det[x]);
}
inline void solve2(){int x=read(),fx=find(x),y=read();ans.del(S[fx].top()+det[fx]);S[fx].del(val[x]),S[fx].push(val[x]+=y);ans.push(S[fx].top()+det[fx]);
}
inline void solve3(){int x=find(read()),v=read();ans.del(S[x].top()+det[x]),det[x]+=v,ans.push(S[x].top()+det[x]);}
inline void solve4(){all+=read();}
inline void solve5(){int x=read();cout<<val[x]+det[find(x)]+all<<'\n';}
inline void solve6(){int x=find(read());cout<<S[x].top()+det[x]+all<<'\n';}
inline void solve7(){cout<<ans.top()+all<<'\n';}
int main(){n=read();for(ri i=1;i<=n;++i)id[i].push_back(i),fa[i]=i,S[i].push(val[i]=read()),ans.push(val[i]);for(ri tt=read(),a,b,op;tt;--tt){string s;cin>>s;if(s=="U")solve1();if(s=="A1")solve2();if(s=="A2")solve3();if(s=="A3")solve4();if(s=="F1")solve5();if(s=="F2")solve6();if(s=="F3")solve7();}return 0;
}

转载于:https://www.cnblogs.com/ldxcaicai/p/10367760.html

http://www.jmfq.cn/news/5244157.html

相关文章:

  • 黄岛做网站/长春网站关键词排名
  • 济南哪里有做网站的公司/推广模式包括哪些模式
  • 网站被谷歌收录/外链相册
  • 杭州网络公司有哪些/百度seo怎么做
  • 天网网站建设/百度推广联盟
  • php网站好做seo/宁波网络营销推广咨询报价
  • wordpress改了固定链接后/成都市seo网站公司
  • 外贸网站建设 广州/代运营网店公司
  • 珠海网站推广/市场推广计划怎么写
  • vi设计都包括什么/沈阳网站优化
  • 天蝎做网站建网站/客服网站搭建
  • 搜中文找不到公司网站是怎么回事/天津seo优化
  • 注册了域名怎样做网站/appstore关键词优化
  • 南昌网站制作代理商/网站排名大全
  • 江西企业网站建设/网销怎么销售的
  • 怎么做水果机网站/新的seo网站优化排名 网站
  • java做网站合适吗/竞价推广运营
  • 论坛搭建教程/英文谷歌优化
  • 连云港网站建设案例/网站推广的作用
  • 重庆市建设工程造价站/佛山优化推广
  • qq钓鱼网站在线生成器/南宁seo外包服务
  • wordpress jsdelivr/班级优化大师下载安装最新版
  • 百度推广自己做网站/seo优化专员招聘
  • 仿照别的网站做/全国疫情最新
  • 网站设计什么样风格会高端些/长春网站建设技术托管
  • 石家庄新闻媒体求助热线电话/网站seo优化技能
  • 上海开发网站/合肥百度搜索优化
  • wordpress 站点语言/免费的网络推广有哪些
  • 视频网站为什么有人做/b2b网站源码
  • 德州网站建设哪家好/网站搜索排名查询