5.19 ACM Practice总结
来源:互联网 发布:网站如何做谷歌优化 编辑:程序博客网 时间:2024/06/04 23:34
先写总结再写题解吧。。毕竟做的不是太好。
早上
一开始看题完全没有思路。因为看的是英文题,所以阅读速度有点慢。当我还在想算法的时候别人已经开始敲键盘了。。。因为是ACM模式,所以我以为有水题我没有想到。所以那个时候还是比较紧张的。我就一直在纠结着自己的想法。然后看见别人一下子就A了一题。。我马上就切换了题目。但是因为觉得别人都这么快的A了这道题,所以没有往代码量比较高的方向上去想。但是较简单的算法我又没有想到。而且一直急于要AC,所以算法中的很多细节都没有考虑。导致我一道题交了20次都没有A。。因为看其他题都没有什么思路。所以就一直在两道题之间切换。但是思路一直都没有打开。最后爆零。。
因为对ACM不是很熟悉。所以整场比赛的节奏都不是很对。
1. 首先思维上一直局限于代码量较小方向,觉得一道题不应该花太多时间。
2. 然后当别人很快的就A了一题的时候会比较紧张。觉得自己是不是什么地方看错了。比较简单的题没有想出来。
3. 当一道题一直WA,WA,WA,WA,WA的时候心里就很急躁。没有及时的冷静下来检查程序, 考虑细节。
4. 一做ACM就把OI的经验全部忘记了。。
下午
下午的心态就放平衡了很多啦。反正早上都爆零了。一开始先看题。发现有两道题很水。用了半个钟左右切掉。然后去看了一下Status,发现有道题很多人在做。然后去看了一下,觉得还是道水题。但是程序中很多细节没有考虑。。(太久没玩过国际象棋。。。)WA了3,4次才A。然后剩下来的2个钟一直看后三题。有道题我看根本都没有人A过,我就直接连题目都没有看了。但是剩下来的两题也很难。我一直纠结到5点,才开始想起可以打表找规律。。然后,居然真的有。。。但是没时间了。。。
最后A了3题,,但是几乎每个人都A了3题。。
下午的节奏总体来讲还是往正确方向发展的。但是。。。
1. 还是连题目都没有看完。其实那道没人过的题目是道大水题。。把题看完就会做了。。
2. 在纠结题目的时候还是没有打表找规律这种意识。。
第一次正式的做ACM模式。。(其实没有罚时的应该叫IOI模式啦。。)之前都是组团开黑的。。压力没有这么大。
虽然说我不去PKUSC,但是多做ACM还是能很好的锻炼心态调整以及代码实现的稳定的。
可惜CF的时间太不和谐。。。我这个绿名狗不知道什么时候才能变回来。。
题解
1 连环锁(POJ1832)
这题最好的做法是用一个叫格雷码的东西。
具体的表是
可以发现,对于两个连续的数。他们对应的格雷码只相差一位。并且格雷码与二进制是一一对应的。那么这题我们可以直接将读入的格雷码解码回二进制,然后做差取绝对值就可以了。
2 TEAM THEM UP!(poj 1112)
这题采用一种逆向思维。
假如对于两个人
接着我们对
否则我们发现
那么我们可以进行一个
把一个合法解作为我们原题中的
3 Computer Basketball Game(poj 2238)
这题比较难。
首先我们可以发现我们可以直接暴力分配
那么问题变为了
我们可以这样来做。
考虑具体的转移
那么转移就是
注意到这是一个带环的转移。但是我们可以直接高斯消元将
4 Boatherds(poj 2114)
这题就是比较显然的点剖吧。要讲?
5 ATP(poj 1818)
我们先二分答案
6 One-move checkmate(poj 1647)
直接枚举皇后到的位置。然后注意一些细节就好了。
7 Vivian’s Problem(poj 1777)
做这道题,我们首先要知道
然后,对于
有了这两个结论之后这题就比较好做了。
我们的
也就是说
又因为
我们接下来就可以直接递归求解答案了。
8 Math teacher’s homework(poj 3986)
题意:
求有多少种方案,满足
且
其中
因为比较蠢。所以用了一种比较蠢的做法>_<
我们定义一个函数
设
我们取出M中最大的
设
设其最高为为top
再设
1.
那么很显然的是,
也就是说,在top后面的位,Q可以随意选择,不需要考虑K,因为我们P上的数字可以根据情况进行修改使得每一位异或出来仍然
那么我们可以直接Dp计算出Q中top这一位异或出来等于K的方案。
2.
P 在 top后面的位有限制。
我们此时可以将P修改为
我们发现我们每次会将一个数的1给抹掉。那么总的时间复杂度就是
- 5.19 ACM Practice总结
- ACM practice ->1000
- ACM 总结
- ACM总结
- ACM总结
- acm总结
- ACM总结
- ACM总结
- ACM总结
- ACM总结
- practice
- practice
- ACM路程----1085 A+B for Input-Output Practice (I)
- ACM----1086 A+B for Input-Output Practice (II)
- ACM---1087: A+B for Input-Output Practice (III)
- ACM---1088: A+B for Input-Output Practice (IV)
- ACM---1089: A+B for Input-Output Practice (V)
- 杭电 HDU ACM 1405 The Last Practice
- 轻量级Java EE企业应用实战-----11、批量处理
- phpstorm8连接xdebug来调试php
- Battery Charging Specification 1.2 中文详解
- linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法
- Linux内核多线程——补充(各种平台下的多线程)
- 5.19 ACM Practice总结
- 仿微信的语音点击播放时的语音图标动画效果
- 获取当前访问客户端的真实IP地址(含内网地址)
- JDK/ADT Android开发环境搭建
- 第十一周【项目4 - 类族的设计】(1)
- 利用SHP2SDO将数据导入到Oracle数据中
- 网络敲诈和有偿删帖——从表面看到底层
- linux c++编译
- OC学习:SEL类型数据和selector的用法