随笔分类 - OJ--Codeforces
摘要:题意:高度为 i+1 的一棵 RDC 树可以由高度为 i 的一棵 RDC 树通过这样的规则构造出来:在高度为 i 的 RDC 中,对于只有一个孩子的节点,加上两个孩子节点,没有孩子的节点加上一个节点。问你高度为 h 的 RDC 树有多少个互不重叠的爪型的节点。 题解:高度为n的树,可以由一个高度为n
阅读全文
摘要:题意:给出u,v,分别表示数组a的异或和,和数组a的和。求构造出最短的数组a。u<1e18 题解:显然u>v || (u&1)!=(v&1)无解,u==v=0时,数组为空,u==v!=0时,数组长度为1,元素为u即可。开始考虑构造,0^u=u,可令x=(v-x)/2,则x x u 满足条件,当(x^
阅读全文
摘要:题意:给出一个长度为n的序列a【】,求选取一个长度为k的子序列b【】,使得val=min(max(b【i】(i%2==1)),b【i】(i%2==0)))的值最小,输出最小的val。n<2e5 题解:显然val必然是a【i】,val是取了一个min,不满足单调性无法二分,但是可以发现,令va=max
阅读全文
摘要:题意:长度为n的数组a,Va=Vb=0,先手选出一个a【i】xor Va,后手同理,,Va>Vb为胜利,给出a【】问必胜,必败还是平局。 题解:https://codeforces.com/blog/entry/80562 #include <bits/stdc++.h> #define IOS i
阅读全文
摘要:题意:给出长度为n的字符串,和K,要求用这些字符构造最长的一个字符串的环满足顺时针旋转K次后和之前一样,求最长的长度。n<2e3 题解:暴力枚举K的所有因子为Ki,二分判断对于一个字符串环的它的循环次数最多是多少,L=1,R=N/Ki,满足条件即更新答案。 #include <bits/stdc++
阅读全文
摘要:题意:给出一个长度为2*n的序列p(1-2*n的整数组成)问是否能由长度为n的a,b数组通过merge(a,b)构成数组p,merge是双指针放在a,b数组起点中,每次取出a[i], b[j]小的,对应指针右移,直到取完。n<2e3 题解:每次都是取出较小的,尝试通过以p【1】的递增序列对p序列划分
阅读全文
摘要:题意:给出一个长度为n的数组,0<=a【i】<=n,每一次操作可以把任意一个a【i】换成mex,求多少次操作使得数组a为非递减序列,输出操作次数和操作的i,任意一种满足情况的即可。n<1e3 题解:尝试直接构造0,1,2 n-1这样的序列,分两种情况,mex!=n的时候把mex交换到a【mex】=m
阅读全文
摘要:题意:给出a【】和b【】长度为n,一次操作:val+=a[i], a[b[i]]+=a[i] (b[i]!=-1);对每个i(1-n)都执行一次操作,求最大的val并输出操作的次序。 题解:考虑a【i】对答案的贡献,如果a【i】大于0的话,应使得a【i】对答案的贡献次数尽可能多,即按照拓扑序往后即可
阅读全文
摘要:题意:一个n个点以1为根节点的树,刚开始所有人都在1,他们所要前往p【i】,每个人开始有两种状态good和bad,在前进过程中good可以转化成bad,给出h【i】经过i点(包括终点)是i点的人中good-bad人数,问h是否合理。 题解:对于i点flow【i】表示经过i点的人总数,可以得到good
阅读全文
摘要:链接:https://codeforces.com/gym/102222/problem/G 题意:给出一个树,从所有的叶子节点中选出m个节点,使得这m个节点间的 sigma(任意2点间的距离)最小。求最小的sigma。 n<1e5, k<100。 题解:求任意2点间的距离和, 可考虑贡献,考虑每条
阅读全文
摘要:链接:http://codeforces.com/contest/1221/problem/E 题意:给出有.x组成的字符串,两个人博弈,一个人每次可以选择一段连续长度为a的.使得它变成x,另一个选择长度为b的进行操作,为谁会输,保证a>b 题解: #include <bits/stdc++.h>
阅读全文
摘要:链接:http://codeforces.com/contest/1221/problem/D 题意:长度为n的序列,要使得相邻的值都不相同,可对每一个值多次加1,每次的加1的cost为cost【i】,求使得满足条件的最小代价。 题解:分类讨论可以发现,对于每一个值来说,最多也就会加2,即对前i个最
阅读全文
摘要:链接:https://codeforces.com/contest/437/problem/B 题意:给出n,sum,构造一个序列满足:整数,无重复,范围1-n,sigma(ai)=sum,输出长度和各个元素。n<1e5 题解:考虑1-n的每个整数对sum的贡献,在从大往下取(贪心)。
阅读全文
摘要:链接:https://codeforces.com/contest/1236/problem/B 题意:n种物品(不限量),m个盒子,问有多少种合法的放置物品的方案,合法:每个盒子都可以选择任意一个或多种物品(每种最多一个)也可以不选择任意一个,当m个盒子可以包括这n个物品即可。n, m<1e9 题
阅读全文
摘要:链接:https://codeforces.com/contest/1244/problem/G 题意:给出2个序列p,q长度为n,元素都是1,2 ,3....n,给出k,求 尽可能大 sigma(max(pi, qi))且小于k的时候如何安排序列的元素,若无法满足条件,-1 题解:贪心,最小的情况
阅读全文
摘要:链接:https://codeforces.com/contest/1244/problem/F 题意:给出一个每个节点黑色或者白色的环,k次更新,每次更新将所有满足条件的节点颜色反转(同时进行),满足条件:该节点的相邻的2个节点颜色和它不同。求k次后各个节点的颜色。 题解:环的话,序列复制向左右分
阅读全文
摘要:题意:给出一个树,求有多少对节点间的距离等于k,n<5e4, k<500 题解:解法一:点分治,k很小,在拿一个桶统计一下,注意统计的时候要判断时候和本身相同,相同要减一 #include <bits/stdc++.h> #define IO_read ios::sync_with_stdio(fa
阅读全文
摘要:链接:https://codeforces.com/problemset/problem/1244/E 题意:长度为n的序列,k次操作,每次可将任意一个数加一或减一,问k次操作后 最小的 最大值和最小值的差是多少 题解:很明显,序列在向中间收缩, 答案满足单调性,可二分答案,分别暴力枚举最大值和最小
阅读全文
摘要:链接:https://codeforces.com/problemset/problem/1244/D 题意:给一个树染上三种颜色,保证每一段长度为3的链颜色都不相同。 题解:颜色很少可以发现,当且仅当这个树是一条链的时候才满足条件(记录度数即可), 对这条链进行暴力染色即可,确定前三个即可确定整条
阅读全文
摘要:链接:https://codeforces.com/problemset/problem/1244/C 题意:n场比赛,赢一场加w分,平局加d分,输加0分,总分p分,问赢,平,输的局数, 无解-1。 n<1e12, d<w<1e5, p<1e17 题解:x,y,z肯定不为负数,直接套exgcd的板子
阅读全文

浙公网安备 33010602011771号