摘要:
题意:添加尽量少的字符使得s串成为回文串,并输出这样得解。 题解:dp[ i ][ j ]表示i~j串需要添加的最少字符。 当s[ i ]==s[ j ]时,dp[ i ][ j ]=dp[ i +1 ][ j - 1 ]; 当s[ i ]! =s[ j ]时,dp[ i ][ j ]=min( d 阅读全文
摘要:
不明白为啥倒着刷表,顺着应该也行啊。 打印要用递归的思想,正是我的痛点啊。 注意输入串可能是空串,不能用scanf。。 阅读全文
摘要:
题意:你的任务是设计一个照明系统。一共有n(n<=1000)种灯泡选择,不同种类的灯泡必须有不同的电源,但同一种灯泡可以用同一种电源。 每种灯泡用四个数值表示:电压值V,电源费用K,每个灯泡的费用C,和所需灯泡的数量L。 题解:首先可以想到一个结论;每种电压的灯泡要么全换,要么全不换。因为如果只换部 阅读全文
摘要:
题解:dp[ i ][ j ]表示从格子(i,j)出发到最后一列的最小开销。 以前看这道题,感觉不太好写。其思路有点像数字三角行,从后往前推,不过这道题还要处理很多细节,一是初始化,二是方向的问题 ,因为图是环形的, 三是记录路径(长知识了)。 代码摘自紫书 阅读全文
摘要:
题解:dp[ i ][ j ]=min { dp[ i ][ k ]+dp[ k ][ j ] }+a[ j ]-a [i ]。 和石子归并是一样的问题,枚举区间的长度,然后更新这个区间的值。 阅读全文
摘要:
题意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串。 题解:d(i)为字符0~i划分成的最小回文串的个数,则d[ i ]=min{ d[ j ]+1 |s[ j+1~ i ]是回文串 }。 注意要预处理,其次是怎么初始化。。。很重要 阅读全文
摘要:
题意:某城市的地铁是线性的,有n(2<=n<=50)个车站,从左到右的编号为1~n。有M1辆车从第1站出发往右开,还有M2辆车从第n站开始往左开。 在时刻0,Mario从第1站出发,目的是在时刻T(0<=T<=200)会见车站n的一个间谍。在车站等车时容易被抓,所以她决定躲在开动的火车上,让在 车站 阅读全文