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

智能模板网站建设费用腾和企业网站 优帮云

智能模板网站建设费用,腾和企业网站 优帮云,智慧团建入口官网登录,珍岛网站建设传送门 文章目录题意#xff1a;思路#xff1a;题意#xff1a; 实现如下操作#xff1a; 思路#xff1a; fhq-treap板子辣#xff0c;不要被他的编号误导了#xff0c;我们还是需要按照排名来分裂#xff0c;从上到下标号1−n1-n1−n即可#xff0c;注意在按照…传送门 文章目录题意思路题意 实现如下操作 思路 fhq-treap板子辣不要被他的编号误导了我们还是需要按照排名来分裂从上到下标号1−n1-n1−n即可注意在按照排名分裂的时候findrankfindrankfindrank函数与按照权值分裂是不同的因为他不满足二叉树的性质那么怎么得到排名呢可以发现其中序遍历在他前面遍历的个数111就是他的排名所以我们往上暴跳记录一下有多少在他前面就好了复杂度O(logn)O(logn)O(logn)。 其他的都是一些基本操作了代码很好写基本没bug。 //#pragma GCC optimize(Ofast,no-stack-protector,unroll-loops,fast-math) //#pragma GCC target(sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tunenative) //#pragma GCC optimize(2) #includecstdio #includeiostream #includestring #includecstring #includemap #includecmath #includecctype #includevector #includeset #includequeue #includealgorithm #includesstream #includectime #includecstdlib #define X first #define Y second #define L (u1) #define R (u1|1) #define pb push_back #define mk make_pair #define Mid (tr[u].ltr[u].r1) #define Len(u) (tr[u].r-tr[u].l1) #define random(a,b) ((a)rand()%((b)-(a)1)) #define db puts(---) using namespace std;//void rd_cre() { freopen(d://dp//data.txt,w,stdout); srand(time(NULL)); } //void rd_ac() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//AC.txt,w,stdout); } //void rd_wa() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//WA.txt,w,stdout); }typedef long long LL; typedef unsigned long long ULL; typedef pairint,int PII;const int N1000010,mod1e97,INF0x3f3f3f3f; const double eps1e-6;int n,m,x,y,z,h,k,root,tot; int p[N],has[N]; struct Node {int l,r;int rank,val,id,size;int fa; }tr[N2];void pushup(int u) {tr[u].sizetr[tr[u].l].sizetr[tr[u].r].size1;tr[tr[u].l].fau; tr[tr[u].r].fau; }int newnode(int id,int val) {int utot;tr[u]{0,0,rand(),val,id,1};return u; }void split(int u,int k,int x,int y) {if(!u) { xy0; return; }if(ktr[tr[u].l].size) yu,split(tr[u].l,k,x,tr[u].l);else xu,split(tr[u].r,k-tr[tr[u].l].size-1,tr[u].r,y);pushup(u); }int merge(int u,int v) {if(!u||!v) return uv;if(tr[u].ranktr[v].rank) {tr[u].rmerge(tr[u].r,v);pushup(u);return u;}else {tr[v].lmerge(u,tr[v].l);pushup(v);return v;} }int findrank(int v) {int anstr[v].size-tr[tr[v].r].size;while(v!root) {if(vtr[tr[v].fa].r) anstr[tr[v].fa].size-tr[v].size;vtr[v].fa;}return ans; }int findsize(int k) {int uroot;while(1) {if(tr[tr[u].l].sizek) utr[u].l;else if(tr[tr[u].l].size1k) return tr[u].val;else k-tr[tr[u].l].size1,utr[u].r;} }int main() { // ios::sync_with_stdio(false); // cin.tie(0);scanf(%d%d,n,m);for(int i1;in;i) scanf(%d,p[i]),rootmerge(root,newnode(i,p[i])),has[p[i]]i;while(m--) {char op[10]; int xx;scanf(%s%d,op,xx);if(op[0]T) {int idhas[xx];int rankfindrank(id);split(root,rank,x,y);split(x,rank-1,x,z);rootmerge(merge(z,x),y);}else if(op[0]B) {int idhas[xx];int rankfindrank(id);split(root,rank,x,y);split(x,rank-1,x,z);rootmerge(merge(x,y),z);}else if(op[0]I) {int yy; scanf(%d,yy);if(!yy) continue;int idhas[xx];int rankfindrank(id);if(yy0) {split(root,rank,x,y); split(x,rank-1,x,z);split(y,1,y,h); rootmerge(merge(merge(x,y),z),h);}else {split(root,rank,x,y); split(x,rank-1,x,z);split(x,rank-2,x,h); rootmerge(merge(merge(x,z),h),y);}}else if(op[0]A) {int idhas[xx];int rankfindrank(id);printf(%d\n,rank-1);} else {printf(%d\n,findsize(xx));}}return 0; } /**/
http://www.zqtcl.cn/news/980929/

相关文章:

  • 个人商城网站怎么做电商网站及企业微信订烟
  • 温州市网站优化广告平面设计教程
  • 南通制作网站的有哪些公司吗sae 部署wordpress
  • 友情链接对网站的影响wordpress admin init
  • 渭南网站开发做网红用哪个网站
  • 湖北建设网站wordpress 翻页电子书
  • 网站设计命名规范厦门建站比较好的公司
  • 用vs2010做网站登入前端培训费用大概多少郑州
  • 网站建设后的效果评估杭州网站制作公司
  • 3网站建设公司影楼修图用什么软件
  • 手机网站的内容模块多用户商城开源左
  • 库尔勒网站建站宝盒合作
  • 五河网站建设哪家好wordpress获取文章作者
  • 怎么修改网站内容wordpress ajax接口
  • 绵阳市城乡建设和规划局网站重庆网站建设公司有哪些
  • 宿迁网站建设公司排名展厅设计企业
  • 做家具定制的设计网站开阿里巴巴网站建设流程
  • 站长统计软件广州免费核酸在哪里做
  • 做soho一定要做网站吗在百度网站备案查询上显示未备案是什么意思
  • 移动公司营销网站设计html旅游网站模板
  • 专业生产车间设计图纸网站ui设计师证
  • 如何建网站教程视频10种网络营销方法
  • 网站内链优化的角度wordpress缓存插件破解版
  • 南宁网站建设哪个好天津网站建设咨询
  • 网站开发常用中间件计算机语言python
  • 学习html5的网站软件系统开发怎样容易
  • 做企业网站用什么华为弹性云服务器创建wordpress
  • 重庆手机网站开发网站建设的条件是什么
  • 舟山建设网站公司wordpress的总结
  • 如何做com的网站做网站设计学那个专业好