给出C个挂钩的位置以及G个重物的质量,求有几种方式使得天平平衡。
这道题乍看要用搜索,其实DP就可以。dp[i][j]表示挂完前i个重物能使力矩为j的情况种数,j=0时表示平衡。
所以状态转移方程就是dp[i][k+loc[j]*wei[i]]+=dp[i-1][k],表示前(i-1)个重物挂完后合力矩为k,这时在第j个挂钩处挂上重物i,则两者要相加,即dp[i][k+loc[j]*wei[i]]就要加上dp[i-1][k]。
有一点要注意,力矩可能为负数,所以dp数组的下标可能越界,所以要把力矩加上一个力...
分类:
其他好文 时间:
2015-07-27 00:22:20
阅读次数:
147
给一个字符串,计算最少加多少个字符能够使字符串变成回文串(即从前往后读与从后往前读一样)。
有2种思路,一种是直接区间DP,dp[j][i]表示[i,j]这个子串要变成回文串需要添加多少个字符,状态转移方程
如下:
if(s[i]==s[j])
dp[j][i]=dp[j+1][i-1];
else
dp[j][i]=1+min(min[j+1][i],min[j][i-1])
第二种思路也比较容易想,要将一个字符串变为回文串,那么我们...
分类:
编程语言 时间:
2015-07-27 00:19:30
阅读次数:
239
题目地址:HDU 4628
这题没想到怎么快速枚举子状态。。。看了题解才知道的。
用for(state=i;state>0;state=(state-1)&i)就可以了。
这题的具体做法是先预处理出所有的状态是不是回文串,然后就是普通的DP了。
代码如下:#include
#include
#include
#include <q...
分类:
其他好文 时间:
2015-07-25 16:58:25
阅读次数:
136
题目地址:HDU 4638
先写了一发莫队,莫队可以水过。很简单的莫队,不多说。
代码如下:#include
#include
#include
#include
#include
#include
#include
#include
#includ...
分类:
编程语言 时间:
2015-07-25 12:28:41
阅读次数:
111
Buy Tickets
Time Limit: 4000MS
Memory Limit: 65536K
Total Submissions: 15533
Accepted: 7759
Description
Railway tickets were difficult to buy around the Lunar New Yea...
分类:
其他好文 时间:
2015-07-25 12:19:20
阅读次数:
198
线段树区间更新.(PS:屠夫出强袭并不合理)...
分类:
其他好文 时间:
2015-07-25 10:46:01
阅读次数:
149
给一个平面散点集,判断能够构成多少个正方形。虽然有3.5秒,但四层暴力循环的话肯定会超时循环。所以有这样一种思路:先把点排序,双层循环枚举前(n-2)个点,为了防止重复判断,第二层循环里的j要从i+1开始,二分查找后(n-j)个点中是否存在能与s[i],s[j]构成正方形的点,所以第二层循环结束的条件是j<=n-2,剩下2个点用来查找,二分查找的范围是[j+1,n]。...
分类:
其他好文 时间:
2015-07-25 09:35:53
阅读次数:
133
基本上是floyd-warshall的模板题,直接调用函数,注意map的使用即可,还要特别判断n=0的情况。...
分类:
其他好文 时间:
2015-07-25 09:33:51
阅读次数:
153
Billboard
Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 14144 Accepted Submission(s): 6058
Problem Description
At the entrance to...
分类:
其他好文 时间:
2015-07-25 00:16:24
阅读次数:
157