是个补题记录。

1419

除了 F 场上都过了。

CF1419A Digit Game

这题好多人 FST 啊……

考虑如果串长为奇数那么最后操作的肯定是第一个人,串长为偶数的最后操作的肯定是第二个,而且两个人的操作互相独立。

所以如果最后一个操作的是第一个人而且存在一个奇数位置上的数是奇数的话那么第一个人肯定赢,否则第二个人肯定赢。

最后一个操作的是第二个人的话同理。

代码

CF1419B Stairs

很明显只有当 \(n=2^k-1\) 的时候 \(n\) 级的阶梯才会是好的,然后从小到大枚举一下就好了。

代码

CF1419C Killjoy

注意到答案只有可能为 \(0,1,2\)。

答案为 \(0\) 的话很好判断,答案为 \(1\) 的话有两种情况:

  • 存在至少一个人与病毒的 rt 相同。那么这些人在第一场比赛之前就会被感染,于是只需要让那些没被感染的全部调成与病毒 rt 一样,被感染的那些随便改就行了。

  • 所有人的 rt 的平均值等于病毒的 rt。直接将所有人的改成病毒的 rt 就行。

其他情况答案为 \(2\),也即先操作两个人使得一个人的 rt 被改成与病毒的相同,然后第二次比赛变成上面的情形 1。

代码

CF1419D1 Sage's Birthday (easy version)

肯定是先排序然后均分成前后两组,然后前面的和后面的轮着填即可。

注意到前面的每个值一定小于后面的每个值,所以前面的最多只会有一个数不会被贡献到。

代码

CF1419D2 Sage's Birthday (hard version)

还是先排个序然后轮着放,放完了之后要重新算一遍答案。

代码

CF1419E Decryption

注意到只有当 \(n\) 为两个不同质数的积的时候答案才可能为 \(1\),否则答案为 \(0\)。

否则设 \(n=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_n^{\alpha_n}\),那么可以这么构造一个环:

首先将 \(p_1,p_2,\cdots,p_n\) 顺时针排列,然后在每个 \(p_i\) 和 \(p_{i+1}\) 中间插入 \(p_ip_{i+1}\),剩下没有被选中的因子就放到最小质因子右边就好了。

代码和题解给出的构造方案稍微有点不同。

代码

CF1419F Rain of Fire

题解

1418

这场根本没打。

CF1418A Buying Torches

每一次交易木棍可以白嫖 \(x-1\) 个,需要白嫖的木棍至少是 \(yk+k-1\) 个,随便算就行。

代码有点迫害 syk 小鸽鸽向。

代码

CF1418B Negative Prefixes

贪心很显然,将所有没被锁的数拿出来从大到小排序在一个一个塞回去就好了。

代码

CF1418C Mortal Kombat Tower

不会贪心,只能 DP。

设 \(f_i\) 为打到了第 \(i\) 个,最后一个是自己打的的答案,\(g_i\) 为打到了第 \(i\) 个,最后一个是朋友打的答案,那么有如下转移:

\[f_i=\min(g_{i-1},g_{i-2})
\]

和

\[g_i=\min(f_{i-1}+a_i,f_{i-2}+a_{i-1}+a_i)
\]

然后注意一下初值就好了。

代码

CF1418D Trash Problem

题解

1420

赛场上只做到 D。

CF1420A Cubes Sorting

会冒泡排序的都知道这个 \(\frac{n(n-1)}{2}\) 是理论的交换次数上界,然而这个上界只有在 \(a_i>a_{i+1}\) 的时候才会取到。

代码

CF1420B Rock and Lever

打个表可以发现 \(a\&b\geq a\oplus b\) 只有当 \(a\) 和 \(b\) 的二进制位数一样才会成立。

代码

所以按照二进制位开个桶然后从前往后扫一遍就好了。

CF1420C1 Pokémon Army (easy version)

这个题没有交换操作所以可以 DP。

设 \(f_i\) 表示已经取了奇数个数,最后一个取的是 \(i\) 位置上的和 \(g_i\) 表示已经取了偶数个数,最后一个取的是 \(i\) 位置上的。可以很容易写出转移方程:

\[f_i=\min\limits_{i\leq k<i}(g_k+x_i)
\]

和

\[g_i=\min\limits_{i\leq k<i}(f_k-x_i)
\]

在 DP 的过程中同时维护 \(f\) 和 \(g\) 的前缀最大值就可以了,还是要注意一下初值。所给代码中的 \(f\) 和 \(g\) 表示前缀最大值。

代码

CF1420C2 Pokémon Army (hard version)

题解

CF1420D Rescue Nibel!

题解

CF1420E Battle Lemmings

题解

1426

