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

装修设计图网站排名代理ip平台

装修设计图网站排名,代理ip平台,cms资源,厦门国外网站建设公司哪家好话说这次考试 Drink 非常棒的一道卡常练习题#xff0c;适合练习卡常 真的很棒 前置卡常知识 1.char要比int快 char是最快的 输出putchar#xff0c;输入getchar 在这个题快了7000豪 2.read 快读非常棒#xff0c;让你变得更快#xff0c;fread更棒#xff0c;fread会爆炸… 话说这次考试   Drink 非常棒的一道卡常练习题适合练习卡常 真的很棒 前置卡常知识 1.char要比int快 char是最快的 输出putchar输入getchar 在这个题快了7000豪 2.read 快读非常棒让你变得更快fread更棒fread会爆炸考试时不要用fread 3.循环展开 循环展开非常棒虽然看上去没什么用然而循环展开会让你的程序快很多循环展开往往是使你从T90到A的关键 4.inline inline没什么用 大多数时候都没有什么用一般时间不会发生什么变化然而在mex这个题inline突然变得有用   突然变快.jpeg 5.register 大多数时候都没有什么用然而有时会突然变快有时还会变慢   暂时没有例子或者说只有变慢的例子 6.STL priority_queue手打 stack手打 map手打不是让你打红黑树是hash表 stack真的慢stack打起来也好打手打 7.mod define或者const 定义成变量会很慢 8.*2变1 /2 变1 变 ! ^ 上面的卡常应用到这个题呢 char循环展开  代码 #includebits/stdc.h using namespace std; #define ll int #define A 2100 char a[A][A]; ll n,m,k; const int L120|1; char buffer[L],*S,*T; #define getchar() ((ST(T(Sbuffer)fread(buffer,1,L,stdin),ST))?EOF:*S) const int maxn1000005; inline int read(){register int ret;register char r;while(rgetchar(),r0||r9);retr-48;while(rgetchar(),r0r9)retret*10r-48;return ret; } int main(){nread(),mread(),kread();for(ll i1;in;i)for(ll j1;jm;j){register int ret;char rgetchar();while(!isdigit(r)) rgetchar();a[i][j]r;}for(ll j1,x,y,c,xl,yl;jk;j){xread(),yread(),cread();xlxc-1,ylyc-1;while(c1){ for(ll i0;ic-2;i){ll a1a[xl-i][y],a2a[x][yi],a3a[xi][yc-1],a4a[xc-1][yl-i];a[x][yi]a1,a[xi][yl]a2,a[xl][yl-i]a3,a[xl-i][y]a4;}x,y,yl--,xl--,c-2;}}for(ll i1;in;i,puts())for(ll j1;jm;j){putchar(a[i][j]);putchar( );} } blue 这个题它不卡set它卡splay 贪心都说这个题很水但我还是觉得不明白看题解也是似懂非懂的 代码 #includebits/stdc.h using namespace std; #define A 5010101 #define Inf 10000000ll #define ll long long #define py printf(*****\n) #define mem(a) memset(a,0,sizeof(a)) ll landu[A],head[A],nx[A],ver[A],edg[A],dep[A],a[A],bl[A],blx[A],ch[A][2],cnt[A],size[A],key[A],fa[A]; ll n,m,tot1,S,T,t,D,L,sz,rt; setll s; inline ll read(){ll f1,x0;char cgetchar();while(!isdigit(c)) {if(c-) f-1;cgetchar();}while(isdigit(c)){x(x1)(x3)c-0;cgetchar();}return f*x; } inline void clear(ll x) {ch[x][0]ch[x][1]key[x]cnt[x]fa[x]size[x]0; } inline bool get(ll x) {return ch[fa[x]][1]x; } inline void pushup(ll x) {if(x){size[x]cnt[x];if(ch[x][1]) size[x]size[ch[x][1]];if(ch[x][0]) size[x]size[ch[x][0]];} } inline void rotate(ll x) {ll oldfa[x],oldfafa[old],whichget(x);ch[old][which]ch[x][which^1]; fa[ch[old][which]]old;ch[x][which^1]old; fa[old]x;fa[x]oldfa;if(oldfa) ch[oldfa][ch[oldfa][1]old]x;pushup(old);pushup(x); return ; } inline void splay(ll x) {for(ll f;ffa[x];rotate(x))if(fa[f])rotate(get(f)get(x)?f:x);rtx; } inline ll pre() {if(cnt[rt]1) return rt;ll nowch[rt][0];while(ch[now][1]) nowch[now][1];return now; } inline ll nxt() { if(cnt[rt]1)return rt;ll nowch[rt][1];while(ch[now][0]) nowch[now][0];return now; } inline void insert(ll x) {if(rt0){sz;rtsz;cnt[sz]size[sz]1;key[sz]x;fa[sz]ch[sz][0]ch[sz][1]0;return ;}ll f0,nowrt;while(233){ if(key[now]x){cnt[now];pushup(now);pushup(f);splay(now);return ;}fnow,nowch[now][key[now]x];if(now0){sz;cnt[sz]size[sz]1;key[sz]x;fa[sz]f;ch[sz][1]ch[sz][0]0;ch[f][key[f]x]sz;pushup(f);splay(sz);return ;}} } inline ll rnk(ll x) {ll ans1,nowrt;while(1){if(xkey[now])nowch[now][0];else{anssize[ch[now][0]];if(xkey[now]){splay(now);return ans;}anscnt[now];nowch[now][1];}} } inline void del(ll x) {rnk(x);if(cnt[rt]1){cnt[rt]--;pushup(rt);return ;} if(!ch[rt][0]!ch[rt][1]){clear(rt);rt0;return ;}if(!ch[rt][0]||!ch[rt][1]){ll oldrt;rtch[rt][1]|ch[rt][0];clear(old);fa[rt]0;return ;}ll olderrt; ll leftbigestpre();splay(leftbigest);ch[rt][1]ch[older][1];fa[ch[older][1]]rt;clear(older);pushup(rt); } void re(){memset(ch,0,sizeof(ch));memset(size,0,sizeof(size));memset(key,0,sizeof(key));memset(fa,0,sizeof(fa)); } int main() { setll::iterator it;scanf(%lld,t);while(t--){nread(),mread(),Dread(),Lread();s.clear();s.insert(-0x7ffffff);for(ll i1;in;i){a[i]read(); // insert(a[i]);s.insert(a[i]);}ll ok1,cnt0;while(ok){ll now0;while(nowL){if(nowDL) break; // insert(nowD); // ll xpre(); // del(nowD);ll x*--s.upper_bound(nowD); // printf(x%lld cnt%lld\n,x,cnt);if(xnow){ok0;break;} // nowkey[x];nowx;s.erase(x); // del(key[x]);}if(ok0) break;cnt;if(cntm) break;}if(cnt!m)printf(%lld\n,cnt);elseprintf(Excited\n);} } weed 比较神的一道题学长讲的时候我没弄明白这次考试30分就是报应 以每个信息为下标记录三个信息减少之后的层数减少之后总的权值和对之前区间减少的量 首先在建树和修改时我们将叶子节点维护好上传时利用这三个信息进行计算就行了 优先删去右儿子节点出现时间靠后在右儿子不够时删除左儿子 假设我们现在已经算完左右儿子 那么如果右边儿子减少少于增加 直接无脑加即可 if(tr[rs].cut0){tr[x].vtr[ls].vtr[rs].v;tr[x].ctr[ls].ctr[rs].c;tr[x].cuttr[ls].cuttr[rs].cut;return ;} 如果右面儿子减少大于增加并且右面儿子减少左面儿子层数和 那么当前cut会有剩余那么v直接赋c直接赋成右面儿子剩余vc的值 if(tr[ls].ctr[rs].cut){tr[x].cuttr[rs].cut-tr[ls].ctr[ls].cut;tr[x].vtr[rs].v;tr[x].ctr[rs].c;return ;} 如果右面儿子减少小于左面增加这是一种比较麻烦的情况我们维护一个cal函数专门计算左面儿子v的值 if(tr[ls].ctr[rs].cut){tr[x].cuttr[ls].cut;tr[x].vtr[rs].vask(ls,tr[rs].cut);tr[x].ctr[rs].ctr[ls].c-tr[rs].cut;return ;} cal函数具体实现很简单 当右儿子恰好够减直接返回左儿子剩余 右儿子省的多从右儿子的右儿子搜 右儿子不够从左儿子搜 #includebits/stdc.h using namespace std; #define ll long long #define A 7200000 #define ls x1 #define rs x1|1 #define py printf(****\n) struct tree{ll l,r,v,c,cut; }tr[A]; ll ceng[A],cu[A]; ll m,q; ll ask(ll x,ll c){ // if(ctr[x].c) return 0;if(tr[rs].cc)return tr[x].v-tr[rs].v;else if(tr[rs].cc)return tr[x].v-tr[rs].vask(rs,c);else return ask(ls,c-tr[rs].ctr[rs].cut); } void pushup(ll x){if(tr[ls].ctr[rs].cut){tr[x].cuttr[rs].cut-tr[ls].ctr[ls].cut;tr[x].vtr[rs].v;tr[x].ctr[rs].c;return ;}if(tr[rs].cut0){tr[x].vtr[ls].vtr[rs].v;tr[x].ctr[ls].ctr[rs].c;tr[x].cuttr[ls].cuttr[rs].cut;return ;}if(tr[ls].ctr[rs].cut){tr[x].cuttr[ls].cut;tr[x].vtr[rs].vask(ls,tr[rs].cut);tr[x].ctr[rs].ctr[ls].c-tr[rs].cut;return ;} } void built(ll p,ll l,ll r){ // printf(p%lld l%lld r%lld\n,p,l,r);tr[p].ll,tr[p].rr;if(lr){if(cu[l]) {tr[p].cutceng[l];tr[p].v0,tr[p].c0;return ;}if(!cu[l]){tr[p].vceng[l];tr[p].c1;tr[p].cut0;return ;}}ll mid(lr)1;built(p1,l,mid);built(p1|1,mid1,r);pushup(p); } void change(ll x,ll q){if(tr[x].ltr[x].r){if(!cu[q]){tr[x].vceng[q];tr[x].c1;tr[x].cut0;return ;}else{tr[x].cutceng[q];tr[x].v0,tr[x].c0;return ;}}ll mid(tr[x].ltr[x].r)1;if(midq)change(ls,q);else change(rs,q);pushup(x); } int main(){scanf(%lld%lld,m,q);for(ll i1;im;i){scanf(%lld%lld,cu[i],ceng[i]);}built(1,1,m); // printf(tr.c .v%lld %lld\n,tr[2].c,tr[2].v); // printf(.c%lld v%lld\n,tr[3].c,tr[3].v); // printf(.c%lld\n,tr[1].v);for(ll i1,a,b,c;iq;i){scanf(%lld%lld%lld,a,b,c);cu[a]b;ceng[a]c;change(1,a); // printf(p14 v%lld c%lld\n,tr[14].c,tr[14].v);printf(%lld\n,tr[1].v);} }   转载于:https://www.cnblogs.com/znsbc-13/p/11332552.html
http://www.pierceye.com/news/153030/

