思路讲解
非常暴力的模拟,唯一记忆的地方就在于这个划线。
1 | FOR(i,1,N){ |
AC代码
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78205559
1 | // Problem: Museum Acceptance |
非常暴力的模拟,唯一记忆的地方就在于这个划线。
1 | FOR(i,1,N){ |
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78205559
1 | // Problem: Museum Acceptance |
这个的状态定义比较巧妙,定义的是a1和aN/2的差,a1+a2与aN/2+1+aN/2+2的差
1 | FOR(i,1,N/2){ |
https://www.codechef.com/viewsolution/1172894021
1 | // Problem: Good Arrays (Not Cyclic) |
那么根据我的经验来说,如果说这个东西要求连续性(如距离,字母排列等等),大概率是树上dp,像这种具有超距作用的,那么大概率就是要配合DSU了。
核心代码如下,注意,先计算,后合并。
1 | FOR(i,1,N){ // 特判两个点的情况 |
那么这种复杂路径问题,点分治也能解决(应该来说更泛用)。
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78161052
1 | // Problem: 第四次忍界大战 |
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78175127
1 | // Problem: 第四次忍界大战 |
WA了的点分治代码,过了60%,我认为错误就在这个我的这个点分治统计答案他有点问题,统计到的不一定都经过u,这是违背点分治思想的。
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78164958
1 | // Problem: 第四次忍界大战 |
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78165041
然后改了统计代码以后WA的更多了
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78165092
AI指出了一个不对的地方,现在正确率提升到了84%
1 | // 保证计入答案的路径是经过u点的 |
差分做法,只要用差分把所有坏区间都标记出来,剩下的就是不可行的。
1 | FOR(i,0,M-2){ |
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=78135312
1 | // Problem: 战前准备 |