
codeforces
文章平均质量分 76
cf的比赛小结和练习
Brokenrivers
这个作者很懒,什么都没留下…
展开
-
8.4 思维构造
例如一个序列4 3 2 1 5 4 5由贪心可知必然是一次选择的区间越大越好,所以每次处理一个不包括0的不上升区间即可,因为对一个不上升区间来说,要使其全部为0最多需要操作max(l-r)次,因为比区间最大值小的数消去相当于是免费的。所以统计不上升区间的最大值即可。如果当作图论来看就是,减去给定图的一些节点使剩下的边数为偶数时最小消耗。如果边数本身就是偶数时,就不需要减去了,最小消耗为0.如果边数为奇数时,就要考虑减去奇数条边,且顶点消耗最小。对这种情况由两种方案,...原创 2022-08-04 10:24:34 · 572 阅读 · 1 评论 -
CF构造思维题练习(1200-1400)
大于0条件不考虑n,所以可以把n看作垃圾桶,前面所有的数都倒入第n个元素,假设每个数到第n个数之间都是大于0的,那么我们可以从左边将i值减为0,而n加上i,操作数+i。但是不可能每个数到第n个数之间都是大于0的,所以对之间的0特判一次操作,也就是肯定要分出操作来将0处变为1.因为不管证明操作n之前的元素总和都没变,所以答案就是将所有数减完的操作数sum,加上需要填的0的个数。②n/2为奇数,也很简单,n/2站一位,剩下两个位置,一个留给1不改变最小公倍数,剩下的(n/2)-1刚好站一位。...原创 2022-07-25 22:31:13 · 1290 阅读 · 0 评论 -
CF1694B Paranoid String 构造/子串计数
所以子串s[j-j],s[j-1-j],s[j-2-j]...s[1-j]都可以被消去,此时答案+j,因为以s[j]结尾的子串有j个。也就是说这两个字符无法相消,那么以s[j]为结尾的前部分子串更无法消去此时答案数+1,因为本身s[j]这个字符就可以看作长度为1的字符串。所以不管哪种情况都能变成结尾为s[j-1]+s[j]的情况,接下来继续这样讨论直到消去j前面的所有字符。"在0的左边,且不相同,则可以被0消去。设一个串xxxxx?可以证明,此时以s[j]为结尾的所有子串都会被消去只剩s[j]......原创 2022-07-25 15:22:02 · 388 阅读 · 0 评论 -
Codeforces Round #806 (Div. 4) A-G
接下来就是枚举这个数组的元素的下标和值,使其满足i原创 2022-07-14 19:42:32 · 191 阅读 · 0 评论 -
Codeforces Round #805 (Div. 3)A-D
最近好懒啊不想写博客,这个div3都快一个星期前的了...原创 2022-07-14 19:06:21 · 149 阅读 · 0 评论 -
Codeforces Round #799 (Div. 4) A-E
Problem - A - Codeforces You are given four distinct integers a, b, c, d.Timur and three other people are running a marathon. The value a is the distance that Timur has run and b, c, d correspond to the distances the other three participants ran.Output the原创 2022-06-16 12:48:50 · 511 阅读 · 0 评论 -
Educational Codeforces Round 129 (Rated for Div. 2) D Required Length dfs/bfs记忆化
https://vjudge.net/problem/CodeForces-902B/origin原创 2022-05-25 23:10:54 · 181 阅读 · 0 评论 -
CF1659B Bit Flipping 思维/贪心/模拟
CF1659B Bit Flipping - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 初见没啥想法,先找找规律。注意到操作,选中一个元素其他元素反转,设选中的元素操作了m次,总操作数为k,那么当前元素被反转的次数即为k-m。当被反转的次数为偶数的时候不改变元素的值,反转的次数为奇数的时候元素被改变。首先要使字典序最大,就尽量使前面的元素为1.且又因为操作数要尽量小才能多分出一些操作数给后面的元素使他们更可能变为1. 由这个贪心策略,所以从头往前遍历序列。如果k为奇数,那么遇到1原创 2022-05-16 23:45:27 · 226 阅读 · 0 评论 -
Codeforces Round #787 (Div. 3)和Codeforces Round #790 (Div. 4) ABC/ABCDE
Codeforces Round #787 (Div. 3) A 讨论极端情况即可 //#include<bits/std c++.h> #include <iostream> #include<ctime> #include<math.h> #include<string> #include<vector> #include<queue> #include<stack> #include<..原创 2022-05-11 19:22:13 · 230 阅读 · 0 评论 -
5月4日 vp训练赛
这场感觉还行,9题出了7题,大概花了2个多小时,剩下的时间都卡在了并查集的那题,还有一个二叉树的好像也不太会,数据结构虽然学完了但是因为一直没用到不会敲了。不过总体写的很舒服,队友也很给力,提供了很多思路和题目的理解。目前我们队的节奏就是先一起开一道题,如果思路确定了,就我去写代码,另外两个人去开另一道,然后我提交完再跟上他们,他们跟我讲题目理解和思路。我觉得目前的节奏就挺合适的,但是我也得继续提高思维和代码实现的能力不能让队友失望。 ...原创 2022-05-05 00:06:55 · 842 阅读 · 0 评论 -
Codeforces Round #786 (Div. 3) ABCD
这场比赛感觉还行,但是罚时挺多的,多是因为忘记关freopen,然后去搜了搜相关的资料。可以用宏来判断oj的变量,提交oj时会不编译这块。还挺好用的 #ifndef ONLINE_JUDGE //freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); #endif // !ONLINE_JUDGE A. Number Transformation 题意:每次给定正整数x,和y,输出整数a和b,使x在a次变为原来的bx原创 2022-05-03 20:21:50 · 492 阅读 · 1 评论 -
四月vp训练赛2 2021 Jiangsu Collegiate Programming Contest K. Longest Continuous 1
Khttps://vjudge.net/problem/Gym-103495K/origin 题意:二进制串组s满足 其中bi为无前导0的 i 的二进制,给定k,s前k个二进制中最长的连续1个数 思路:好难啊好难啊。 主要还是找规律,这里我用py打了个s的表,发现了一些规律,比如 si的最长连续1个数就是i的二进制位数,而且很明显这个二进制位数只有在i为2的次方时才会变化。所以我们可以先确定k在哪两个相邻s长度以内从而就能确定 二进制位数再确定最长的连续1. 所以我们...原创 2022-05-01 19:34:31 · 285 阅读 · 0 评论 -
4月vp训练赛1
目录 Problem - 1337A - Codeforces1.简单思维 Problem - 1057A - Codeforces思维 Problem - 1335B - Codeforces思维 Problem - 140A - Codeforces数学 https://vjudge.net/problem/CodeForces-1623B/origin思维/较难 Problem - 1337A - Codeforces1.简单思维 题意:输出满足...原创 2022-05-01 19:29:26 · 263 阅读 · 1 评论 -
Codeforces Round #783 (Div. 2)和Codeforces Round #784 (Div. 4)---- ABC | ABCDEF
Codeforces Round #783 (Div. 2) A 题意:给定一个长宽分别为n,m的网格,起点为(1,1)每次可以上下左右移动,但这一次的移动不能与上一次的移动相同。问到右下角(n,m)的最小操作数。 思路:(图是借的qwq) 不能重复移动且步数最小的方法当然是沿着对角线右下移动,可以看到,移动到底边的时候就不能这样移动了,但是此时与终点同一水平线上。从图上可以看到,从左上右下移动的时候横坐标移动到min(n,m),纵坐标移动到min(n,m)所以如果当n==m且n和m没有原创 2022-04-24 00:24:03 · 455 阅读 · 1 评论 -
文件输入输出和Visual studio 对拍技巧
以前一直是用控制台cv输入输出的,有些题这样真的太麻烦了,首先是debug完要重新粘贴,而且比对输出和答案太麻烦了(打cf的时候多是一个样例一个输出,输入和输出混在一起)。 所以研究了两天文件输入和比对,还熟悉了一下visual studio的操作。这里总结一下。 1.文件输入输出 在源文件中创建txt文本即可直接用相对路径访问。 此处的correct文本为正确答案用于比对输出 #pragma warning(disable:4996); //visual studio有时候会报安全错误,这个可原创 2022-04-21 20:33:25 · 938 阅读 · 0 评论 -
4.9 Codeforces Round #781 (Div. 2)和Educational Codeforces Round 126 (Rated for Div. 2) ab
Codeforces Round #781 A 题意,找出四个数abcd时其和为n,且ab的最大公因数等于cd的最小公倍数 既然对每个数都存在解,可以考虑特殊值,带入1,发现ab其中一个为1则最大公约数为1,cd全为1则最小公倍数为1,得到 1,n-3,1,1四个数 #include <iostream> using namespace std; int main() { int t,n; cin >> t; while (t--) {原创 2022-04-10 16:24:07 · 270 阅读 · 0 评论 -
Codeforces Codeforces Round #778. C. Alice and the Cake 模拟+优先队列
目录 C. Alice and the Cake 题目大意: 思路: 代码实现: C. Alice and the Cake time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Alice has a cake, and she is going to cut it. She will perform.原创 2022-03-21 23:23:19 · 865 阅读 · 0 评论 -
3.24 CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes)小结
这次心态给我打崩了,还是不太适应这种偏向数学的思维题,或者说还是太菜了。确实还得多练练。这次只出了,一道A(还因为设置无穷大的值太小卡了好几次),第二题公式关系一直推错。别的题基本没时间看,挺受打击的。因为赛后来看这两题真的不难,卡了一个多小时真不应该。 A题 大意是,对一个给定长度为n的数列a,必定存在一个数对<i,j>(1<=i,j<=n)使a[i],a[j]对任意k(1<=k<=n)都满足 其中,i 和 j 可以相等找出其中一个满足这...原创 2022-03-25 15:42:16 · 570 阅读 · 0 评论 -
3.31 Codeforces Round #780 (Div. 3)小结
虽然是DIV.3,但是跟上一场DIV.2一样只出了两题。10分钟左右出了A,又过了20分钟写了B,但是有点小bug,又看了遍题目改完了,提交,但是数组开小了re了。加了两拨罚时。比赛还剩一个多小时,而且c题也不难,但是我思路没找对,去用双指针遍历字符串模拟了,而且因为用了getline接受字符串,莫名其妙每次提交的时候会在答案前加个0(答案的初始化)。但我不知道咋改,交了好几发全wa就跑去写D,D想了一会也没啥思路,看看时间不多了又跑回去改C,最后这两题都没出。实际上string可以直接cin输入,而且只需原创 2022-04-02 00:30:07 · 362 阅读 · 0 评论