【BZOJ】【P3671】【NOI2014】【随机数生成器】【题解】【贪心】
来源:互联网 发布:盘古网络永清县种养殖 编辑:程序博客网 时间:2024/06/11 00:48
传送门:www.lydsy.com:808/JudgeOnline/problem.php?id=3671
从hzwer神犇那看到的题解,第一眼:卧槽n^2m复杂度能过?测了测果然能过,第二眼:卧槽O(n^2+nm)的sb贪心啊,想好了就是noip难度的……
首先从小到大贪心,能走就走,然后问题就在于如何判断是否可行,蒟蒻考场上写了二维树状数组……60……其实记录一下每一列的可行区域就可以了……哇……哭瞎了
Code:
#include<bits/stdc++.h>using namespace std;const int maxn=5001;int n,m,q;long long x,a,b,c,d;int getint(){int res=0;char ch=getchar();while(!isdigit(ch))ch=getchar();while(isdigit(ch))(res*=10)+=ch-'0',ch=getchar();return res;}int rnd(){return x=(x*(a*x+b)+c)%d;}int t[maxn*maxn];int pos[maxn*maxn];int up[maxn],down[maxn];int main(){x=getint();a=getint();b=getint();c=getint();d=getint();n=getint();m=getint();q=getint();for(int i=1;i<=n*m;i++)t[i]=i;for(int i=1;i<=n;i++)up[i]=m,down[i]=1;for(int i=1;i<=n*m;i++)swap(t[i],t[(rnd()%i)+1]);for(int i=1;i<=q;i++){int u=getint(),v=getint();swap(t[u],t[v]);}for(int i=1;i<=n*m;i++)pos[t[i]]=i;int x,y,tot=0;for(int i=1;i<=n*m;i++){if(pos[i]%m)x=pos[i]/m+1;else x=pos[i]/m;y=pos[i]%m?pos[i]%m:m;if(y<=up[x]&&y>=down[x]){ for(int j=1;j<=n;j++) if(j<x)up[j]=min(y,up[j]); else if(j>x)down[j]=max(y,down[j]); tot++; printf("%d%c",i," \n"[tot==n+m-1]);\\drcow神犇的换行方式if(tot==n+m-1)break;}}return 0;}
0 0
- 【BZOJ】【P3671】【NOI2014】【随机数生成器】【题解】【贪心】
- BZOJ 3671 NOI2014 随机数生成器 贪心+暴力
- [贪心] BZOJ 3671 [Noi2014]随机数生成器
- [BZOJ 3671][Noi2014]随机数生成器:贪心
- [BZOJ3671][Noi2014]随机数生成器 && 贪心
- bzoj3671[Noi2014]随机数生成器(贪心)
- bzoj 3671: [Noi2014]随机数生成器
- BZOJ-3671 [Noi2014]随机数生成器
- bzoj 3671 [Noi2014]随机数生成器
- [NOI2014]随机数生成器(模拟+贪心)
- BZOJ 3671 [NOI2014 D2T2] 随机数生成器
- [NOI2014] BZOJ 3671 随机数据生成器-贪心
- 【BZOJ3671】[Noi2014]随机数生成器【模拟】【贪心】【卡空间】
- 【NOI2014】随机数生成器
- BZOJ3671 [Noi2014]随机数生成器
- NOI2014 随机数生成器
- 【BZOJ3671】【NOI2014】随机数生成器
- [COGS1767] [NOI2014]随机数生成器
- 今天过生日,想想27了
- 15-activity生命周期 组件1 activity
- ORACLE 运算
- SequenceFileRecordReader中的文件位移同步函数
- 安卓代码混淆
- 【BZOJ】【P3671】【NOI2014】【随机数生成器】【题解】【贪心】
- Java JNI使用情况
- 10-4. 字符串循环左移(20)
- iOS 在Xcode中使用C++ Library
- linux select 函数使用Demo
- 在IIS中使用Windows域服务器域摘要式身份验证对Web应用程序进行访问控
- 为什么bios将mbr装载到0x7c00地址,0x7c00怎么来的?
- ORACLE 权限和角色
- C++学习建议