临近回家,有一点心浮气躁
比赛思路
contest(https://jzoj.net/senior/#contest/home/2789)
- T1(树环转换):稍微思考之后可以发现求的是一棵树可以被分成最少多少条链,树形DP即可。
- T2(海明距离):原本以为可以用trie,结果发现没有贪心的可行性。上了一个暴力,拿到了60分,然而实际上暴力应该只有30分。数据太水了。
- T3(排列):n能被分成多少个数相加,并使得这些数的LCM最大。为了使决策最优,不难发现每一个数都是一个质数的某次幂。背包一下即可。然后贪心地输出方案。然而n为1e4,显然如果直接这样设f[i][j]为最大的积,会爆,所以就只拿了30分(应该是40的,因为DP转移漏了只少了10分)
赛后消化
- T1细节打错,少了30。轻松改过来。
- T2原来直接暴力枚举,可行即break,就可以100了。一道赤裸裸的欺诈题,考场上有人误打误撞优化了一下暴力就过了,孰不知这就是正解。
- T3将质数的乘积变为自然对数之和,就是log,然后用double存。转移的时候记录一下这一步选了多少个
该质数即可(话说我之前直接将乘积又质因数分解了一遍。。。) - 今天的题目难度不大,改了一个小时就改完了。。。
其他
- 昨天的半平面交???
总结
- DP的时候要注意不漏转移,不错转移,多多考虑各种情况。
- 水法真神奇,暴力出奇迹。有的时候要多想想暴力的优化,有时候深入思考就可以使这个暴力摇身一变成为正解。优化还是要有的,万一过了呢?
- 实现水平有待提升,今天题目思维上不难,只不过一些细节着实致命。