题目大意:给你一个只包含大小写字母的字符串,现在Pirates要从键盘上输出它,按CapsLk可开
启关闭大小写指示灯。按Shift可转换将输入字母的大小写而不改变CapsLk的开关状态。Pirates有
一个坏习惯,如果输入的时候CapsLk是开着的,那么输入结束后必须把它关闭。问,输入一个字符
串,最小的按键数目是多少
思路:用两个数组dpa和dpb分别来表示CapsLk开启状态和关闭状态的最小操作数。
如果将要输入的字母是小写字母:
dpa[i+1] = min(dpa[i]+1,dpb[i]+2);...
分类:
其他好文 时间:
2014-10-29 14:50:10
阅读次数:
206
a(i):以节点i作为终点的单边最大路径和
b(i):以节点i作为终点的双边边最大路径和
a(i) = max{ i->val,
i->val + max{a(i->left), a(i->right) }};
b(i) = max{ i->val, i->val + max{a(i->left), a(i->right) } ,
i->val + a(i->left) + a(...
分类:
其他好文 时间:
2014-10-09 22:49:47
阅读次数:
141
A so juicy and interesting problem! Recommend to everyone!A final solution may not jump into your mind immediately, of course, DP is not a trivial top...
分类:
其他好文 时间:
2014-08-10 15:37:00
阅读次数:
209
给你n个数,问你将数分成两个数组,S,T ,T 中所有元素的需要都比S任意一个大,问你S中所有元素进行 XOR 操作和 T 中所有元素进行 &操作值相等的情况有多少种。
DP背包思路
dpa[i][j][0] 表示从左开始到i,不取i,状态为j的方案数
dpa[i][j][1] 表示从作开始到i,取i,状态为j的方案数
dpb[i][j] 表示从右开始到i,状态为j的方案数
...
分类:
其他好文 时间:
2014-08-02 12:54:13
阅读次数:
231
dp套一个burnside的壳子核心还是dpdp[i]表示有i个循环节时的染色方案数注意在dp的时候,不需要考虑重构的问题因为burnside会解决重构的问题dpA[i][j]表示以A开头,长度为i,结尾为j个A的合法方案数dpB[i][j]表示以B开头,长度为i,结尾为j个A的合法方案数接下来我们...
分类:
其他好文 时间:
2014-05-26 17:02:49
阅读次数:
314