bzoj3671[Noi2014]随机数生成器(贪心)
来源:互联网 发布:国内贸易用什么软件 编辑:程序博客网 时间:2024/05/18 01:31
题面太长就不粘了
贪心思路就是先按值从小到大排序,然后从小往大选可选的数就好
每选一个数,就将这个数的左下方和右下方标记为不可选即可(注意break来保证时间复杂度为
代码
#include <cstdio>#include <algorithm>#define maxn 25000005inline void read(int& x){ char c=getchar();x=0;int y=1; while(c<'0'||c>'9'){if(c=='-') y=-1;c=getchar();} while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar(); x*=y;}long long A,B,C;int n,m,sum,now,mod,Q,X[maxn],T[maxn];bool ok[5005][5005],flag;int main(){ read(now);scanf("%lld%lld%lld",&A,&B,&C);read(mod); register int i,j,k;int x=0,y=0; read(n);read(m);read(Q);sum=n*m; for(i=1;i<=sum;++i) { now=(A*now*now%mod+B*now%mod+C)%mod; X[i]=now;T[i]=i; } for(i=1;i<=sum;++i) std::swap(T[i],T[X[i]%i+1]); for(i=1;i<=Q;++i) read(x),read(y),std::swap(T[x],T[y]); for(i=1;i<=sum;++i) X[T[i]]=i;int tmp=n+m-1; for(i=1;i<=sum;++i) { int t1=(X[i]-1)/m+1,t2=X[i]-(t1-1)*m; if(ok[t1][t2]) continue; if(!flag) printf("%d",i),flag=1; else printf(" %d",i); ok[t1][t2]=1;--tmp; for(j=t1-1;j>=1;--j) { if(ok[j][t2+1]) break; for(int k=t2+1;k<=m;++k) { if(ok[j][k]) break; ok[j][k]=1; } } for(j=t1+1;j<=n;++j) { if(ok[j][t2-1]) break; for(k=t2-1;k>=1;--k) { if(ok[j][k]) break; ok[j][k]=1; } } if(!tmp) break; } return 0;}
Last round
阅读全文
0 0
- [BZOJ3671][Noi2014]随机数生成器 && 贪心
- bzoj3671[Noi2014]随机数生成器(贪心)
- BZOJ3671 [Noi2014]随机数生成器
- 【BZOJ3671】【NOI2014】随机数生成器
- [BZOJ3671][Noi2014]随机数生成器
- bzoj3671: [Noi2014]随机数生成器
- 【BZOJ3671】[Noi2014]随机数生成器【模拟】【贪心】【卡空间】
- 【BZOJ】【P3671】【NOI2014】【随机数生成器】【题解】【贪心】
- BZOJ 3671 NOI2014 随机数生成器 贪心+暴力
- [NOI2014]随机数生成器(模拟+贪心)
- [贪心] BZOJ 3671 [Noi2014]随机数生成器
- [BZOJ 3671][Noi2014]随机数生成器:贪心
- 【NOI2014】随机数生成器
- NOI2014 随机数生成器
- [COGS1767] [NOI2014]随机数生成器
- 3671: [Noi2014]随机数生成器
- 【NOI2014】随机数生成器
- #6. 【NOI2014】随机数生成器
- Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(二)安装 nodejs 环境以及 vue-cli 构建初始项目
- 安装snoop-it后导致系统图标丢失
- MacBookPro下ubuntu系统无法输入反引号和波浪号的解决方法
- MySQL更新数据
- Intel HAXM is required to run this AVD,VT-x is disabled in BIOS”问题解决
- bzoj3671[Noi2014]随机数生成器(贪心)
- VSM及SMO算法小结
- java-资源类以及等待和唤醒
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- Linux 常用命令
- LeetCode.389 Find the Difference
- SVN解决Unable to connect to a repository at URL 禁止访问 (forbidden)
- iOS图文并排demo,图文混排,UITextView图文显示,html转NSAttributedString
- jvm调优