摘要: 【Description】 n个点,m次操作,每次把(i*p+q)%n+1与(i*q+p)%n+1之间的点染上颜色i,被染过色的会被新颜色覆盖,求最后每个点的颜色。 【题解】 因为被染过的颜色会被新的颜色覆盖,所以对于一个点,有效的染色只是最后一次。 那么我们可以倒着染色,已经染色的不染 求每个点被 阅读全文
posted @ 2017-11-03 20:21 Driver_Lao 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 给出三个n的排列,求有多少个数对在三个排列中顺序相同 【题解】 考虑用补集转化的方法,答案为总对数-不满足的对数 一对数不满足条件,当且仅当这对数在两个排列中顺序相同,在另一个排列中的顺序不同。 统计两两之间不满足偏序条件的数对的个数,那么每对数都被统计了两次 阅读全文
posted @ 2017-11-03 19:06 Driver_Lao 阅读(214) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std; const int maxn=100010; int a[maxn],b[maxn],t[maxn],n,ans; void read(int &k){ k=0; int f=1; char c=getchar(); while(c'9')c=='-'&&(f=-1),c=getchar(); while('0'... 阅读全文
posted @ 2017-11-03 16:49 Driver_Lao 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 【题解】 首先,我们可以发现,A到B的所有路径中,最长边的最小值一定在最小生成树上。我们用Kruskal最小生成树时,假设有两个点集U,V,若加入一条边w(u,v)使U,V联通,那么w就是U中每个点到V中每个点的路径上的最长边。因为我们每次在可选的w中选择了最小的,所以可以满足最长边最短的要求。 我 阅读全文
posted @ 2017-11-03 16:46 Driver_Lao 阅读(184) 评论(0) 推荐(0) 编辑