- 博客(4)
- 收藏
- 关注
原创 Codeforces 868F - Yet Another Minimization Problem (分治DP,莫队)
题意:给定一个序列要求分成k个连续子序列,使得子序列的cost之和最小,子序列的cost定义为子序列中数对的两个数相同的数对个数, 如cost(1,1) = 1, oost(1,1,1,3) = cost(1,1,1) = 3*2/2 = 1+2 = 3; 题解:对于朴素的dp[i][j]表示1~j分为i个块的最小cost,有O(k*n^2)的算法dp[i][j] = min{dp[i
2017-11-28 00:41:40 288
原创 HDU 6134 Battlestation Operational 2017多校8 莫比乌斯反演
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include using namespace std;#def
2017-11-20 11:01:53 201
原创 Codeforces Round #Pi (Div. 2) F. Mausoleum dp
题意:1~n每个数有两个,排成一个序列,要求序列先增后减(可以相等),其中上升和下降的序列长度可以为0,再给出k个条件,每个条件为某个位置>, =, 题解:dp[l][r]表示将[l,r]区间排列有多少种方法,记忆化搜索
2017-11-02 17:15:03 155
原创 Codeforces Round #318 D. Bear and Blocks DP
dp[i]表示第i列被消除需要的操作次数, dp[i] = min(i, n-i, h[i], dp[i-1]+1, dp[i+1]+1),,i、n-i表示每次消除边缘一列直到第i列的情况,h[i]表示每次消除顶端直到为0的情况,dp[i-1]+1和dp[i+1]+1表示左右两侧消除完再操作一次消除i列的情况,前三个读入的时候#include #include #include #inclu
2017-11-02 13:56:43 158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人