Codeforces Round #220 (Div. 2)
来源:互联网 发布:归来。知乎 编辑:程序博客网 时间:2024/05/14 03:39
Codeforces Round #220 (Div. 2)
还是那句话,真正的高手,在数据有问题的情况下也能保证出成绩。。但很显然,我不是那种人。只能在赛后补题的弱渣,无话可说了。
A题:比赛的时候,可能大家想的太简单了,也都过了pretest。前面的做法就是看在x轴y轴的差距都能保证整除a,b的情况下,走的步数差为偶数。这个可以理解为用某一个方向上的一个调剂空间来走这个方向上的2步。那么这里就要考虑的是能否有调剂的空间了,几乎都是挂在了这里吧。。
代码:https://code.csdn.net/snippets/119003
B题:比赛的时候,数据错了。但是未能及时发现,最后还是挂了。思路是这样的,先考虑怎样会使得凑出来的9尽可能的多。先这样想,如果两个相邻的无法组成9,那么就从这里分开考虑,所以,最后我们就把这一串数分成一段一段的了,每一段里,任意两个相邻的数之和都为9,。然后把每一段能凑出9的个数尽可能多的情况数都乘起来就是答案了。那么对于某一段,怎样拼凑是最优的呢?对于一段有偶数个数,那么就只有一种拼法了吧,就是依次的两个两个组合起来了,奇数个的话,最多是可以组合出x/2个9的,那么就有一个数是要多出来了,所以这个多出来的数有几种位置,就是有几种拼法了,也就是x/2+1个位置嘛。然后就好了
代码:https://code.csdn.net/snippets/119009
C题:简单的深搜记忆化。从‘D’开始往下搜,搜到环的话,就是INF了,否则就用dp记忆化一下。
代码:https://code.csdn.net/snippets/119011
D题:这题的话。对于在末尾加进来数,那就加进来好了。关键是删除咋办呢?用一个树状数组维护下其实就行了。其实我们就是要知道某一个位置上的数有没有被删掉而已。这里也可以用线段树或树状数组+二分做。但是能巧妙的利用树状数组的性质更好。具体就是先认为每一个位置上的数都在,也就是都跟更新为1,然后删掉就是更新成0。那么怎么找到相应的位置删掉呢?(前面要删到哪个数为止用二分就不说了)。。这里就是类似与树状数组就第k小数一样的方法,看get()函数吧。
代码:https://code.csdn.net/snippets/119013
- Codeforces Round #220 (Div. 2)
- Codeforces Round #220 (Div. 2)
- Codeforces Round #220 (Div. 2)
- Codeforces Round #220 (Div. 2)
- Codeforces Round #220 (Div. 2)A-C
- Codeforces Round #220 (Div. 2) ABCD
- Codeforces Round #220 (Div. 2) A题
- Codeforces Round #102 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #104 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #107 (Div. 2)
- Codeforces Round #108 (Div. 2)
- Codeforces Round #110 (Div. 2)
- Codeforces Round #122 (Div. 2)
- Codeforces Round #121 (Div. 2)
- DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)之一
- 内核对象与内核对象的句柄——2013年12月20日(学习总结)
- Win7下安装配置tomcat,java运行环境
- C++箴言:必须返回对象时别返回引用
- 6.0 Introduction (Concurrency)
- Codeforces Round #220 (Div. 2)
- MongoDB组合索引的优化
- 利用Java获取本机网卡的MAC地址
- Joomla安装示范数据,永远安装不完的解决方法
- Nova如何配置虚拟机使用Spice+QXL ?
- C#WinForm 使用StreamWriter导出数据成Excel文件。
- PHP 真正多线程的使用
- gdb 打印字符串的全部内容
- Android之向中国天气网发送GET请求获取JSON数据实例