没打,赛后打了一下,大概是 70min 左右切了 6 个题。

CodeForces 题目乱做的更多相关文章

  1. BZOJ 题目乱做

    记录一点在 BZOJ 上做的题. 众所周知原 BZOJ 炸掉了,于是跑去了 HydroOJ 的 BZOJ 域上面做. 目录 P1001 [Beijing2006]狼抓兔子 P1002 [FJOI200 ...

  2. jzyz 题库 题目选做

    题库中也有很多我想不出来的模拟赛的题目.做还是必要的.做自己的题目 时间很紧 想想自己的文化课 我又没有那么强 我必须得刷. LINK:水题一道 发现是一道计数题 计数题拿高分的才是王者,但是 计数题 ...

  3. 2017国家集训队作业Atcoder题目试做

    2017国家集训队作业Atcoder题目试做 虽然远没有达到这个水平,但是据说Atcoder思维难度大,代码难度小,适合我这种不会打字的选手,所以试着做一做 不知道能做几题啊 在完全自己做出来的题前面 ...

  4. CF 题目选做

    写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个 ...

  5. 一道codeforces题目引发的差分学习

    Codeforces Round #688 (Div. 2) 题目:B. Suffix Operations 题意:给定一个长为n的数组a,你可以进行两种操作:1).后缀+1;     2)后缀-1: ...

  6. 基尔霍夫矩阵题目泛做(AD第二轮)

    题目1: SPOJ 2832 题目大意: 求一个矩阵行列式模一个数P后的值.p不一定是质数. 算法讨论: 因为有除法而且p不一定是质数,不一定有逆元,所以我们用辗转相除法. #include < ...

  7. 后缀自动机/回文自动机/AC自动机/序列自动机----各种自动机(自冻鸡) 题目泛做

    题目1 BZOJ 3676 APIO2014 回文串 算法讨论: cnt表示回文自动机上每个结点回文串出现的次数.这是回文自动机的定义考查题. #include <cstdlib> #in ...

  8. FFT与多项式、生成函数题目泛做

    题目1 COGS 很强的乘法问题 高精度乘法用FFT加速 #include <cstdlib> #include <iostream> #include <algorit ...

  9. 二维计算几何基础题目泛做(SYX第一轮)

    题目1: POJ 2318 TOYS 题目大意: 给一个有n个挡板的盒子,从左到右空格编号为0...n.有好多玩具,问每个玩具在哪个空格里面. 算法讨论: 直接叉积判断就可以.注意在盒子的边界上面也算 ...

随机推荐

  1. 《Head First 设计模式》:代理模式

    正文 一.定义 代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问. 要点: 代理模式为一个对象创建了代理对象,让代理对象控制对该对象的访问.被代理的对象可以是远程的对象.创建开销大的对象 ...

  2. 神奇的字符串匹配:扩展KMP算法

    引言 一个算是冷门的算法(在竞赛上),不过其算法思想值得深究. 前置知识 kmp的算法思想,具体可以参考 → Click here trie树(字典树). 正文 问题定义:给定两个字符串 S 和 T( ...

  3. VS中OpenCV用imread读取不到图片

    转自:https://blog.csdn.net/u012423865/article/details/78116059 在VS中OpenCV用imread读取不到图片 今天在Visual Studi ...

  4. c++缓冲区std::wstringbuf

    参考:http://www.cplusplus.com/reference/sstream/wstringbuf/ class <sstream> std::wstringbuf type ...

  5. Linux中的硬链接和软连接

    1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...

  6. puts()和gets()函数

    puts()和gets()函数 1. puts()函数 puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为: puts(s); 其中s为字符串变量(字符串数组名或字符串指针). ...

  7. osu合集(期望dp)

    T1 EASY 我们设\(f_i\)表示到\(i\)的连续个数平方的期望. \(g_i\)表示到到\(i\)的连续个数的期望 在维护\(f_i\)的同时维护一下\(g_i\)就行了. 转移方程: \( ...

  8. springCloud微服务调用失败【CannotGetJdbcConnectionException: Failed to obtain JDBC Connection】

    详情如下: 2019-07-28 10:56:18.229 ERROR 16212 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet ...

  9. 浅谈Python常用英文单词

    一.交互式环境与print输出 1.print:打印/输出2.coding:编码3.syntax:语法4.error:错误5.invalid:无效6.identifier:名称/标识符7.charac ...

  10. MeteoInfoLab脚本示例:创建netCDF文件(合并文件)

    在MeteoInfoLab中增加了创建netCDF文件并写入数据的功能,这里利用合并多个netCDF文件为一个新的netCDF文件为例.1.创建一个可写入的netCDF文件对象(下面用ncfile表示 ...