Description

Input

第一行四个正整数N,M,p,q

Output

一共输出N行,第i行表示第i个馒头的最终颜色(如果最终颜色是白色就输出0)。

Sample Input

4 3 2 4

Sample Output

2
2
3
0

HINT

题解

由于染色是按最后一次的算,所以要从后往前处理,由于染完色后具有相同的性质,也就是可以用并查集维护,把一段的父亲设为最右边的就行了。
总结:并查集应用很广,主要是维护性质相同的东西,比如联通块。还有一个应用就是可以找联通块的个数。
/*并查集
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=10001010;
int fa[N],a[N];
int n,m,p,q,x,y;
int find(int x){if(x==fa[x]) return x;return fa[x]=find(fa[x]);
}
int main(){scanf("%d%d%d%d",&n,&m,&p,&q);for(int i=1;i<=n*2;i++) fa[i]=i;for(int i=m;i>=1;i--){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,fa[j]=j+1;}for(int i=1;i<=n;i++)printf("%d\n",a[i]); return 0;
}

【BZOJ2054】疯狂的馒头相关推荐

  1. bzoj2054疯狂的馒头(巧用非递归并查集)

    www.cnblogs.com/shaokele/ bzoj2054:疯狂的馒头 Time Limit: 10 Sec Memory Limit: 162 MB Description Input 第 ...

  2. bzoj2054 疯狂的馒头

    bzoj上现在找不到这题,所以目前只是过了样例,没有测 2054: 疯狂的馒头 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 715  Solved ...

  3. BZOJ2054疯狂的馒头

    2054: 疯狂的馒头 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 634 Solved: 250 Description Input 第一行四个正 ...

  4. BZOJ2054 疯狂的馒头 并查集

    2054: 疯狂的馒头 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 974 Solved: 423 [Submit][Status][Discuss ...

  5. BZOJ2054: 疯狂的馒头(并查集)

    题意 题目链接 Sol 直接倒着并查集一波就行了 #include<bits/stdc++.h> // #define int long long using namespace std; ...

  6. acwing 3115 bzoj2054 疯狂的馒头

    https://www.acwing.com/problem/content/3118/ 做法:并查集 逆序枚举,因为最后染色的就是最后的颜色. find(f[i])表示为右边第一个没有被染色的点,通 ...

  7. 疯狂的馒头(bzoj2054)

    问题 G: 疯狂的馒头(bzoj2054) 时间限制: 1 Sec 内存限制: 128 MB 提交: 93 解决: 26 [提交][状态] 题目描述 输入 第一行四个正整数N,M,p,q 输出 一共输 ...

  8. 【BZOJ 2054】 疯狂的馒头

    2054: 疯狂的馒头 Time Limit: 10 Sec   Memory Limit: 162 MB Submit: 449   Solved: 175 [ Submit][ Status] D ...

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

    /* 经典思路, 倒序并查集处理即可*/#include<cstdio> #include<algorithm> #include<cstring> #includ ...

最新文章

  1. numba numpy计算加速器 官方教程 GPU CUDA配置
  2. Luogu 3698 [CQOI2017]小Q的棋盘
  3. C#LeetCode刷题-排序
  4. Calico数据路径:IP路由和iptables
  5. mysql not in 转化_解析MySQL隐式转换问题
  6. android多图片拖动,Android实现图片拖动效果
  7. 选择排序是外面循环的array[i]与内循环的array[j]比较。冒泡排序是内循环的相邻两个值做比较修改...
  8. Python开发之用户密码存储
  9. 克里斯坦森:管理水平高的公司往往离崩塌不远
  10. 华为note10能更新鸿蒙系统吗,华为官方再次确认!荣耀手机也能升级鸿蒙OS系统:内测机型遭到曝光...
  11. 企业IT架构的发展历程
  12. 【Android游戏开发详细过程1】Android平台飞机大战游戏APP设计与实现
  13. java校园二手书交易管理系统springboot+Vue
  14. 陌上花开、月下遐思……
  15. 示例-Luat示例-MQTT
  16. 数据库建表-- 一对多/多对一/一对一/多对多 关系
  17. 360搜索引擎怎么样,360比百度怎么样?
  18. 对爬取51job中用到的技巧的分析、记录
  19. Ubuntu16.04,终端样式改变,PS1修改
  20. 第一篇:移动APP开发-Hbuilder下载使用

热门文章

  1. java 配置hibernate_Hibernate实现有两种配置,xml配置与注释配置
  2. AI绘制毛线的小技巧
  3. 电商宝打单发货模块初始化设置
  4. 校园商铺-4-店铺注册功能模块
  5. DUBBO bug ServiceAnnotationBeanPostProcessor:No Spring Bean annotating Dubbo‘s @Service
  6. 同一个世界 三生梦醒(V 1.3.2)
  7. 杰力科创单键奶泡机芯片——DLTAP703SC
  8. 我的世界Bukkit服务器插件开发教程(八)进度条与自定义合成表
  9. IDEA控制台乱码 淇℃伅
  10. 怎么将vue的移动端项目打包成手机的app软件apk格式的。hbuilderx 云打包。