【BZOJ 2054】 2054: 疯狂的馒头 (并查集特技)
Input
第一行四个正整数N,M,p,q
Output
一共输出N行,第i行表示第i个馒头的最终颜色(如果最终颜色是白色就输出0)。
Sample Input
4 3 2 4Sample Output
2
2
3
0HINT
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define Maxn 1000010 int col[Maxn],rt[Maxn]; int rtt(int x)
{
if(rt[x]!=x) rt[x]=rtt(rt[x]);
return rt[x];
} int tot=;
void solve(int l,int r,int nw)
{
while(l<=r)
{
if(col[l]==)
{
col[l]=nw;
rt[l]=rtt(l+);
l=rtt(l);
tot++;
}
l=rtt(l);
}
} int main()
{
int n,m,p,q;
scanf("%d%d%d%d",&n,&m,&p,&q);
memset(col,,sizeof(col));
for(int i=;i<=n+;i++) rt[i]=i;
for(int i=m;i>=;i--)
{
if(tot==n) break;
int l=(i*p+q)%n+,r=(i*q+p)%n+;
if(l<=r) solve(l,r,i);
else solve(r,l,i);
}
for(int i=;i<=n;i++) printf("%d\n",col[i]);
return ;
}
还有就是不要理解错那个区间。。[r,l]也是可以的。
2017-03-06 20:57:21
【BZOJ 2054】 2054: 疯狂的馒头 (并查集特技)的更多相关文章
- Luogu P2391 白雪皑皑 && BZOJ 2054: 疯狂的馒头 并查集
4月的时候在luogu上做过 白雪皑皑 这道题,当时一遍AC可高兴了qwq,后来去了个厕所,路上忽然发现自己的做法是错的qwq...然后就咕咕了qwq 今天看到了 疯狂的馒头 ,发现一毛一样OvO.. ...
- BZOJ.2054.疯狂的馒头(并查集)
BZOJ 倒序处理,就是并查集傻题了.. 并查集就是确定下一个未染色位置的,直接跳到那个位置染.然而我越想越麻烦=-= 以为有线性的做法,发现还是要并查集.. 数据随机线段树也能过去. //18400 ...
- Bzoj P2054 疯狂的馒头 | 并查集
题目链接 思路:因为每次染色都会将某些馒头的颜色彻底更改,所以每个馒头的最终的颜色其实是由最后一次染色决定的,那么我们只考虑最后一次染色即可.对此,我们可以从后往前倒着染色,当目前的染色区间中存在白色 ...
- BZOJ2054 疯狂的馒头 并查集
题意:懒得写了有空再补上 链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2054 离线从后往前做,并查集维护下一个没染色的就可以啦- #incl ...
- BZOJ 4569 [Scoi2016]萌萌哒 | ST表 并查集
传送门 BZOJ 4569 题解 ST表和并查集是我认为最优雅(其实是最好写--)的两个数据结构. 然鹅!他俩加一起的这道题,我却--没有做出来-- 咳咳. 正解是这样的: 类似ST表有\(\log ...
- [BZOJ 4668]冷战(带边权并查集+启发式合并)
[BZOJ 4668]冷战(并查集+启发式合并) 题面 一开始有n个点,动态加边,同时查询u,v最早什么时候联通.强制在线 分析 用并查集维护连通性,每个点x还要另外记录tim[x],表示x什么时间与 ...
- BZOJ 1016 星球大战starwar(逆向-并查集)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1015 题意:给出一个图.每次删掉一个点,求删掉之后连通块个数. 思路:正着做不好做,我们 ...
- bzoj 2959 长跑(LCT+BCC+并查集)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2959 [题意] n个点,提供操作:连边,修改点权,查询自定义边的方向后起点a终点b能经 ...
- BZOJ 1529: [POI2005]ska Piggy banks( 并查集 )
每一连通块砸开一个就可以拿到所有的钱, 所以用并查集求连通块数 ------------------------------------------------------------------- ...
随机推荐
- js和jquery中的遍历对象和数组(forEach,map,each)
arr[].forEach(function(value,index,array){ //do something }) 参数:value数组中的当前项,index当前项的索引,array原始数组: ...
- win10本地搭建php运行环境
一.下载搭建环境所需软件,安装顺序也要按照列表顺序安装 1.Vc2015(根据需要安装Vc2012或者Vc2015) Vc2015:https://www.microsoft.com/zh-CN/do ...
- SDUT 3928
Description C~K 和 PBH 经常玩一个游戏.游戏规则如下:现给定一个 n*n 的棋盘,一个石头被放在棋盘的左上角. 他们轮流移动石头.每一回合,两个人只能把石头向上,下,左,右四个方向 ...
- 8、V模型、W模型、H模型
软件测试&软件工程 ·软件测试与软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分.·在软件工程.项目管理.质量管理得到规范化应用的企业,软件测试也会进行得比较顺利,软件测试发挥的价值 ...
- 福建工程学院寒假作业第一周F题
Subsequence TimeLimit:1000MS MemoryLimit:65536K 64-bit integer IO format:%lld 问题描述: A sequence of ...
- git命令大全【转】
转自:http://www.jqhtml.com/8235.html 初始化本地git仓库(创建新仓库) git init 配置用户名 git config --global user.name &q ...
- 「caffe编译bug」 undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::__cxx11
CXX/LD -o .build_release/tools/test_net.binCXX/LD -o .build_release/tools/convert_annoset.binCXX/LD ...
- int(long) 类型转换为char
char类型占一个字节,8位 int类型四个字节32位 (long类型的转换跟int类型相同) #include <stdio.h> ]) { buffer[] = (char)tmp; ...
- Shp上传至Oracle Spatial
1.下载shp2sdo,将shp文件拷贝至shp2sdo相同路径下,打开windows命令窗口,执行: shp2sdo shp文件名 表名 -i id -s 4326 -d 例如:shp2sdo ci ...
- csu 1770按钮控制彩灯实验(树状数组)
1770: 按钮控制彩灯实验 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 194 Solved: 65[Submit][Status][Web Bo ...