摘要: 嘟嘟嘟 太水了,大佬们就绕道吧…… 就是m, b数组分别排个序,然后更改对应位置的m[i]和b[i],就行了。 因为如果m[i]不改为b[i]而是b[i + 1]的话,那么必定要将m[j] (j > i)改为b[i],而这一定比m[i]改为b[i]更劣。 1 #include<cstdio> 2 # 阅读全文
posted @ 2018-09-01 09:54 mrclr 阅读(276) 评论(1) 推荐(0)
摘要: 嘟嘟嘟 题面说的有点问题,应该是向后看齐。 于是我们维护一个单调递减栈,如果当前a[i]比栈顶元素大,就执行pop操作,然后把pop出来的元素的答案都用 i 更新即可。 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #incl 阅读全文
posted @ 2018-09-01 09:28 mrclr 阅读(166) 评论(0) 推荐(0)
摘要: 嘟嘟嘟 这个是一个很明显的dp,遇到这种倍数的问题的,就令dp[i][j]表示选到了第 i 只牛(不是选了 i 只牛),sum(Ri) % f == j 的方案数,则, dp[i][j] = dp[i - 1][j] + dp[i - 1][(j + f - a[i] % f) % f] 等式右边第 阅读全文
posted @ 2018-09-01 08:47 mrclr 阅读(234) 评论(0) 推荐(0)