浅谈并查集:https://www.cnblogs.com/AKMer/p/10360090.html

题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=2054

倒着枚举颜色覆盖,每次暴力枚举区间内还没有颜色的格子涂色,然后用并查集合并已经涂了色的格子。

时间复杂度:\(O(\alpha{n})\)

空间复杂度:\(O(n)\)

代码如下:

#include <cstdio>
#include <algorithm>
using namespace std; const int maxn=1e6+5; int n,m,p,q;
int fa[maxn],ans[maxn]; int read() {
int x=0,f=1;char ch=getchar();
for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
for(;ch>='0'&&ch<='9';ch=getchar())x=x*10+ch-'0';
return x*f;
} int find(int x) {
if(fa[x]==x)return x;
return fa[x]=find(fa[x]);
} int main() {
n=read(),m=read(),p=read(),q=read();
for(int i=1;i<=n+1;i++)fa[i]=i;
for(int i=m;i;i--) {
int l=(1ll*i*p+q)%n+1,r=(1ll*i*q+p)%n+1;
if(r<l)swap(l,r);
for(int pos=find(l);pos<=r;pos=fa[pos+1])
ans[pos]=i,fa[pos]=find(pos+1);
}
for(int i=1;i<=n;i++)
printf("%d\n",ans[i]);
return 0;
}

最新文章

  1. 打造自定Select样式
  2. Jquery,YUI这个著名js库名称作用的理解
  3. /etc/pam.d 与 /etc/security 密码策略
  4. EF实体框架之CodeFirst二
  5. stanford-postagger中文词性标注
  6. overfitting
  7. Unix/Linux环境C编程入门教程(7) OPENBSDCCPP开发环境搭建
  8. 如何在IIS8.5上面部署php
  9. 学习Spark——那些让你精疲力尽的坑
  10. 删除“自豪的采用wordpress”
  11. antlr v4 使用指南连载2——准备环境
  12. Django admin组件源码流程
  13. PhpSpreadsheet处理表格
  14. Xamarin + MvvmCross 简单事例 Part 2
  15. (转)java术语(PO/POJO/VO/BO/DAO/DTO)
  16. Android : 移植curl-7.61.1 及 openssl-1.1.0i
  17. 20145232 韩文浩 《Java程序设计》第10周学习总结
  18. IDEA项目搭建三——简单配置Maven使用国内及本地仓库
  19. win7下安装matlab后打开出错&ldquo;error starting desktop&rdquo;的解决办法
  20. BZOJ2425:[HAOI2010]计数(数位DP)

热门文章

  1. &lt;script&gt;放在head内和body内有什么区别
  2. C语言:内存字节对齐详解
  3. 第八篇、正则表达式 re模块
  4. Could not autowire field: private javax.servlet.http.HttpServletRequest
  5. qq在线客服代码
  6. linux与windows 通过SecureCRT进行文件传输方式
  7. C# 处理base64 以及base64的原理分析
  8. 【P2052】道路修建(树形+搜索)
  9. NLP-特征选择
  10. HTTP 指纹识别v0.1