首页 > 其他分享 >hdoj 天气情况 1437 (打表&数学)

hdoj 天气情况 1437 (打表&数学)

时间:2023-04-19 15:35:35浏览次数:51  
标签:1437 概率 int 天气情况 0.3 打表 include 雨天 hdoj

天气情况 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 685    Accepted Submission(s): 280


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试试

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
double ans;
double mp[5][5];
double dp[1010][5];
int main()
{
	int T,m;
	scanf("%d",&T);
	while(T--)
	{
		for(int i = 1; i <= 3; i++)
			for(int j = 1; j <= 3; j++)
				scanf("%lf",&mp[i][j]);
		scanf("%d",&m);
		int x,y,n;
		while(m--)
		{
			scanf("%d%d%d",&x,&y,&n);
			dp[0][1] = mp[x][1];
			dp[0][2] = mp[x][2];
			dp[0][3] = mp[x][3];
			for(int i = 1;i < n; i++)
			{
				dp[i][1] = dp[i - 1][1] * mp[1][1] + dp[i - 1][2] * mp[2][1] + dp[i - 1][3] * mp[3][1];
				dp[i][2] = dp[i - 1][1] * mp[1][2] + dp[i - 1][2] * mp[2][2] + dp[i - 1][3] * mp[3][2];
				dp[i][3] = dp[i - 1][1] * mp[1][3] + dp[i - 1][2] * mp[2][3] + dp[i - 1][3] * mp[3][3];
			}
			printf("%.3lf\n",dp[n-1][y]);
		}
	}
	return 0;
}


标签:1437,概率,int,天气情况,0.3,打表,include,雨天,hdoj
From: https://blog.51cto.com/u_16079508/6206440

相关文章

  • hdoj The sum problem 2058 (数学等差公式&技巧转换)
    ThesumproblemTimeLimit:5000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):21416    AcceptedSubmission(s):6287ProblemDescriptionGivenasequence1,2,3,......N,yourjob......
  • hdoj 简易版之最短距离 2083 (取中位数)水
    简易版之最短距离TimeLimit:1000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):15746    AcceptedSubmission(s):6979ProblemDescription寒假的时候,ACBOY要去拜访很多朋友,恰巧他所......
  • hdoj 素数回文 1431 (模拟)
    素数回文TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):16372    AcceptedSubmission(s):3621ProblemDescriptionxiaoou33对既是素数又是回文的数特别感兴趣。比如......
  • UVa 568 Just the Facts (数论&打表&不打表)
    568-JusttheFactsTimelimit:3.000secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=100&page=show_problem&problem=509Theexpression N!,readas``N factorial,"denotestheproductofthefirst N......
  • ZOJ - 2421 Recaman's Sequence(打表水题)
    题目大意:A0=0Am=A(m-1)-m,如果Am小于0或者Am前面已经出现过了,那么Am=A(m-1)+m解题思路:打表水题我用的是map,纪录数是否出现过了#include<cstdio>#include<cstring>#include<map>usingnamespacestd;constintN=500010;typedeflonglongLL;map<LL,int>Ma......
  • HDOJ2067_小兔的棋盘(卡塔兰数)
    小兔的棋盘TimeLimit:1000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):11339    AcceptedSubmission(s):5717ProblemDescription小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一......
  • HDOJ2091 空心三角形
    空心三角形TimeLimit:1000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):49528    AcceptedSubmission(s):13429ProblemDescription把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效......
  • HDOJ1017 A Mathematical Curiosity
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1017这个题目其实挺坑的。首先是N,应该挺多人纠结过这个N,N其实是blocks(块),一块有未知个cases。一个块的结束标志是0,0。然后是PE的问题,空格、空行,我也是被坑的好惨。这里应该是每个块之间有一个空行!也就是说,最后一个块是不......
  • HDOJ1799 循环多少次?
    循环多少次?TimeLimit:3000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):5459    AcceptedSubmission(s):2122ProblemDescription  我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分。例如,......
  • HDOJ1994 利息计算
    利息计算TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):6791    AcceptedSubmission(s):4634ProblemDescription为自行解决学费,chx勤工俭学收入10000元以1年定期存入银行,年利率为3.7%。利率按......