[題解](并查集)luogu_P2391 白雪皚皚
今天被老師留的作業搞死了,全是裸的水題,難題就那麼兩道我還沒寫......,狗屎
1.倒序處理,每個點至多會被更新一次
2.所以要做的就是快速找到下一個不同顏色的點,
3.然而不知道怎麼就 想到用并查集維護 了?用雙向鏈錶不是更自然碼(雖然也可以)
4.其實并查集就是把相鄰的相同顏色的點并成一個,直接處理端點即可
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=;
int n,m,p,q,fa[maxn],a[maxn];
int find(int x){
if(fa[x]<)return x;
else return fa[x]=find(fa[x]);
}
int main()
{
scanf("%d%d%d%d",&n,&m,&p,&q);
memset(fa,-,sizeof(fa));
for(int i=m;i>=;i--){
int l=(i*p+q)%n+,r=(i*q+p)%n+;
if(l>r)swap(l,r);
l=find(l);
while(l<=r)a[l]=i,fa[l]=l+,l=find(l+);//每次把l和l+1合併,一定是一樣的,因為l是左端點
}
for(int i=;i<=n;i++)printf("%d\n",a[i]);
}
[題解](并查集)luogu_P2391 白雪皚皚的更多相关文章
- 2017"百度之星"程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】
度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...
- 图论-欧拉图-欧拉回路-Euler-Fluery-Hierholzer-逐步插入回路法-DFS详解-并查集
欧拉图性质: 1.无向连通图G是欧拉图,当且仅当G不含奇数度结点(G的所有结点度数为偶数): 2.无向连通图G含有欧拉通路,当且仅当G有零个或两个奇数度的结点: 3.有向连通图D是欧拉图,当且仅当该图 ...
- 洛谷P4092 [HEOI2016/TJOI2016]树 并查集/树链剖分+线段树
正解:并查集/树链剖分+线段树 解题报告: 传送门 感觉并查集的那个方法挺妙的,,,刚好又要复习下树剖了,所以就写个题解好了QwQ 首先说下并查集的方法趴QwQ 首先离线,读入所有操作,然后dfs遍历 ...
- 洛谷P1955 程序自动分析 [NOI2015] 并查集
正解:并查集+离散化 解题报告: 传送门! 其实题目还挺水的,,,但我太傻逼了直接想挂了,,,所以感觉还是有个小坑点所以还是写个题解记录下我的傻逼QAQ 首先这题一看,就长得很像NOIp关押罪犯?然后 ...
- 洛谷P2661 信息传递 [NOIP2015] 并查集/乱搞 (待补充!
感觉我好水啊,,,做个noip往年题目还天天只想做最简单的,,,实在太菜辽 然后最水的题目还不会正解整天想着乱搞,,, 虽然也搞出来辽233333 好滴不扯辽赶紧写完去做紫题QAQ 正解:并查集 ...
- 洛谷P2024 食物链 [NOI2001] 并查集
正解:并查集 解题报告: 传送门(咕了! 其实没有很难(虽然我是交了三发才过的QAQ 但是一来好久没打并查集了恢复一下智力 二来看着智推里唯一一个蓝就很不爽(,,,虽然做了这题之后又补上了个蓝题QAQ ...
- [題解]luogu_P1333瑞瑞的木棍(并查集/圖論)
是一道歐拉路的題竟然沒看出來...... 把每種顏色看成一個點,每根木棍看成一個邊,即相同顏色在圖中接好合併成了一個點, 問題轉化為了求是否存在歐拉路 如果用map會超時,所以可以用字典樹實現離散化/ ...
- [題解](水/并查集)luogu_P2170選學霸
很簡單的水題,因為智障沒有A所以發篇博客 同樣的題:luogu_P1455 搭配購買 用并查集維護一下所有實力相等的人的size,然而你可以選多個size......,於是跑個背包就行了,只要注意一下 ...
- - > 并查集详解(第二节)
以下是并查集思路详解: 一:概念 并查集处理的是“集合"之间的关系.当给出两个元素的一个无序数对(a,b)时,需要快速“合并”a和b分别所在的集合,这期间需要反复“查找”某元素所在的集合.“ ...
随机推荐
- 深入浅出谈DM
- 2018年东北农业大学春季校赛 B wyh的矩阵【规律】
题目链接 https://www.nowcoder.com/acm/contest/93/B 思路 先加入 中间的那行 和中间的那列 再减去 最中间那个数 因为它 加了两次 然后逐行往下加 会发现是一 ...
- POJ2389 —— 高精度乘法
直接上代码了: #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib& ...
- linux应用之samba服务的安装及配置(centos)
一.安装方式: 本文通过yum来重新进行Samba服务器的安装与配置. 二.Samba的简介: Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Me ...
- DB2删除表分区
近日,由于部门数据库读库空间过小,提出删除掉两个月之前日志表的分区(数据库分区是按时间月分区),记述如下: 上网搜索资料发现删除表分区大概分这么几步: 1.查询需要删除掉的分区: select t.D ...
- cuda 版本查阅
查看cuda版本 cat /usr/local/cuda/version.txt nvcc -V
- Mysql数据库--语句整理/提升/进阶/高级使用技巧
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- vijos1842(火柴排队)
描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:∑i=1n(ai−bi)2∑i=1n(ai−bi) ...
- bzoj3836
状压dp 图上怎么跑dp?我们跑三进制状压dp,0表示选了,1表示既没选也没覆盖,2表示没选但是被覆盖了. 状态是dp[dep][S]表示当前走到了深度为dep的节点,状态为S,按照dfs序转移 每次 ...
- plsql 免oracle客户端安装
PLSQL Developer 11.0.0.1762 中文绿色注册版(免Oracle11g客户端) 免安装Oracle客户端,绿色无公害. 说明: 1.点击 "启动PLSQL.exe&qu ...