2016-C02-team5
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
== 流水账 ==
=== jcq1234 ===
这场比赛炸了,我们首先还是跟昨天一样分开读题。读完D题感觉毫无头绪,又开始读E,还是不会做,这个时候A题又WA了一次,感觉不太妙。之后wth学长把A和B过了,'''A2y20''', '''B1y33'''。然后我和wth学长一起商量F题,一开始题目读错了,以为是个水题,排序就能过了,和wth学长说了思路之后就让他继续码,果断WA。之后triomino学长G题有思路了,'''G1y78'''。然后我把F题甩锅给了另外两个学长,开始做H,H题是个水题,数据量小,直接用unordered_set就能过的,我当时没想到,就用Trie做,因为Trie是用结构体内部存储数据,数组开太大不能运行,就只开了一万左右,提交runtime error两次,之后用全局变量存才过了,'''H3y98'''。之后和wth学长讨论了J题,很快就有正确思路了,感觉用凸包做非常科学,就让wth学长开始做J,之后和triomino学长讨论F,感觉有点坑,一直没有结果。这时候I题有学长过了,和triomino学长看了题目感觉应该是个费用流或者匹配,感觉并不会用模板,就暂时放着。然后继续看E题,给triomino学长讲明了题意和我的初步思路之后,学长很快就想出了尺取法,然后思路就明确了。
后面实在是黑历史,最后的时间我们一人死磕一个题,我做E,triomino学长做F,wth学长做J,每次都感觉就差一点就能过了,但是一直都有奇怪的bug,提交了好多次,wth学长还剩半个小时终于过了J,'''J10y268''',剩下的两道题一直都没有过。最后我们队罚时爆炸,题数爆炸垫底...
== 总结 ==
=== jcq1234 ===
* 代码能力还是不行,E题最早想出思路但是一直都有bug
* 还是太粗心了,F题读错了题目。
* 比较害怕做模板题,还是要多学习一个。
* 以后一定要学会取舍,后期我们都死磕一个题目,效率太低。
=== wtthhh ===
* 今天我主要要背锅,上来A题WA开头不顺,后面死磕J题,卡了2个多小时,浪费了太多时间
* C题看过原题,但当时没有做,印象不深没有上来就写,后面过了J题已经没时间了。。补题很重要,不然后悔死。。
* I题大概有思路,也是因为时间问题
* J题一度以为是凸包的问题。。。赛后终于查出来。。是爆int了。。叉积没有用LL。。要格外注意cross 和 dis 要用 long long
* 提高代码能力,该抄模板就得超
* 缺少团队配合,基本上一个搞一个题轮着debug,这很不ACM
=== triomino ===
* 思路有点死,F题直接认定用贪心,到最后都没想到dp。
* 缺乏debug能力(给自己以及队友)
* wa多了心态有点乱,不应该急躁
== 题解 ==
=== E ===
枚举左右边界,然后从上到下尺取法,预处理每一行的前缀和,然后可以得到每行0的个数,用两个multiset维护两个修补方法的行。枚举边界时,可以加一个优化,如果左右边界乘以行数都比当前答案小,就不用计算了。
=== C ===
求点双连通子图预处理,可以O(1)判断两个格子的连通状态,然后直接跑即可。。原题没做真是太蠢了。。
=== I ===
网络流建模,把必须点的费用设成极大极小之类的,常见套路。要注意的是最大费用流,不是最大费用最大流,加深对网络流理解
=== G ===
凸包模板爆炸。。
=== F ===
玩一局游戏之后,金钱期望x'=P(x+A)+(1-P)x(1-L)=PA+(1-L+PL)x,记做kx+b。对相邻两次游戏,结果为k[i+1](k[i]*x+b[i])+b[i+1],考虑交换i和i+1的条件,即k[i+1](k[i]*x+b[i])+b[i+1]<k[i](k[i+1]*x+b[i+1])+b[i],化简得(k[i]-1)/b[i]>(k[i+1]-1)/b[i+1]。按(k-1)/b从小到大排序,然后这个序列里进行dp,f[i][j]表示第i个游戏结尾取j个游戏得到的最大值。
转移f[i][j]=max(f[t][j-1])*k[i]+b[i], t=j-1,j,...,i-1.
流水账
jcq1234
这场比赛炸了,我们首先还是跟昨天一样分开读题。读完D题感觉毫无头绪,又开始读E,还是不会做,这个时候A题又WA了一次,感觉不太妙。之后wth学长把A和B过了,A2y20, B1y33。然后我和wth学长一起商量F题,一开始题目读错了,以为是个水题,排序就能过了,和wth学长说了思路之后就让他继续码,果断WA。之后triomino学长G题有思路了,G1y78。然后我把F题甩锅给了另外两个学长,开始做H,H题是个水题,数据量小,直接用unordered_set就能过的,我当时没想到,就用Trie做,因为Trie是用结构体内部存储数据,数组开太大不能运行,就只开了一万左右,提交runtime error两次,之后用全局变量存才过了,H3y98。之后和wth学长讨论了J题,很快就有正确思路了,感觉用凸包做非常科学,就让wth学长开始做J,之后和triomino学长讨论F,感觉有点坑,一直没有结果。这时候I题有学长过了,和triomino学长看了题目感觉应该是个费用流或者匹配,感觉并不会用模板,就暂时放着。然后继续看E题,给triomino学长讲明了题意和我的初步思路之后,学长很快就想出了尺取法,然后思路就明确了。
后面实在是黑历史,最后的时间我们一人死磕一个题,我做E,triomino学长做F,wth学长做J,每次都感觉就差一点就能过了,但是一直都有奇怪的bug,提交了好多次,wth学长还剩半个小时终于过了J,J10y268,剩下的两道题一直都没有过。最后我们队罚时爆炸,题数爆炸垫底...
总结
jcq1234
- 代码能力还是不行,E题最早想出思路但是一直都有bug
- 还是太粗心了,F题读错了题目。
- 比较害怕做模板题,还是要多学习一个。
- 以后一定要学会取舍,后期我们都死磕一个题目,效率太低。
wtthhh
- 今天我主要要背锅,上来A题WA开头不顺,后面死磕J题,卡了2个多小时,浪费了太多时间
- C题看过原题,但当时没有做,印象不深没有上来就写,后面过了J题已经没时间了。。补题很重要,不然后悔死。。
- I题大概有思路,也是因为时间问题
- J题一度以为是凸包的问题。。。赛后终于查出来。。是爆int了。。叉积没有用LL。。要格外注意cross 和 dis 要用 long long
- 提高代码能力,该抄模板就得超
- 缺少团队配合,基本上一个搞一个题轮着debug,这很不ACM
triomino
- 思路有点死,F题直接认定用贪心,到最后都没想到dp。
- 缺乏debug能力(给自己以及队友)
- wa多了心态有点乱,不应该急躁
题解
E
枚举左右边界,然后从上到下尺取法,预处理每一行的前缀和,然后可以得到每行0的个数,用两个multiset维护两个修补方法的行。枚举边界时,可以加一个优化,如果左右边界乘以行数都比当前答案小,就不用计算了。
C
求点双连通子图预处理,可以O(1)判断两个格子的连通状态,然后直接跑即可。。原题没做真是太蠢了。。
I
网络流建模,把必须点的费用设成极大极小之类的,常见套路。要注意的是最大费用流,不是最大费用最大流,加深对网络流理解
G
凸包模板爆炸。。
F
玩一局游戏之后,金钱期望x'=P(x+A)+(1-P)x(1-L)=PA+(1-L+PL)x,记做kx+b。对相邻两次游戏,结果为k[i+1](k[i]*x+b[i])+b[i+1],考虑交换i和i+1的条件,即k[i+1](k[i]*x+b[i])+b[i+1]
转移f[i][j]=max(f[t][j-1])*k[i]+b[i], t=j-1,j,...,i-1.
附加文件
- c02.png by Neddlh
- E.cpp by Neddlh
- 屏幕快照 2016-08-02 下午2.14.40.png by wtthhh