[BZOJ3671][Noi2014]随机数生成器 && 贪心
2015-04-17 23:46
471 查看
被模拟退火虐了一晚上 搞道贪心压压惊?
开始看到题目下面一大段说明不明来意 后来发现丧心病狂的卡内存也是有意思.....
不难看出含有最小的一个数的路径一定比不含的优 然后开始贪心
每选择一个数 维护其他所有行可以取的区间
开始看到题目下面一大段说明不明来意 后来发现丧心病狂的卡内存也是有意思.....
不难看出含有最小的一个数的路径一定比不含的优 然后开始贪心
每选择一个数 维护其他所有行可以取的区间
#include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<queue> #include<set> #define SF scanf #define PF printf using namespace std; typedef long long LL; const int MAXN = 5000; LL a, b, c, d, S; int n, m, Q; int A[MAXN*MAXN+10], M[MAXN+10][MAXN+10], up[MAXN+10], down[MAXN+10]; int ans[MAXN*2+10]; inline int GetNum() { return S = (S*S*a % d + S*b % d + c) % d; } void del(int x, int y) { for(int i = 1; i < x; i++) up[i] = min(up[i], y); for(int i = x+1; i <= n; i++) down[i] = max(down[i], y); } int main() { cin >> S >> a >> b >> c >> d; SF("%d%d%d", &n, &m, &Q); for(int i = 1; i <= n; i++) up[i] = m; for(int i = 1; i <= n*m; i++) { A[i] = i; swap(A[i], A[GetNum()%i+1]); } for(int i = 1; i <= Q; i++) { int x, y; SF("%d%d", &x, &y); swap(A[x], A[y]); } int cur = 0; for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) M[i][j] = A[++cur]; for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) A[M[i][j]] = (i-1)*m+j; bool first = false; for(int i = 1; i <= n*m; i++) { int y = A[i] % m, x = A[i] / m + 1; if(A[i] % m == 0) { x--; y = m; } if(down[x] <= y && y <= up[x]) { del(x, y); if(first) putchar(' '); first = true; PF("%d", M[x][y]); } } }
相关文章推荐
- [贪心] BZOJ 3671 [Noi2014]随机数生成器
- BZOJ_3671_[Noi2014]随机数生成器_set+贪心
- BZOJ 3671 NOI2014 随机数生成器 贪心+暴力
- 贪心 BZOJ 3671:[Noi2014]随机数生成器
- 【bzoj3671】[Noi2014]随机数生成器 贪心
- BZOJ 3671 NOI 2014 随机数生成器 贪心
- [bzoj3671][Noi2014][随机数生成器] (贪心+位运算+卡空间)
- [BZOJ 3671][Noi2014]随机数生成器:贪心
- 【BZOJ3671】[Noi2014]随机数生成器【模拟】【贪心】【卡空间】
- 【BZOJ】【P3671】【NOI2014】【随机数生成器】【题解】【贪心】
- 【BZOJ3671】【UOJ6】【NOI2014】随机数生成器
- BZOJ 3671 [NOI2014 D2T2] 随机数生成器
- 【BZOJ3671】【NOI2014】随机数据生成器(贪心)
- 【BZOJ】【3671】【NOI2014】随机数生成器
- bzoj 3671: [Noi2014]随机数生成器
- 【BZOJ3671】【NOI2014】随机数据生成器(贪心)
- [BZOJ3671][Noi2014]随机数生成器
- 【bzoj3671】[Noi2014]随机数生成器
- 【BZOJ3671】[Noi2014]随机数生成器 暴力
- [BZOJ]3671 随机数生成器(Noi2014)