相关文章:

  • 个人购物网站怎么备案数据调查的权威网站
  • 网站规划和建设的基本要求100个无水印短视频素材免费
  • 河北住房和建设厅官方网站如何建设运输网站
  • 网络品牌网站建设价格网站设计部
  • 用自己照片做衣服 杯子的是哪个网站深圳东门老街
  • 四川省乐山市建设银行网站互联网保险行业发展报告
  • 厦门手机网站建设是什么山东泰安昨晚发生的事
  • 山西网站开发公司园林景观设计公司计划书
  • 吉林平安建设网站项城市建设规划局网站
  • 购物网站er图经营管理培训课程
  • 男女明星直接做的视频网站wordpress设置的页面跳转失败
  • 建企业网站价格wordpress稳定吗
  • 免费1级做爰网站研发项目管理系统
  • 建设网站好公司石家庄招聘求职信息网
  • 杭州市建筑业协会官网在线seo推广软件
  • 网站建设策划师管理网站建设
  • 做搜狗网站排名首页公司取名生成器免费
  • 用模板搭建的网站备案吗官方网站平台下载软件
  • 网站建设和网络推广方案济宁网站建设那家好
  • 做网站用哪个软件写比较好电商运营团队结构图
  • 建设领域信用系统网站邢台网站建设讯息
  • 建设网站技术人员先进事迹无锡有哪些做网站的公司
  • 2016网站设计欣赏企业网站推广建设
  • 国外简洁的网站跨境电商服务平台有哪些
  • 国内做网站技术支持 网站建设
  • 绍兴做团购的网站织梦转易优cms
  • 百度 网站 质量度扬州市工程建设招标网
  • 营销网站建设流程图优化营商环境发言稿
  • 设计网站公司有哪些怎么做网店
  • 高端的网站设计费用外贸营销型网站建设平台