合集-cf刷题
摘要:题目链接:https://codeforces.com/problemset/problem/2062/C 题意: 给定一个序列a,允许两种操作(当序列a元素个数为1时无法进行):1.翻转整个数组 2.将数组变为差分数组 求任意操作(可以为0)下数组元素之和的最大值 思路: 发现差分后数组元素之和为
阅读全文
摘要:题目链接:https://codeforces.com/problemset/problem/2045/C 题意: 给定两个字符串s,t。构造一个长度最小的字符串使其至少有两个前缀是s的前缀,至少有两个后缀是t的后缀。 思路: 易知构造字符串组成部分:P+Q+R 其中P为s开头字符,R为t结尾字符
阅读全文
摘要:题目链接:https://codeforces.com/contest/2098/problem/B 题意: 大致说有[1,1e9]个房子,还有n个酒吧分布在n个房子里(可以是相同的房子) 定义f(x)为编号为x的房子与所有开着的酒吧的直线距离 现在可以使最多k个酒吧关闭 让你求哪些房子(注意不能重
阅读全文
摘要:题目链接:https://codeforces.com/contest/2104/problem/E 题意: 题目中出现的字符串字符都是前k个字符 给定一个字符串s,和若干个字符串t。 对于每一个字符串t,求使得它不再是s的子序列所需要增加的最小字符数量 思路: 由于需要快速查找每个字符串t最后一个
阅读全文
摘要:题目链接:https://codeforces.com/contest/2108/problem/C 题意: 给定一个数组 我们需要将数组元素从大到小的顺序依次遍历 不过不能改变原数组的顺序,而是通过生成不同的指针 指针可以往左或往右任意移动 求所需指针数量的最小值 思路: 容易知道如果相邻的元素相
阅读全文
摘要:题目链接:https://codeforces.com/contest/2086/problem/D 题意: 给定26个字母的出现次数,构造一个字符串 要求对于相同的一种字母,其任意个两两地在字符串的距离为偶数 思路: 要求同种字母的距离为偶数,即同种字母都在字符串奇数/偶数位置。((pos1-po
阅读全文
摘要:题目链接:https://codeforces.com/gym/102875/problem/C 题意: 有n个房子,高度为1~20的猫的高度有任意个。 约束条件:1.高度相同的猫不能相邻 2.高度相同的猫中间要有比它小的猫 求把所有房子填满的构造方案 思路: 神秘构造 1 2 1 2 3 2 3
阅读全文
摘要:题目链接:https://codeforces.com/contest/2042/problem/C 题意: 给定一个01串,其中1属于bob,0属于alice 可以划分m个连续区间,使得m个区间的权值依次为递增的自然数 求让bob的权值大于alice的权值至少为k需要划分最少的区间 思路: 偶遇神
阅读全文
摘要:题目链接:https://codeforces.com/contest/2102/problem/C 题意: 一共有0~n^2-1个数要填到nxn的矩阵里,并且要求子矩阵的mex之和最大 思路: 构造题 猜了一个蛇形矩阵竟然过了你敢信? 大概是把0,1,2,3...这些比较小的数填在矩阵中心的位置能
阅读全文
摘要:题目链接:https://codeforces.com/gym/102875/problem/H 题意: 用暴力搜索+剪枝T了,长记性了以后 给定一个长度为n的01串str,以及m个由不同字母代表的长度小于等于5的01串。 求str有多少种表示方法 思路: 线性dp 由于答案需要取模,所以可能导致方
阅读全文
摘要:题目链接:https://codeforces.com/contest/2026/problem/D 题意: 记a数组的前缀和[l,r]为s(l,r) b数组为:[s(1,1),s(1,2)....,s(1,n)] , [s(2,2),s(2,3),s(2,4)...,s(2,n)] ,.....,
阅读全文
摘要:题目链接:https://codeforces.com/contest/2109 题意: 交互题 有一个未知数x(1<=x<=1e18),给定n。目的是把x变为n 四种操作 1.add 输入一个数y,让x+y。如果结果小于0,则返回-1,否则返回1,并改变x原来的值 2.mul 与add同理,不过是
阅读全文
摘要:题目链接:https://codeforces.com/contest/2109/problem/D 题意: 给定一个无向图,以及一个集合 现在要求从点1走到点i 操作任意次。每次可以从集合中取任意一个数,然后删除。并将其大小k作为这次走的路的长度k(恰好经过k个边,可以来回走) 每个i点的查询都是
阅读全文
摘要:要复健了:( A void solve(){ int n;cin>>n; vector<int>a(n+1); rep(i,1,n){ cin>>a[i]; } rep(i,2,n){ if(abs(a[i]-a[i-1])!=5&&abs(a[i]-a[i-1])!=7){ cout<<"NO"<
阅读全文
摘要:题意:给定一个长度为n的01串,记f(l,r) 为出现区间[l,r]最多次字符的出现次数,求和sigma 1<=i<=j<=n f(j,i) 思路: 先考虑f(l,r)怎么求,设x为出现0的次数,y为出现1的次数 f(l,r)=max(x,y) =( x+y+|x-y| )/2 显然对于01串,x+
阅读全文
摘要:void dfs1(){ // 求出重儿子 } void add(){ // 加入一个节点的贡献 } void del(){ // 删去一个节点的贡献 } void insert(int u){ // 加入整棵子树的贡献 add(u); for(int i=head[u],v;i;i=e[i].nx
阅读全文

浙公网安备 33010602011771号