BZOJ2054 疯狂的馒头
来源:互联网 发布:怎样取消农村淘宝 编辑:程序博客网 时间:2024/04/27 23:37
对于每个点,只有最后一次染色是有意义的,所以我们倒着染色,然后一个点染完了我们就把他指向他后边第一个没被染过的点,然后每次沿着指针往后跳,用并查集优化这个过程,复杂度O(n)
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<ctime>#include<cmath>#include<algorithm>#include<iomanip>#include<vector>#include<map>#include<set>#include<bitset>#include<queue>#include<stack>using namespace std;#define MAXN 1000010#define MAXM 1010#define INF 1000000000#define MOD 1000000007#define eps 1e-8#define ll long longint n,m,p,q;int f[MAXN];int c[MAXN];int fa(int x){return f[x]==x?x:f[x]=fa(f[x]);}int main(){int i,j,l,r;scanf("%d%d%d%d",&n,&m,&p,&q);for(i=1;i<=n+1;i++){f[i]=i;}for(i=m;i;i--){l=(i*p+q)%n+1;r=(i*q+p)%n+1;if(l>r){swap(l,r);}for(j=l;j<=r;j++){if(fa(j)==j){c[j]=i;f[j]=fa(j+1);}else{j=fa(j)-1;}}}for(i=1;i<=n;i++){printf("%d\n",c[i]);}return 0;}/**/
0 0
- bzoj2054: 疯狂的馒头
- BZOJ2054疯狂的馒头
- 【BZOJ2054】疯狂的馒头
- bzoj2054 疯狂的馒头
- BZOJ2054 疯狂的馒头
- bzoj2054 疯狂的馒头
- 【BZOJ2054】疯狂的馒头
- 【bzoj2054】疯狂的馒头
- 【bzoj2054】 疯狂的馒头 并查集
- 【bzoj2054】【疯狂的馒头】【并查集】
- BZOJ2054 疯狂的馒头 并查集
- [BZOJ2054] 疯狂的馒头/[BZOJ2375] 疯狂的涂色
- 【BZOJ2054】疯狂的馒头(并查集)
- #BZOJ2054#疯狂的馒头(并查集经典)
- 【BZOJ2054】疯狂的馒头【BZOJ2375】疯狂的涂色【并查集】
- 【BZOJ 2054】 疯狂的馒头
- bzoj 2054 疯狂的馒头
- Codevs 2054疯狂的馒头
- 8.17总结
- 4.2KNN实例1--python机器学习
- Linux 信号
- 树状数组应用
- 锁表
- BZOJ2054 疯狂的馒头
- Android中线程的同步
- C++:模拟实现string类
- Redis实现分布式锁通用工具
- struts2与dwr整合(初级)
- LoadImage一个从网络访问图片,并存到缓存(内存,磁盘)直接可以用
- cocos-js 播放cocostudio制作的帧动画
- Period_poj1961_kmp
- 安装studio,首次运行ADB,报:If the "Error running app: Instant Run requires 'Tools | Android | Enable ADB int