用户工具

站点工具


2020-2021:teams:manespace:cf_658_div.2

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
2020-2021:teams:manespace:cf_658_div.2 [2020/07/31 13:18]
quantumbolt 创建
2020-2021:teams:manespace:cf_658_div.2 [2020/08/07 12:54] (当前版本)
quantumbolt
行 1: 行 1:
-写完写完就传。+Codeforces round 658 Div.2  
 + 
 +链接:​https://​codeforces.com/​contest/​1381 
 + 
 +本来是上周就应该写完拖了好久,这周上传。 
 + 
 +====== A Common Subsequence ====== 
 + 
 +===== 题意: ===== 
 + 
 +大水题,求两个序列$a,​b$的最短的公共子序列。 
 + 
 +===== 题解: ===== 
 + 
 +最短那就是一个字母,直接枚举就行。除非两个序列的全部元素都不同,那么不存在,直接输出''​%%No%%''​。 
 + 
 +====== B Sequential Nim ====== 
 + 
 +===== 题意: ===== 
 + 
 +给出每组有$a[i]$个石头的$N$个石头堆,从第一堆开始往后面取,如果不能取到石头,就判为输。 
 + 
 +===== 题解: ===== 
 + 
 +感觉是个博弈论的问题,但简单分析一下可以知道如果$a_1 > 1$,那么先手必赢。但如果前缀中有奇数个 1,那么后手必赢。 但需要注意的是特判所有堆都只有一个石头子的情况,此时只需要判断$n$的奇偶性就行。 
 + 
 +====== C1 Prefix Flip (Easy Version) ====== 
 + 
 +===== 题意: ===== 
 + 
 +有$a,​b$两个01的串,现需要你执行如下操作,将$a$变成$b$.选定$a$的前缀反转0和1,然后把这个前缀倒过来 
 + 
 +===== 题解: ===== 
 + 
 +简单版本就直接暴力了,每次用$a$字符串的第一个字符和$b$字符串的最后一个字符进行判断。如果不相等。则翻转整个$a$字符串。然后两个字符串长度减一。如果相等的话,就先对$a$的第一个字符进行反转操作。然后再反转整个$a$。 
 + 
 +====== C2 Prefix Flip (Hard Version) ====== 
 + 
 +===== 题意: ===== 
 + 
 +同C1 
 + 
 +===== 题解: ===== 
 + 
 +题目说操作的步数不能超过$2n$步。而且hard version的数据也更强,n的范围也变了,所以暴力是不行的了。 现在我们先用$n$个操作将$a$串变成同一个字符,再去跟$b$串每个位置作比较 从后往前保证修改过的值不被影响。 每次修改后记录当前位置往前的串的样子,重复上述操作。直至满足题意。 
 + 
 +====== D Unmerge ====== 
 + 
 +===== 题意: ===== 
 + 
 +给出一个长度为$2n$的序列,问这个序列是否可以由两个长度为$n$的序列$a$和$b$按特定的规则归并而成。 
 + 
 +===== 题解: ===== 
 + 
 +现对长度为$2n$的序列分组,再01背包判断选出几组刚好能构成长度为$n$的数组 
 + 
 +====== E Mastermind ====== 
 + 
 +===== 题意: ===== 
 + 
 +对两个长度为$n$的数组,数组中的元素有$x$个是相同的,有$y$个是不同的,但是可以通过换序使其相同。现在给出其中一个数组,$x,​y$。问是否存在另一个数组满足题意。 
 + 
 +===== 题解: ===== 
 + 
 +暂时咕一下,感觉还是有些难度的。过段时间来补
2020-2021/teams/manespace/cf_658_div.2.1596172690.txt.gz · 最后更改: 2020/07/31 13:18 由 quantumbolt