【bzoj2054】 疯狂的馒头 并查集
2015-09-16 13:10
387 查看
一种并查集的应用,快速寻找下一个位置,当时考试的时候自己YY出来了。
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #define maxn 1000100 using namespace std; int f[maxn],a[maxn]; int n,m,p,q; int find(int x) { if (f[x]==x) return x; else return f[x]=find(f[x]); } int main() { scanf("%d%d%d%d",&n,&m,&p,&q); for (int i=1;i<=n+1;i++) f[i]=i; for (int i=m;i>=1;i--) { int x=((long long)i*p+q)%n+1,y=((long long)i*q+p)%n+1; if (x>y) swap(x,y); for (int j=find(x);j<=y;j=find(j)) a[j]=i,f[j]=j+1; } for (int i=1;i<=n;i++) printf("%d\n",a[i]); return 0; }
相关文章推荐
- mysql问题
- Android Multiple APK Support
- Spring+Spring MVC+Hibernate环境搭配
- 【Java EE 学习 44】【Hibernate学习第一天】【Hibernate对单表的CRUD操作】
- AFNetworking从指定网址下载文件的两种方式总结 - 家柱
- 装机必备:精选十款优秀的Linux应用软件
- Android Building Apps with Over 65K Methods (Multiple DEX)
- Timer Swing
- 变量改变时PHP内核做了些什么?
- 详细解析Java中抽象类和接口的区别
- EL表达式
- java中的堆、栈、常量池
- 整理白盒测试中的逻辑覆盖
- c++继承:共有、私有、保护继承
- Codeforces Round #319 (Div. 2)
- 各种编程语言的深度学习库整理
- 2g-3g
- SpringMVC之访问静态文件
- 部署Python的框架下的web app的详细教程
- Search a 2D Matrix