dp是很好想的了,关键是数据太大,普通dp肯定超时,所以一定有用某种优化,dp优化也就那么几种,这道题用的是斜率优化,先写出普通的状态转移方程:
dp[i] = min{ dp[j] + Σ ( p[k] * (x[i] - x[k] ) ), j+1 #include #include #inc....
分类:
其他好文 时间:
2014-05-09 16:05:35
阅读次数:
301
原题地址:http://www.rqnoj.cn/problem/82解题思路:
简单的动态规划 状态表示:DP[i][0]表示当前在第i层,且当前跳跃状态不可用,此时消耗的最短时间。
DP[i][1]表示当前在第i层,且当前跳跃状态可用,此时消耗的最短时间。 状态转移方程: ...
分类:
其他好文 时间:
2014-05-09 10:15:50
阅读次数:
286
原题地址:http://www.rqnoj.cn/problem/69解题思路:
用DP[i][j]表示到达(i,j)点的路径数,则DP[0][0]=1DP[i][j]=DP[i-1][j]+DP[i][j-1](不是马的控制点和马的当前位置)DP[i][j]=0(马的位置和马的控制点)代码:
1....
分类:
其他好文 时间:
2014-05-09 10:02:50
阅读次数:
421
有关这种字符串的题真是层出不穷啊,而且他们都有这样一个特点,就是递归的思路如此简单,但一定超时!
这个时候,dp就朝我们缓缓走来。递归超,dp搞!这道题的状态转移方程还是比较好写的,用ispart[i][j]代表s1贡献i长,s2贡献j长时,能不能形成s3的前i+j个字符。更新可以按照行或者列开始,s3的前i+j个字符,可以是((i-1)+1)+j构成,也可以是i+((j-1)+1)构成,这取决...
分类:
其他好文 时间:
2014-05-09 06:16:48
阅读次数:
232
Anniversary party
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4310 Accepted Submission(s): 1976
Problem Description
There is...
分类:
其他好文 时间:
2014-05-09 06:08:50
阅读次数:
305
题意:在一个矿场上有两种矿石,分别对应两个处理他的工厂分别在左边与上边。要求你铺设运输设备每个方格可以向左、上或不运。矿石在运输途中不能转弯,问你最多能运多少矿石到相应的工厂加工。思路:我们可以注意到由于不能转弯的原因,所以一旦左边的格子被铺上向左的他也也铺上向左的比较有利,否则左边的就白铺了(铺了...
分类:
其他好文 时间:
2014-05-09 03:29:01
阅读次数:
331
用w[i]表示在A中用了i的时间时在B中最少用多长时间,然后转移就可以了。
备注:这个边界不好定义,所以可以每次用一个cur来存储最优值,然后对w[i]赋值就可以了。/**************************************************************
...
分类:
其他好文 时间:
2014-05-08 18:06:39
阅读次数:
242
给n个点,m条边的无向图,一个起点和一个终点。每边都有消耗,经过就要付出代价;每个点有消耗和价值,只有消耗了才会获得价值,如果不消耗就不会获得价值,且下一次消耗的点的价值一定要严格大于之前消耗过的点的价值
求:起点到终点消耗不超过给定值T时的价值最大值
1 < N < 100,0 < M < 1000,0 < T <= 300...
分类:
其他好文 时间:
2014-05-08 17:22:31
阅读次数:
332
HDU 4571
大概题意:n个点(
解法:
容易看出应该用spfa和dp来解。关键时对visit和pass点的处理。
通过floyd预处理出visit每个点对之间的最小边消耗。然后,加一个超级源点和一个超级终点。超级源点负责pas点s能够到达的点,超级终点负责那些能越过e的点
由于visit的点的moneyp值必须严格升序所以也可以拓扑之后dp
不能用dij,因为本题时求最长...
分类:
其他好文 时间:
2014-05-08 17:12:27
阅读次数:
408
题意:(八皇后问题的变形)给定8个皇后的位置,然后问最少要走几步使得每个皇后之间可以不相互攻击(不在同一行同一列同一斜线)。其中走的过程每步可以横着竖着斜着走多个格子。
解法:先枚举所有合法的八皇后局面(总共92种)。然后将给的点对合法八皇后局面进行匹配。dp[i][j]表示合法八皇后前i个点用掉给定八皇后集合的子集j所花费的最小步数。这里的匹配相当于两个集合各八个点,进行一一配对。原来...
分类:
其他好文 时间:
2014-05-08 11:13:51
阅读次数:
317