hdu 1437 天气情况【概率DP】
天气情况
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 638 Accepted Submission(s): 257
首先是一个数字T表示数据的组数.
每组数据以9个数开始分别是P11,P12,P13,……,P32,P33,接着下一行是一个数字m,表示提问的次数。每次提问有3个数据,i,j,n,表示过了n天从i天气情况到j天气情况(1<=i,j<=3 1<=n<=1000)。
题解:对于每一种情况都用前一天的所有情况的概率来分别乘以今天的单个情况的概率,如求第一天到第三天雨转到雨的概率,就需要用前一天(第二天)的所有情况,(雨,晴,阴)的概率来分别乘以今天的变雨的概率 同理,第二天的由第一天的推得
vis[j][k][i]+=map[l][k]*vis[j][l][i-1];
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAX 1100
#include<math.h>
#define DD double
DD map[4][4];
DD vis[4][4][MAX];
using namespace std;
int main()
{
int n,m,j,i,t,k,l;
int a,b,c;
scanf("%d",&t);
while(t--)
{
memset(vis,0,sizeof(vis));
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
scanf("%lf",&map[i][j]);
vis[i][j][1]=map[i][j];
}
for(i=2;i<1010;i++)//天数
{
for(j=1;j<=3;j++)//由i天气
{
for(k=1;k<=3;k++)//转到k天气
{
for(l=1;l<=3;l++)//此循环用来循环天气的变化
{
vis[j][k][i]+=map[l][k]*vis[j][l][i-1];
//第i天的j变k的概率 //map当前天每种天气转到k的概率
// vis[j][l][i-1]前一天每种天气的概率
}
}
}
}
scanf("%d",&n);
while(n--)
{
scanf("%d%d%d",&a,&b,&c);
printf("%.3lf\n",vis[a][b][c]);
}
}
return 0;
}
hdu 1437 天气情况【概率DP】的更多相关文章
- HDU 4089 Activation(概率DP)(转)
11年北京现场赛的题目.概率DP. 公式化简起来比较困难....而且就算结果做出来了,没有考虑特殊情况照样会WA到死的.... 去参加区域赛一定要考虑到各种情况. 像概率dp,公式推出来就很容易写 ...
- HDU 4405 Aeroplane chess (概率DP)
题意:你从0开始,要跳到 n 这个位置,如果当前位置是一个飞行点,那么可以跳过去,要不然就只能掷骰子,问你要掷的次数数学期望,到达或者超过n. 析:概率DP,dp[i] 表示从 i 这个位置到达 n ...
- HDU - 5001 Walk(概率dp+记忆化搜索)
Walk I used to think I could be anything, but now I know that I couldn't do anything. So I started t ...
- HDU 4089 Activation:概率dp + 迭代【手动消元】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4089 题意: 有n个人在排队激活游戏,Tomato排在第m个. 每次队列中的第一个人去激活游戏,有可能 ...
- HDU 2955 Robberies 背包概率DP
A - Robberies Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submi ...
- HDU 4035Maze(树状+概率dp,绝对经典)
题意: 给你n个节点的树,从1节点开始走,到每个节点都有三种情况,被杀死回到1节点,找到隐藏的出口出去,沿着当前节点相邻的边走到下一个节点,给出每个节点三种情况发生的概率分别为ki,ei,1-ki-e ...
- HDU 3366 Passage (概率DP)
Passage Problem Description Bill is a millionaire. But unfortunately he was trapped in a castle. The ...
- HDU 5236 Article(概率DP)
http://acm.hdu.edu.cn/showproblem.php?pid=5236 题意:现在有人要在文本编辑器中输入n个字符,然而这个编辑器有点问题. 在i+0.1s(i>=0)的时 ...
- HDU 4576 Robot (概率DP)
暴力DP求解太卡时间了...........写挫一点就跪了 //hdu robot #include <cstdio> #include <iostream> #include ...
随机推荐
- Android 图片缩放
以下演示将一个ImageView的高度设置为两倍: 布局文件main.xml <?xml version="1.0" encoding="utf-8"?& ...
- [itint5]交替字符串
http://www.itint5.com/oj/#17 DP.注意曾经把赋值写成了==,结果出错半天. bool isInterleaving(string &str1, string &a ...
- Java Web开发 之小张老师总结EL、JSP、Servlet变量
EL 11 JSP 9 Servlet JSP类别 pageContext pageContext * 作用域 pageScope pageContext.getAttribute() * reque ...
- eclipse myeclipse zend studio 中去掉双引号中的斜体
去windows/preferences 菜单里,选Web/JSP Files/Editor/Syntax Coloring 在右边选Attribute Values ,把Italic的钩去掉就好了.
- Red hat Linux(Centos 5/6)安装R语言
Red hat Linux(Centos 5/6)安装R语言1 wget http://cran.rstudio.com/src/base/R-3/R-3.0.2.tar.gz2 tar xzvf R ...
- Android开发之内容观察者
内容观察者: 当关注应用的数据库数据改变时,内容提供者会发出通知,在内容提供者的uri上注册一个内容观察者,就可以收到数据改变的通知 实现步骤: 1.假如是自定义的ContentProvider,需要 ...
- poj 2253 Frogger(最短路 floyd)
题目:http://poj.org/problem?id=2253 题意:给出两只青蛙的坐标A.B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的.显然从A到B存在至少一条的通路,每一条通路的元 ...
- 【JAVA】别特注意,POI中getLastRowNum() 和getLastCellNum()的区别
hssfSheet.getLastRowNum();.行标,比行数小1 hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1 行标.列标都以0开始 ...
- Thread: BooleanRT : Realtime 3D boolean operations for (Runtime,Editor)
A Product by Mixed Dimensions What is BooleanRT? BooleanRT is a real-time 3D boolean operations exte ...
- Tomcat配置JNDI数据源
经过3个多小时的努力,配置JNDI数据源(主要是通过DBCP连接池)终于搞定-还是Tomcat官方的说明好,不过全是英文的,大概还看得懂.百度上那么花花绿绿的太多了,一个也没成功!...本例使用的数据 ...