卡BZOJ的源代码
来源:互联网 发布:python 运行环境 编辑:程序博客网 时间:2024/05/19 20:59
方法一
各位dalao在省选季的BZOJ被卡,其代码源码如下
#include </dev/random>main() {}
方法二
BZOJ4889的时间限制为100s,发一份死循环代码即可
main(){for(;;);}
BZOJ4889成了权限题,然而
BZOJ1835时间限制100s
BZOJ4012的时间限制为70s
方法三
最近BZOJ总是被卡成504/502,总是有人提交3196,原因是有人写3196是无意发现一个BUG,其源码如下
#include <cstdio>#include <algorithm>using std :: max;using std :: min;static const int maxm = (1e6 + 10) * 2 * 16;static const int INF = 1 << 29;int ch[maxm][2],v[maxm],size[maxm],cnt[maxm],rt[maxm],A[maxm],rnk[maxm];int sz,ans,n,m;namespace treap{ int chk(int x,int y){ return x == y ? 2333 : x > y; } void upt(int x){ size[x] = size[ch[x][0]] + size[ch[x][1]] + cnt[x]; } void rotate(int &x,int f){ int t = ch[x][f]; ch[x][f] = ch[t][f ^ 1]; ch[t][f ^ 1] = x; size[t] = size[x]; upt(x),x = t; } void insert(int &x,int val){ if(!x) return x = ++sz,v[x] = val,size[x] = cnt[x] = 1,rnk[x] = rand(),void(); size[x] ++; if(v[x] == val) return cnt[x]++,void(); int f = chk(val,v[x]); insert(ch[x][f],val); if(rnk[x] < rnk[ch[x][f]]) rotate(x,f); } void del(int &x,int val){ if(!x) return; if(val != v[x]) size[x]--,del(ch[x][chk(val,v[x])],val); if(val == v[x]){ if(cnt[x] > 1) return size[x]--,cnt[x]--,void(); if(ch[x][0] * ch[x][1] == 0) return x = ch[x][0] ^ ch[x][1],void(); int f = chk(rnk[ch[x][0]],rnk[ch[x][1]]); rotate(x,f);del(x,val); } } int Qrank(int x,int val){ if(!x) return 0; if(val == v[x]) return size[ch[x][0]]; return val > v[x] ? size[ch[x][0]] + cnt[x] + Qrank(ch[x][1],val) : Qrank(ch[x][0],val); } int Query(int x,int val,int f,int &ans){ if(!x) return 0; if(chk(v[x],val) == f) return ans = f ? min(ans,v[x]) : max(ans,v[x]),Query(ch[x][f ^ 1],val,f,ans); else return Query(ch[x][f],val,f,ans); }// ?}namespace segment_tree{ using namespace treap; void build(int x,int l,int r){ for(int i = l;i <= r;i++) insert(rt[x],A[i]); if(l == r) return; int mid = (l + r) >> 1; build(x << 1,l,mid); build(x << 1 | 1,mid + 1,r); } void modify(int x,int l,int r,int pos,int val){ del(rt[x],A[pos]); insert(rt[x],val); if(l == r) return; int mid = (l + r) >> 1; if(pos <= mid) modify(x << 1,l,mid,pos,val); if(pos > mid) modify(x << 1 | 1,mid + 1,r,pos,val); } int Getrank(int x,int l,int r,int L,int R,int val){ if(l >= L && r <= R) return Qrank(rt[x],val); int mid = (l + r) >> 1,ret = 0; if(L <= mid) ret += Getrank(x << 1,l,mid,L,R,val); if(R > mid) ret += Getrank(x << 1 | 1,mid + 1,r,L,R,val); return ret; } int Getorder(int L,int R,int rnk){ int l = 0,r = INF,ret = 0; while(l <= r){ int mid = (l + r) >> 1; if(Getrank(1,1,n,L,R,mid) + 1 <= rnk) ret = mid,l = mid + 1; else r = mid - 1; } return ret; } int Get(int x,int l,int r,int L,int R,int val,int f,int &ans){ if(l >= L && r <= R) return Query(rt[x],val,f,ans); int mid = (l + r) >> 1; if(L <= mid) Get(x << 1,l,mid,L,R,val,f,ans); if(R > mid) Get(x << 1 | 1,mid + 1,r,L,R,val,f,ans); }}int main(){ using namespace segment_tree; freopen("bzoj3196.in","r",stdin); int opt,x,y,k; scanf("%d%d",&n,&m); for(int i = 1;i <= n;i++) scanf("%d",&A[i]); build(1,1,n); while(m--){ scanf("%d%d%d",&opt,&x,&y); if(opt == 1) scanf("%d",&k),printf("%d\n",Getrank(1,1,n,x,y,k) + 1); if(opt == 2) scanf("%d",&k),printf("%d\n",Getorder(x,y,k)); if(opt == 3) modify(1,1,n,x,y),A[x] = y; if(opt == 4) ans = -INF,scanf("%d",&k),Get(1,1,n,x,y,k,0,ans),printf("%d\n",ans); if(opt == 5) ans = INF,scanf("%d",&k),Get(1,1,n,x,y,k,1,ans),printf("%d\n",ans); } return 0;}
BUG已被修复
阅读全文
0 0
- 卡BZOJ的源代码
- bzoj有趣的题目
- 我的UVa & BZOJ
- BZOJ的网络流
- 怎么优化源代码,源代码的形成是什么?
- 【源代码】移动视频通话的JAVA源代码
- 五子棋的源代码
- ZFactroy的源代码
- 生成Excel的” 源代码
- 三级联动的源代码
- 部分书籍的源代码
- 汉诺塔的汇编源代码
- 保障源代码的安全
- ping的源代码
- smartgoogle的源代码1
- smartgoogle的源代码2
- TabPage的源代码
- 李萨如图的源代码
- mysql优化建议100条
- acm编程训练 单向链表 C语言程序设计教程(第三版)课后习题11.8
- POJ1979 Red and Black(DFS)
- BZOJ 2140 稳定婚姻
- openssl之数字证书签名,CA认证原理及详细操作
- 卡BZOJ的源代码
- display:inline-block/text-align:justify下列表的两端对齐布局
- mysql体系结构分析
- android中自定义画布Canvas的实现
- 巨杉数据库SequoiaDB分区介绍
- CSS朝花夕拾之块级格式上下文BFC
- Storm1.1.0<温故而知新--hdfs和storm的集成>
- Git学习笔记(一)
- ajax技术的运用