题目
我们先想一想暴力模拟,算出l,r,染色,最后输出,很明显会超时。想一下每个点的最终颜色仅与它最后一次被染色的情况决定,这就是NOIP2011D1T1铺地毯复杂版。
我们可以用倒序将并查集将从左向右将点连起来。

#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=1000100;
int n,m,p,q,fa[maxn],ans[maxn];
int find(int x)
{if(x!=fa[x]) return fa[x]=find(fa[x]);return x;
}
int main()
{cin>>n>>m>>p>>q;for(int i=1;i<=n+1;++i)fa[i]=i;while(m){int l=(m*p+q)%n+1,r=(m*q+p)%n+1;if(l>r)swap(l,r);for(int i=find(l);i<=r;i=find(i+1))ans[i]=m,fa[i]=find(i+1);--m;}for(int i=1;i<=n;++i)printf("%d\n",ans[i]);return 0;
}

Bzoj 2054: 疯狂的馒头相关推荐

  1. [BZOJ 2054]疯狂的馒头(并查集)

    Description CQF十分喜欢吃馒头.兴奋之下他一下子买了N 个馒头请所有认识他的人吃. 但是CQF不喜欢白色,喜欢红色.黄色.绿色等鲜艳的颜色.于是他把所有白色的馒头排成一列.然后进行M 次 ...

  2. [BZOJ 2054]疯狂的馒头

    这题一看是区间染色,直接上线段树.数据范围N<= 106,M <= 107,如果跑线段树复杂度为O(MlogN),但是时间限制10s,所以复杂度能过. 具体操作就是倒着算区间,因为每个馒头 ...

  3. bzoj 2054: 疯狂的馒头(线段树||并查集)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2054 线段树写法: 点的颜色只取决于最后一次染的颜色,所以我们可以倒着维护,如果当前区间之前 ...

  4. [BZOJ] 2054 疯狂的馒头

    只有最后一次染色有效,时光倒流,用并查集保证每个点只被染一次,染够n次及时退出,复杂度O(n) #include<iostream> #include<cstdio>using ...

  5. BZOJ 2054 疯狂的馒头

    [Description] n个点,m次操作,每次把(i*p+q)%n+1与(i*q+p)%n+1之间的点染上颜色i,被染过色的会被新颜色覆盖,求最后每个点的颜色. [题解] 因为被染过的颜色会被新的 ...

  6. Codevs 2054疯狂的馒头

    AC通道: http://www.lydsy.com/JudgeOnline/problem.php?id=2054 [分析] 对于任何一个馒头,只有最后一次刷才有意义.无论之前刷过多少次,它的颜色都 ...

  7. Bzoj P2054 疯狂的馒头 | 并查集

    题目链接 思路:因为每次染色都会将某些馒头的颜色彻底更改,所以每个馒头的最终的颜色其实是由最后一次染色决定的,那么我们只考虑最后一次染色即可.对此,我们可以从后往前倒着染色,当目前的染色区间中存在白色 ...

  8. 2054:疯狂的馒头/2375:疯狂的染色

    题目链接 题目大意:给定染色的顺序,每次染一个区间,每次染色会覆盖之前颜色,输出m次涂色后的每个点的颜色 题解:只有最后一次有用,所以倒着做 用f[i]=x来表示i到x-1这段区间已经被染过色了.当染 ...

  9. 【BZOJ 2054】 疯狂的馒头

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

最新文章

  1. Python实现有道翻译
  2. Java动态代理详解(Proxy+InvocationHandler)
  3. Zookeeper内部的简单细节(一)
  4. 网站安全狗V3.0—— .NET安全设置及保护实战教程
  5. 面向对象之多态,魔法函数
  6. Qt5学习笔记之计时器
  7. It#39;s about trust
  8. PPT幻灯片母版在制作时的应用
  9. 【3】Kali破解家用WI-FI密码 - 建立伪装热点
  10. html5 画猫全过程svg入门
  11. 深度学习基础知识(八):神经网络基础之导数
  12. awl多线程SYN***
  13. MC0101 冰雪大冒险
  14. 电容笔和触控笔有哪些区别?双十一好用不贵电容笔推荐
  15. 4.124.13天梯赛补题
  16. 电脑连接多台Andro设备使用adb命令进行无线调试
  17. 面试官:Vue3.0 性能提升主要是通过哪几方面体现的?
  18. 网友:国产FPGA,长点心吧
  19. java实现微信公众号内容推送系统
  20. 蛋白激酶/磷酸酶 调控信号通路、细胞机制

热门文章

  1. WPS创建二级拉下菜单
  2. WPF实现WORD 2013墨迹批注功能
  3. html2canvas手机黑屏,html2canvas 生成海报图 开发中遇到的问题
  4. 构建ARM嵌入式开发环境
  5. 魅族android n彩蛋,魅族Flyme Android 10终于发放:强制开启90Hz彩蛋
  6. 如果你已经学会了Python编程基础知识,那么下一步?
  7. 使用centos7.3搭建KMS服务器
  8. 仿QQ空间说说TextView内容显示、收起
  9. lua延时函数c语言,C语言拓展实现Lua sleep函数
  10. 设置 QLabel 上面的 text 行间距