天气情况

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 638    Accepted Submission(s): 257

Problem Description
如果我们把天气分为雨天,阴天和晴天3种,在给定各种天气之间转换的概率,例如雨天转换成雨天,阴天和晴天的概率分别为0.4,0.3,0.3.那么在雨天后的第二天出现雨天,阴天和晴天的概率分别为0.4,0.3,0.3.现在给你今天的天气情况,问你n天后的某种天气出现的概率.
 
Input
我们这里假设1,2,3分别代表3种天气情况,Pij表示从i天气转换到j天气的概率.
首先是一个数字T表示数据的组数.
每组数据以9个数开始分别是P11,P12,P13,……,P32,P33,接着下一行是一个数字m,表示提问的次数。每次提问有3个数据,i,j,n,表示过了n天从i天气情况到j天气情况(1<=i,j<=3 1<=n<=1000)。
 
Output
根据每次提问输出相应的概率(保留3位小数)。
 
Sample Input
1
0.4 0.3 0.3 0.2 0.5 0.3 0.1 0.3 0.6
3
1 1 1
2 3 1
1 1 2
 
Sample Output
0.400
0.300
0.250
Hint:如果GC提交不成功,可以换VC试试
 
Author
xhd

题解:对于每一种情况都用前一天的所有情况的概率来分别乘以今天的单个情况的概率,如求第一天到第三天雨转到雨的概率,就需要用前一天(第二天)的所有情况,(雨,晴,阴)的概率来分别乘以今天的变雨的概率  同理,第二天的由第一天的推得

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】的更多相关文章

  1. HDU 4089 Activation(概率DP)(转)

    11年北京现场赛的题目.概率DP. 公式化简起来比较困难....而且就算结果做出来了,没有考虑特殊情况照样会WA到死的.... 去参加区域赛一定要考虑到各种情况.   像概率dp,公式推出来就很容易写 ...

  2. HDU 4405 Aeroplane chess (概率DP)

    题意:你从0开始,要跳到 n 这个位置,如果当前位置是一个飞行点,那么可以跳过去,要不然就只能掷骰子,问你要掷的次数数学期望,到达或者超过n. 析:概率DP,dp[i] 表示从 i  这个位置到达 n ...

  3. 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 ...

  4. HDU 4089 Activation:概率dp + 迭代【手动消元】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4089 题意: 有n个人在排队激活游戏,Tomato排在第m个. 每次队列中的第一个人去激活游戏,有可能 ...

  5. HDU 2955 Robberies 背包概率DP

    A - Robberies Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submi ...

  6. HDU 4035Maze(树状+概率dp,绝对经典)

    题意: 给你n个节点的树,从1节点开始走,到每个节点都有三种情况,被杀死回到1节点,找到隐藏的出口出去,沿着当前节点相邻的边走到下一个节点,给出每个节点三种情况发生的概率分别为ki,ei,1-ki-e ...

  7. HDU 3366 Passage (概率DP)

    Passage Problem Description Bill is a millionaire. But unfortunately he was trapped in a castle. The ...

  8. HDU 5236 Article(概率DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=5236 题意:现在有人要在文本编辑器中输入n个字符,然而这个编辑器有点问题. 在i+0.1s(i>=0)的时 ...

  9. HDU 4576 Robot (概率DP)

    暴力DP求解太卡时间了...........写挫一点就跪了 //hdu robot #include <cstdio> #include <iostream> #include ...

随机推荐

  1. Android四大基本组件

    Android四大基本组件分别是 Activity:整个应用程序的门面,负责与用户进行交互. Service:承担大部分工作. Content Provider内容提供者:负责对外提供数据,并允许需要 ...

  2. LoadImage 和 BitBlt

    #include <windows.h> #define WINDOWCLASS TEXT("Test") #define WNDTITLE TEXT("Te ...

  3. DBNull.Value 字段的用法

    DBNull 是一个单独的类,这意味着该类只能存在此实例.它指数据库中数据为空(<NULL>)时,在.net中的值 如果数据库字段的数据缺失,则您可以使用 DBNull.Value 属性将 ...

  4. C语言字节对齐

    转自:http://blog.csdn.net/21aspnet/article/details/6729724 文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透. 一 ...

  5. ActiveMQ之 TCP通讯机制

    ActiveMQ支持多种通讯协议TCP/UDP等,我们选取最常用的TCP来分析ActiveMQ的通讯机制.首先我们来明确一个概念:  客户(Client):消息的生产者.消费者对ActiveMQ来说都 ...

  6. 关于ckeditor添加的class都会被清除掉的问题

    在源码中输入ul,并且带有class,然后点击源码,到可视化界面 结果显示为aaa,再点看源码,查看HTML源代码 解决方法: 添加配置 config.allowedContent = true 这个 ...

  7. 【HDOJ】1667 The Rotation Game

    1. 题目描述有个#字型的条带,可以从横线或竖线进行循环移动,求通过各种移动最终使中心的8个字符全等的长度最短并相同长度字典序最小的操作序列.2. 基本思路24个数据,8种移动方式,数据量很小了,所以 ...

  8. 254 shades of grey

    254 shades of grey Description: Why would we want to stop to only 50 shades of grey? Let's see to ho ...

  9. cf A. Inna and Pink Pony(思维题)

    题目:http://codeforces.com/contest/374/problem/A 题意:求到达边界的最小步数.. 刚开始以为是 bfs,不过数据10^6太大了,肯定不是... 一个思维题, ...

  10. bzoj3211,bzoj3038

    线段树的裸题: 但是操作很奇怪,开方是不能lazy tag的 看来只能暴力修改了 但注意,开放开到1的时候就不用开,立一个flag就可以了 这可以大大的优化: 其实我是来复习线段树的 ..] of i ...