hdu 4711 动态规划
思路:其实这题是个挺水的动态规划,一开始就能AC,可是不知道错哪了,瞎改瞎交,WA了数十次。AC之后怎么改都是AC,也不知道改了什么地方,郁闷死了~~~难道开始时的测试数据有问题???
dp[i][j]表示第i天在第j个地方的最大概率,那么dp[i][j]=max(dp[i][j],dp[i-1][k]+p[k][j]+we[i][weh[j]]);
p[k][j]表示从k到j的概率,we[i][j]表示第i个地方出现j天气的概率。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
#include<algorithm>
#define inf 100000000
#define eps 1e-10
#define Maxn 1001
using namespace std;
int n,m,w,weh[],pre[Maxn][];
double p[][],we[][],dp[Maxn][];
void Out(int day,int c)
{
if(day==){
printf("%d",c);
return ;
}
Out(day-,pre[day][c]);
printf(" %d",c);
}
int main()
{
int t,i,j;
double x;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&w);
for(i=;i<=n;i++){
for(j=;j<=m;j++){
dp[i][j]=-inf;
}
}
for(i=;i<=n;i++)
scanf("%d",&weh[i]);
for(i=;i<m;i++){
for(j=;j<m;j++){
scanf("%lf",&x);
if(x==)
p[i][j]=-inf;
else
p[i][j]=log(x);
}
}
for(i=;i<m;i++){
for(j=;j<w;j++){
scanf("%lf",&x);
if(x==)
we[i][j]=-inf;
else
we[i][j]=log(x);
}
}
int k,pos;
double temp=-inf;
dp[][]=;
for(i=;i<=n;i++){
for(j=;j<m;j++){
for(k=;k<m;k++){
if(dp[i-][k]+p[k][j]+we[j][weh[i]]>dp[i][j])
pre[i][j]=k,dp[i][j]=dp[i-][k]+p[k][j]+we[j][weh[i]];
}
}
}
for(i=;i<m;i++)
if(dp[n][i]>temp){
temp=dp[n][i];
pos=i;
}
Out(n,pos);
printf("\n");
}
return ;
}
hdu 4711 动态规划的更多相关文章
- hdu 1087 动态规划之最长上升子序列
http://acm.hdu.edu.cn/showproblem.php?pid=1087 Online Judge Online Exercise Online Teaching Online C ...
- hdu 4711 Weather概率dp
http://acm.hdu.edu.cn/showproblem.php?pid=4711 真的是坑吐血了,wa了5次 最后实在无语 把long long double 改成long double ...
- HDU 1003 动态规划
http://acm.hdu.edu.cn/showproblem.php?pid=1003 这几天开始刷动归题目,先来一道签到题 然而做的并不轻松, 没有注意到边界问题, WA了几发才发现 #inc ...
- hdu 4055 && hdu 4489 动态规划
hdu 4055: 一开始我想的递推方向想得很复杂,看了别人的博客后才醍醐灌顶: 参照他的思路和代码: #include<cstdio> #include<cstring> # ...
- hdu 4745 动态规划
思路:特水的一个最长回文子序列动态规划.比赛时硬卡第一题,49WA后终于AC,可惜没时间做这题,结果成绩也就可想而知了.兔子跳一样权值的石头,并且一个正跳,一个反跳,这不就是个回文子序列吗?????! ...
- HDU 6076 (动态规划)
HDU 6076 Security Check Problem : 有两个长度为n的队列过安检,每个人有一个特征值.如果两个队列中的第一个人的特征值之差小于等于k,那么一次只能检查其中一个人,否则一次 ...
- HDU 1171 Big Event in HDU (动态规划、01背包)
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- hdu 4719 动态规划
思路:dp[i]表示到第i个点为结尾能获得的最大值,那么dp[i]=h[i]*h[i]+dp[i-x]-h[i-x];(i-l<=x<=i);那么我们可以转换下,以dp[i]-h[i]为新 ...
- hdu 3280 动态规划
思路:dp[i][j]表示区间i,j变为回文串最少的代价. #include<map> #include<set> #include<cmath> #include ...
随机推荐
- Java数据类型简单认识
Java是一种强类型编程语言,因而在声明变量的时候必须声明数据类型,java语言有基本数据类型和引用数据类型这两大数据类型,基本数据类型有8种分别是4种整型.2种浮点类型.1种用于Unicode表示字 ...
- perl学习笔记(3)—— 坑
(1)用perl来ls一个目录: 写perl的时候,经常要调用到系统命令,perl有很多等价的函数可以用,但是,不小心任性了,就想用system来实现了,好吧,来个ls把,列出指定的一个目录,直接上代 ...
- Freescale OSBDM JM60仿真器
OSBDM-JM60 - 9S08JM60 Based OSBDM — It includes interfaces and firmware applied to all the targets s ...
- PostgreSQL中的数组与Any
建立表: CREATE TABLE sal_emp ( name text, pay_by_quarter integer[], schedule text[][] ); 插入数据: INSERT I ...
- Shell脚本[运算表达式,条件控制语句]
#!/bin/bash #你值得收藏的四则表达式运算. val1=1 val2=1 val3=1 val4=1 val5=1 val6=1 val7=1 let val1++ ((val2++)) v ...
- HTML之一 符号实体
符号实体和”语言代码“以及”字符集“无关.
- java整理软件--- Java OCR 图像智能字符识别技术,可识别中文,但是验证码不可以识别...已测识别中文效果很好
国内最专业的OCR软件只有2家,清华TH-OCR和汉王OCR,看了很多的OCR技术 发现好多对英文与数字的支持都很好,可惜很多都不支持中文字符.Asprise-OCR,Tesseract 3.0以前的 ...
- ios开发——实用技术篇Swift篇&拍照
拍照 // MARK: - 拍照 func fromPhotograph() { if UIImagePickerController.isSourceTypeAvailable(.Camera) { ...
- iOS开发——UI篇Swift篇&玩转UItableView(二)高级功能
UItableView高级功能 class UITableViewControllerAF: UIViewController, UITableViewDataSource, UITableViewD ...
- linux 内核调试方法
http://my.oschina.net/fgq611/blog/113249 http://my.oschina.net/fgq611/blog/112929