题意:输入一段短文(所有字符总数不超过10000),要求格式化成两端对齐(每行长度为n,1
题目链接:http://poj.org/problem?id=1093
——>>状态:dp[i]表示从第i个单词开始到最后一个单词的最小总坏值(第i个单词是这一行的第1个单词)
状态转移方程:dp[i] = min(dp[i], dp[j + 1] + Badness(i, j));(Badness...
分类:
其他好文 时间:
2014-10-22 22:07:30
阅读次数:
349
这道题是NOIP第一道DP优化题,看似容易,实际上想要满分也颇有难度。
传送门:1002 过河
算法
此题显然要用到DP,DP方程也显而易见:
if (stone[i]) f[i]=min{f[i-j]}+1; (S
else f[i]=min{f[i-j]};
这样的时间复杂度为 O(LT) ,空间复杂度为 O(L) 。
而此题的L高达 10亿 ,所以这种朴素的方法只能得 30...
分类:
编程语言 时间:
2014-10-22 14:44:16
阅读次数:
309
UVA 10385 - Duathlon题目链接题意:一些运动员,參加铁人两项,跑步r千米,骑车k千米,如今知道每一个人的跑步和骑车速度,问是否能设置一个r和k,保持r + k = t,使得第n个人会取胜,假设能够求出时间和r,k思路:三分法,把每一个人列出一个带r的方程求时间,其它人减去最后一个人...
分类:
其他好文 时间:
2014-10-22 14:28:06
阅读次数:
152
定解方程组 计算过程: 注意:
矩阵系数中,逗号和分号的使用
矩阵除法用反斜杠
矩阵中的值提取用小括号,行列数从1开始算 不定方程组 未知数大于方程数,其解有无数个,matlab可以求出其中一个特定解
计算过程
分类:
其他好文 时间:
2014-10-22 14:11:49
阅读次数:
135
题目大意:Speakless有N万元,他要申请学校上学。总共有M个学校可申请,
每个学校都有申请费和申请概率,求他最少能获得一个学校名额的概率最大
为多大
思路:动态规划,用01背包做。需要注意概率的算法。至少申请上一个学校的
概率 = 1-(1-p1)(1-p2)(1-p3)… 其中,p1,p2,p3…为各个学校申请概率。
将N元当做背包总容量,学校当做物品。申请费为体积,不被申请上的概率当
做价值,转移方程就为 dp[j] = min(dp[j],dp[j-w[i]]*p[i]);
最终算得的dp[N...
分类:
其他好文 时间:
2014-10-22 11:03:01
阅读次数:
196
打一次鼹鼠必定是从以前的某一次打鼹鼠转移过来的
以打每个鼹鼠时的最优解为DP方程
#include
#include
#include
#define N 10005
using namespace std;
int n,m,ans;
int f[N],t[N],x[N],y[N],mx[N];
int main()
{
scanf("%d%d",&n,&m);
fo...
分类:
其他好文 时间:
2014-10-22 10:06:19
阅读次数:
176
原文链接泊松方程是数学中一个常见于静电学、机械工程和理论物理的偏微分方程。是从法国数学家、几何学家及物理学家泊松而得名的。 泊松方程为在这里 Δ 代表的是拉普拉斯算子,而 f 和 φ 可以是在流形上的实数或复数值的方程。 当流形属于欧几里得空间,而拉普拉斯算子通常表示为,因此泊松方程通常写成在三维直...
分类:
其他好文 时间:
2014-10-22 06:22:36
阅读次数:
638
题意:一个长为N的字符串( 3
题目链接:http://poj.org/problem?id=1159
——>>状态:dp[i][j]表示第i个字符到第j个字符组成的字符串变成回文串的最少插入次数。
状态转移方程:
若sz[i] == sz[j],则:dp[i][j] = dp[i + 1][j - 1];
否则:dp[i][j] = min(dp[i + 1][j], dp[i][j...
分类:
编程语言 时间:
2014-10-21 21:37:52
阅读次数:
247
我去什么破题跳调了我一个半小时。不是裸的斜率优化吗。。。我去我去我去我去我去我去!首先我们倒着读进来,然后就省略了倒过来做的问题。然后写出DP方程:令f[i]表示选i作为塔时1到i的总代价,则f[i] = min(f[j] + w(i, j) + a[i]) 其中有j 11 #include 12 ...
分类:
其他好文 时间:
2014-10-21 21:28:11
阅读次数:
273
题意:一条直路上有V个村庄(1
题目链接:http://poj.org/problem?id=1160
——>>
状态:dp[i][j]表示前i个村庄建j个邮局的最短距离和。
状态转移方程:dp[i][j] = min(dp[i][j], dp[k][j - 1] + nDis[k + 1][i]);(前k个村庄由前j - 1个邮局管,后面的村庄归最后一个邮局管)
状态:nDis[i]...
分类:
其他好文 时间:
2014-10-21 17:48:18
阅读次数:
341