标签:Large log min Codeforces 偶数 809 cal Div dp
比赛地址
比赛情况
排名:324
AC:4 / 6
题目分析
A
显然对于每一步,如果靠前没选就选靠前的,否则选靠后的
B
加入两个相同数字之间可以连起来,它们相隔的个数必然是偶数,然后模拟即可
C
对于奇数的情况显然,每个分别计算即可
对于偶数的情况我采取dp,去掉左右两个,中间两个为1组,设 \(dp_{i,0/1}\) 表示在第 \(i\) 组放在前一个/后一个的最小代价,\(cal(x)\) 表示第 \(x\) 个的代价,则
\[\Large dp_{i,0}=dp_{i-1,0}+cal(x)\\\Large dp_{i,1}=\min(dp_{i-1,0},dp_{i-1,1})+cal(x+1) \]答案即为 \(\min(dp_{n,0},dp_{n,1})\) (\(n\) 要变换一下)
D1
设 \(dp_{i,j}\) 表示前 \(i\) 个数最小值为 \(j\) 时最大值的最小,如果 \(j\) 不存在就为 \(\inf\)
而如何求当前第一个大于等于 \(j\) 的值呢?二分。
然后就从上一步推过来即可。时间复杂度 \(O(n^2\log n)\)
赛后看题解发现不用二分,可以直接 \(O(1)\) 求出,所以可以优化个 \(\log\)
赛后总结
虽然AC没实现突破,但较为顺利
开场3min过A,B盲猜个结论16min时过
C就是纯模拟,偶数一开始以为只有两种情况,后来过不了样例改成dp,26min时过
D1想了一会就想到dp,但一直调不出,61min时才过
然后D2和E想了一会想不出就弃了
标签:Large,log,min,Codeforces,偶数,809,cal,Div,dp 来源: https://www.cnblogs.com/zhangtingxi/p/16500199.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。