dp
文章平均质量分 92
奥利给干了兄弟们
奥利给
展开
-
牛客周周练17-B-七彩线段
题目: 输入样例: 4 2 1 3 1 4 5 1 5 8 2 7 9 3 输出样例: 5 挺恶心的一道题,我们用dp来解决,dp[i][j]代表什么,i代表前i个线段,j代表的是颜色(由1-2^7-1组成,其中二进制表示为1的位置就是j所含有的颜色), 举个例子,j = 5,用二进制表示就是101第一个位置和第三个位置有1,那么5就代表含有颜色1和3,为什么这么设置状态,就是你可以通过上一个状态去更新目前的状态,假如i的上一个可更新点是t(不接触),两种可能,一种i这个点可能是一种新的颜色,而又可能是原创 2020-07-29 18:39:13 · 169 阅读 · 0 评论 -
poj - 1745
总结: a%b + c%b = (a+c)%b 什么叫dp,由前一个可以推出下一个,dp[i][j] 就是代表前i个物品对K取余的时候等于j,如果dp[i-1][j] = 1存在,那么 dp[i][posmod(j+a[i],K)] = 1; dp[i][posmod(j-a[i],K)] = 1; 最后我们只要推出dp[n][0] #include<cstdio> #include<algorithm> #include<iostream> #include<cs原创 2020-07-18 20:15:44 · 134 阅读 · 0 评论