bzoj 2375: 疯狂的涂色
2375: 疯狂的涂色
Time Limit: 5 Sec Memory Limit: 128 MB
Description
Input
为四个整数n,m,p,q。
Output
n行,第I行代表最后第I个格子的颜色。白色编号为0。
HINT
1≤n≤1000000,1≤m≤10000000;1≤m*p+q,m*q+p≤231-1;
友情提示:
加入编译开关{$M 100000000,0,100000000},可防栈溢出。
一千多行的样例,不粘了
m≤10000000,肯定不能每个操作挨着做一遍
染色就是覆盖,所以最终答案是最后一次染色
所以倒着染,并查集fa[i]=j 表示自i往后第一个没有染颜色的是j
每次染一个点后,令fa[i]=find(j+1)
当find(1)==n+1时,全部染色完毕,break
这样保证每个点只被染一遍,时间复杂度O(n)
#include<cstdio>
#include<algorithm>
using namespace std;
int fa[],ans[];
inline int read()
{
int x=,f=; char c=getchar();
while(c<''||c>'') { if(c=='-') f=-; c=getchar(); }
while(c>=''&&c<='') { x=x*+c-''; c=getchar(); }
return x*f;
}
inline int find(int i) { return fa[i]==i ? i : fa[i]=find(fa[i]); }
int main()
{
int n,m,p,q,l,r,tmp;
n=read(); m=read(); p=read(); q=read();
for(int i=;i<=n+;i++) fa[i]=i;
for(int i=m;i;i--)
{
l=(i*p+q)%n+; r=(i*q+p)%n+;
if(l>r) swap(l,r);
for(int j=find(l);j<=r;j=tmp)
{
ans[j]=i;
tmp=find(j+);
fa[j]=tmp;
}
if(find()==n+) break;
}
for(int i=;i<=n;i++) printf("%d\n",ans[i]);
}
bzoj 2375: 疯狂的涂色的更多相关文章
- BZOJ2375: 疯狂的涂色
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2375 小t非常喜爱画画,但是他还是一个初学者.他最近费尽千辛万苦才拜到已仙逝的达 芬奇为师(神 ...
- BZOJ 1260:[CQOI2007]涂色paint
(⊙o⊙)-,常规课考试又炸了!目测此次我要完蛋了... 又玩脱了,考数学的时候装B装大了! 算了,先进入正题... 题目描述:Description假设你有一条长度为5的木版,初始时没有涂过任何颜色 ...
- [bzoj 1260][CQOI 2007]涂色paint
Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续 ...
- 【BZOJ 1260】[CQOI2007]涂色paint
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 区间DP 设f[i][j]表示i..j这个区间变成目标需要的最少染色次数. f[i][i] = 1 然后考虑f[i][j]的产生方法 ...
- 【BZOJ】1260 [CQOI2007]涂色paint(区间dp)
题目 传送门:QWQ 分析 区间dp, 详见代码 代码 /************************************************************** Problem: ...
- [BZOJ 1260][CQOI2007]涂色paint 题解(区间DP)
[BZOJ 1260][CQOI2007]涂色paint Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为 ...
- 【DP】BZOJ 1260: [CQOI2007]涂色paint
1260: [CQOI2007]涂色paint Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 893 Solved: 540[Submit][Stat ...
- BZOJ 1260: [CQOI2007]涂色paint( 区间dp )
区间dp.. dp( l , r ) 表示让 [ l , r ] 这个区间都变成目标颜色的最少涂色次数. 考虑转移 : l == r 则 dp( l , r ) = 1 ( 显然 ) s[ l ] = ...
- bzoj千题计划185:bzoj1260: [CQOI2007]涂色paint
http://www.lydsy.com/JudgeOnline/problem.php?id=1260 区间DP模型 dp[l][r] 表示涂完区间[l,r]所需的最少次数 从小到大们枚举区间[l, ...
随机推荐
- hdu1242 Rescue DFS(路径探索题)
这里我定义的路径探索题指 找某路能够到达目的地,每次走都有方向,由于是探索性的走 之后要后退 那些走过的状态都还原掉 地址:http://acm.hdu.edu.cn/showproblem.php? ...
- Alpha事后诸葛亮(团队)
设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决用手机使没有指纹验证硬件的电脑可以利用指纹进行文件的加密.定义的很清楚.我们针对的是 ...
- Ubuntu中Google Chrome安装
转载自博客 1. 方法一 1.在ubuntu中启动终端 2.在终端中,输入以下命令: sudo wget http://www.linuxidc.com/files/repo/google-c ...
- Struts2:Struts2在jsp中使用标签时值的获取
在OGNL的使用中,需要访问一系列的对象,这些对象放在OGNL的context中,context是一个Map结构,实际上它和ActionContext是相应的. 当用户发送请求时,struts会创建A ...
- 【beta】nice!-------约吧NABCD
小组名称:nice! 组长:李权 成员:于淼 刘芳芳韩媛媛 宫丽君 项目内容:约跑app(约吧) 约吧APP下载地址: 百度云:链接:http://pan.baidu.com/s/1jHNBR3g ...
- Linux架设DDNS服务器之自动更新脚本
问题描述:客户端是动态IP,每次连网之后要nsupdate下才可以把客户端的hostname 与IP映射更新到DNS Server上 命令如下: nsupdate -k K*****.key > ...
- phaser3 微信小游戏若干问题
纯属个人兴趣, 如有兴趣可共同参与维护. git: https://gitee.com/redw1234567/phaser3_wx image的地方需要修改,代码贴上 var ImageFile = ...
- jenkins配置slave节点 构建项目并执行操作
1.新建与配置结点 [系统管理]-> [管理结点]-> [新建结点] 2.配置slave 说明: Name: 定义slave的唯一名称标识,可以是任意字符串,通常设置为slave主机名.i ...
- 第204天:js---重载和多态
一.根据arguments个数实现重载 js本身不支持重载,所以只能通过其他方式实现,arguments检测传参的个数,然后再执行不同的方式 function add() { var sum = 0 ...
- 【bzoj4182】Shopping 树的点分治+dfs序+背包dp
题目描述 给出一棵 $n$ 个点的树,每个点有物品重量 $w$ .体积 $c$ 和数目 $d$ .要求选出一个连通子图,使得总体积不超过背包容量 $m$ ,且总重量最大.求这个最大总重量. 输入 输入 ...