码迷,mamicode.com
首页 > 其他好文 > 详细

【BZOJ2054】疯狂的馒头(并查集)

时间:2016-01-22 22:02:23      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2054

水题QAQ, 并查集就可以了。

 1 #include <cstdio>
 2 #include <cstdlib>
 3 #include <iostream>
 4 #define LL long long
 5 #define MaxN 1000010
 6 using namespace std;
 7 int n, m, q, p, S = 0;
 8 int ans[MaxN], flag[MaxN], fa[MaxN];
 9 
10 int find(int x){
11     if (!fa[x]) return x;
12     return fa[x] = find(fa[x]);
13 }
14 
15 int main(){
16     scanf("%d%d%d%d", &n, &m, &p, &q);
17     for (int i = m; i; i--){
18         int l = (int) ((LL) i * p + q) % n + 1;
19         int r = (int) ((LL) i * q + p) % n + 1;
20         if (l > r) swap(l, r);
21         for (int j = find(l); j <= r; j = find(j)){
22             ans[j] = i; fa[j] = j+1;
23         }
24     }
25     for (int i = 1; i <= n; i++) printf("%d\n", ans[i]);
26     return 0;
27 }

 

【BZOJ2054】疯狂的馒头(并查集)

标签:

原文地址:http://www.cnblogs.com/Lukaluka/p/5152268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!