Codeforces Round #689 (Div. 2, based on Zed Code Competition)
performance:1500
越来越菜了。。。。。菜的扣脚,
- b 调的有点久,主要是没考虑边界的问题。
problem A
String Generation
- tag:greedy
- 本题只要前面补k个,后面全都补“cba”即可。
problem B
Find the Spruce
- tag:二维dp,brutreforce,simulation
problem C
Random Events
- tag:math
- 稍微分析,什么时候不会对答案影响即可。
- 之后又分类加法原理即可,和分布乘法原理即可
problem D
Divide and Summarize
- tag: divide and conquer, two pointers
- 简单分治和模拟
problem E
Water Level
- tag:brute force , graphs , greedy , implementation , math, *2200
problem F
Mathematical Expression
- tag:constructive ,algorithms, dp , greedy, *2700
Educational Codeforces Round 106 (Rated for Div. 2)
performance:1500
- 菜的扣脚,一开始的D想歪了,想到exgcd去了,结果只用筛法就够了。。。。。qwq
- B的贪心一开始没多想就码,结果wa了几发。。qwq
problem A
Domino on Windowsill
- tag: greedy
- 给你一个一半是白和黑的二维矩形。填放骨牌,白色至少放w个,黑色至少放b个。
- 先竖着放,不够的再横着放。
problem B
Binary Removals
- tag: greedy
- 可以发现11xxx00是不合法的。
problem C
Minimum Grid Path
- tag: prefix
- 前缀维护一下就好,之后枚举答案即可。
problem D
The Number of Pairs
- tag: sieve , math
- 推公式和分析
- 题解地址。
problem E
Chaotic Merge
- tag: combinatorics dp
problem F
Diameter Cuts
- tag: dfs and similar dp trees
problem G
Graph Coloring
- tag: data structures graphs interactive
Codeforces Round #710 (Div. 3)
菜了菜了,签个到.
这场现状,我快睡着了,jj哥快切完了.
分割线:之前太懒了,现在(1h限时训练,到点被迫下班,除非特殊情况)
2021/5/16开始写博客督促自己补题
Educational Codeforces Round 109 (Rated for Div. 2)
难度正常div2,
- B的分类讨论写的不够简洁,导致wa了一发。。。
- D的dp,其实把位置放起来,就可以去dp了。。。
- A:gcd一下就好了
ac
- B:暴力分类讨论一下就好了
ac
- C:暴力讨论,善于观察奇数和偶数
- D:正常dp,三种做法
Codeforces Round #721 (Div. 2)
难度适中,本场的博弈其实可以想一下的。。。。。。
- A:统计二进制下的位数。可以取对数。很快,也不用特判。。
ac
- B1&&B2:思路
每个人的策略是:
- 给对手回文,让对手不能旋转。
- 能旋转就旋转
解:
- 首先考虑长度为奇数时,中间的元素为0。假如0的个数为1那么BOB赢,假如为2那么DRAW,否则ALICE(最后的情况,ALICE总可以(借助中间的点),构造回文给BOB)
- 长度为偶数时,统计回文里不相等的位置。这里就显然了。BOB能赢的情况只有是回文串时。(因为ALICE初始是回文)。
- C:水题。。。。map维护一下就可以了。
ac
- d:lca
- E:dp,维护
Codeforces Round #722 (Div. 2)
performance:1450
已经是fw了,
对于出b的速度有点慢了,
这次的c挺套路的,没秒掉。。可惜了
- A: 统计最小元素的个数
- B: 统计非正数的个数
- C: Tree&&dp
- D: math&&dp
分类讨论和固定边界。‘
首先可以观察到[1,x],1肯定会和一个位置配对。
- x > n 时,会发现x以外的点都可以匹配
那么问题就转换成了 d p [ x − n − 1 ] dp[x-n-1] dp[x−n−1]的子问题了。- 对于x<=n时,可以发现其他点的长度都确定,而什么时候合法,就是n的因子时。
- E: dfs
Codeforces Round #723 (Div. 2)
performance: 1750
手速场没得说得。d的排列枚举很巧妙
- A: 排序之后,奇数位置插入后半,偶数位置插入前半。(n为偶数,一定可以构造出来),证明。。。。。
- B: 打表找归率,发现大于 1 0 6 10^{6} 106时,答案不变了
- C: 贪心&&heap维护最小的负数
- D: 排列&&逆序数(把题目的排序转换为求逆序数)
- E:组合数学&&构造答案。
- F:…
Educational Codeforces Round 110 (Rated for Div. 2)
performance
: 1650
mada mada ne,还要加油,d最后都没调出来,赛后发现还是挺多bug的
a顺利出来了
b看错题了。。。。。。。交了一个其他题的。。。。
d其实挺好想的,码时可以先reverse一下。以便求出在第几层。代码还是不够精简,导致一直wa,一直调式到结束,应该好好反思一下。
- A:
AC
: 签到,记录&&判断即可 - B:
AC
:判断gcd之后求pair数,很套路的题,容斥一下即可 - C:
AC
:dp维护之后输出(题意好像有点没表示清楚) - D:模拟&&类似线段树的建树过程(题意好像没说询问后改变还是不改变。。。)
- E:dp
Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2)
performance:1400
这场就算题意再难懂,也别轻易放弃
A一开始看错题了,浪费了10min,
B构造正常出了
C被题意吓跑了,赛后其实也不难,中规中矩
- A: 暴力扫一遍即可
- B: 构造
- C: 栈维护&&模拟
- D: 随机化&&bitmasks
//随机化
#include <chrono>//随机化
#include <cstdint>//
#include <ctime>//
#include <random>//
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
For(times, 1, 20){
int x = rng()%n;
}
- E:
- F:…
Codeforces Round #725 (Div. 3)
performance:1400
本场表现的不好:
c调了有点久,
d调了也很久
F的规律没找到。。。其实做了这么多dp,也蛮好想的
- A:
- B:
- C: 排序&&二分(
ac
赛时写歪了,调了好久)记得写sort之后的lowerbound和双指针
//所有标准库容器类型都支持的运算
*iter;
iter->num;
++iter;
iter++;
--iter;
iter--;
iter1==iter2;
iter1!=iter2;
//只有vector和deque容器的迭代器支持的操作
iter+n;
iter-n;
iter1+=iter2;
iter1-+iter2;
iter1-iter2;
<,<=,>,>=
//关系操作符只适用于vector和deque,string容器,这时因为只有这两种容器为其元素提供快速、随机的访问,他们确保可根据元素位置直接访问指定容器
/*如何获得一个迭代器在容器中的位置呢?*/
//运用distance函数方法
int val = distance(v.begin(), it);
- D: 唯一分解&&筛法
ac
(被卡时间。。。。) - E: 大模拟 (关键是缩小串,因为本题的最大长度有 5 ∗ 2 49 5*2^{49} 5∗249)代码
其实这题有空格,直接输入就好了,cf不会恶心的。
/* substr */
substr(pos,len);//没有其他了
/* find */
s.find(pos,"");
string::npos;//找不到
公式恒等变换时,要保证结果不变(主要是取整时)
Codeforces LATOKEN Round 1 (Div. 1 + Div. 2)
performance: 1400
这场阳寿局。。。
23:30—2:00
d题可以出的,时间不够了。(题目也没读懂)
B的公式推的有点慢。。。
A还没写成智慧暴力。。。
- A: 签到,二分图染色,直接暴力1, 智慧暴力
ac
- B: 签到,推式子
ac
- C: 类似于循环节
ac
- D: 交互,暴力 代码
- tip树,肯定可以二分图染色(之后拿点集小的点,去搞)
- E: 交互,dp,模拟 代码
- 首先一个集合的大小,不会和元素是什么有关。之后就可以dp了
- dp后是模拟, mid
Codeforces Round #728 (Div. 2)
performance
: 1670
a正常找规律,1a
b推式子,推的有点久。
c构造,一开始没考虑全面wa了两发。
d的组合数学很有意思
题意:给你一个图,要你求每个点的访问顺序,之后写出a数组,问a数组逆序对的期望值。
思路:可以先考虑算每一对的逆序对。(把问题转换为求贡献)
∑ i = 1 n ∑ j = i + 1 n p [ i ] [ j ] \sum_{i = 1}^{n} \sum_{j = i+1}^{n} p[i][j] i=1∑nj=i+1∑np[i][j]
之后对公式化简,求一条链,之后求链上的子树大小。枚举起点。(这里还有一步dp转换)
- E1:dp
- E2:dp
Codeforces Round #729 (Div. 2)
2021/7/3
perfomace
1350
这场又让我想起了被数学神犇支配的恐怖。tql。
数学题都是
c的规律差点,就是没想到用lcm去迭代。
- A:
ac
签到统计 奇偶是否相等即可 - B:画出搜索树后,发现答案肯定是这个形式 a x + k ∗ b a^x+k*b ax+k∗b,那么暴力check一下即可
- C:可以发现奇数都是2,之后发现会变的是偶数,根据因子的变化会使 f ( i ) f(i) f(i)改变
可以发现
假如: f ( n ) = i f(n) = i f(n)=i(最小的不可以整除n的数)
那么 l c m ( 1 , 2 , i − 1 ) ≤ n lcm(1,2,i-1) \le n lcm(1,2,i−1)≤n 想到这里,本题也就解决了。
剩下的部分和求因子数差不多。除法就行了 。
- D:dp挺好想的,代码
现阶段,还没熟练dp,转移还是写全,不错,起码不会有bug!!!
- E1:dp
- E2:dp && fft
Codeforces Round #730 (Div. 2)
2021/7/7
performance
1200
,(c被x了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。)
(1620
)
a:一开始取min(讨论没写好,wa了一发)
b:观察一下就好了
c:这场可以说画蛇添足了,直接db不会被卡。偏要用LL,之后还少乘了一个2
以后写时,还是要算清楚,再码,不然又写bug了。。。。。。
- A:
ac
签到&&数学 - B:
ac
签到&&数学(公式推导 - C:
hack5
dfs&&eps - D1:交互&&二进制
- D2:交互&&k进制
- E: bitmasks、constructive algorithms、divide and conquer、graphs、greedy、math