Peter's Hobby
- 题意:
题意比較麻烦。。。n天,给出每天的叶子的一种状态(Dry , Dryish , Damp and Soggy),最有可能出现的天气序列(Sunny, Cloudy and Rainy)
最開始,第一天处于每种状态有一个提前定义的概率。每一天,依据当前的叶子状态,处于每种天气状况有一个给定的概率;题目中还给出随意两种天气状态的转移概率。即前一天处于某种天气时今天处于某种天气的概率。
- 分析:
就是简单的DP,每天处于每一个点有一个固定的状态,前一天的每一个状态的转移概率也是给定的,起始点也给定,所以就须要处理一下这些就可以。除此之外,题目中须要输出“路径”,多记录一下就可以
- const int maxn = 100010;
- double dp[maxn][3];
- int ipt[maxn], p[maxn][3];
- char s[10];
- double d1[][4] =
- {
- {0.6, 0.2, 0.15, 0.05},
- {0.25, 0.3, 0.2, 0.25},
- {0.05, 0.1, 0.35, 0.5}
- };
- double d2[][3] =
- {
- {0.5, 0.375, 0.125},
- {0.25, 0.125, 0.625},
- {0.25, 0.375, 0.375}
- };
- map<string, int> mp;
- char to[][10] = {"Sunny", "Cloudy", "Rainy"};
- int main()
- {
- mp["Dry"] = mp["Sunny"] = 0;
- mp["Dryish"] = mp["Cloudy"] = 1;
- mp["Damp"] = mp["Rainy"] = 2;
- mp["Soggy"] = 3;
- int T, n;
- RI(T);
- FE(kase, 1, T)
- {
- CLR(p, -1);
- RI(n);
- REP(i, n)
- {
- RS(s);
- ipt[i] = mp[s];
- }
- dp[0][0] = log(0.63) + log(d1[0][ipt[0]]);
- dp[0][1] = log(0.17) + log(d1[1][ipt[0]]);
- dp[0][2] = log(0.2) + log(d1[2][ipt[0]]);
- FF(i, 1, n)
- {
- REP(j, 3)
- {
- dp[i][j] = -1e10;
- REP(k, 3)
- {
- double pre = dp[i - 1][k] + log(d2[k][j]) + log(d1[j][ipt[i]]);
- if (pre > dp[i][j])
- {
- dp[i][j] = pre;
- p[i][j] = k;
- }
- }
- }
- }
- double Max = -1e10; int c = 0;
- REP(j, 3)
- if (dp[n - 1][j] > Max)
- {
- Max = dp[n - 1][j];
- c = j;
- }
- stack<int> sk; int r = n - 1;
- while (r >= 0)
- {
- sk.push(c);
- c = p[r--][c];
- }
- printf("Case #%d:\n", kase);
- while (!sk.empty())
- {
- printf("%s\n", to[sk.top()]);
- sk.pop();
- }
- }
- return 0;
- }
Peter's Hobby的更多相关文章
- hdu 4865 Peter's Hobby
Peter's Hobby Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- hdu 4865 Peter's Hobby (隐马尔可夫模型 dp)
Peter's Hobby Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- hdu 4865 Peter's Hobby(2014 多校联合第一场 E)
Peter's Hobby Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- hdu 4865 Peter's Hobby(概率dp)
http://acm.hdu.edu.cn/showproblem.php? pid=4865 大致题意:有三种天气和四种叶子状态.给出两个表,各自是每种天气下叶子呈现状态的概率和今天天气对明天天气的 ...
- JSP页面间传递参数的5种方法
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
- SqlAlchemy操作(一)
博客转载于 http://www.cnblogs.com/haiyan123/p/8270520.html 一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB ...
- Peter's Hobby
Problem Description Recently, Peter likes to measure the humidity of leaves. He recorded a leaf humi ...
- HDU 4865 Peter's Hobby(概率、dp、log)
给出2个影响矩阵,一个是当天天气对湿度的影响,一个是前一天天气对当天天气的影响. 即在晴天(阴天.雨天)发生Dry(Dryish.Damp.Soggy)的概率,以及前一天晴天(阴天.雨天)而今天发生晴 ...
- HDU 4865 Peter's Hobby --概率DP
题意:第i天的天气会一定概率地影响第i+1天的天气,也会一定概率地影响这一天的湿度.概率在表中给出.给出n天的湿度,推测概率最大的这n天的天气. 分析:这是引自机器学习中隐马尔科夫模型的入门模型,其实 ...
随机推荐
- VSTO 得到Office文档的选中内容(Word、Excel、PPT、Outlook)
原文:VSTO 得到Office文档的选中内容(Word.Excel.PPT.Outlook) 目的:得到在Word.Excel.PPT.Outlook中选中的一段内容. Word: private ...
- win7下硬盘安装win7+CentOS双系统方法
原文:win7下硬盘安装win7+CentOS双系统方法 LinuxCentOS安装大致介绍: win7下硬盘安装win7+CentOS双系统方法 原则: 所有的看完在装,请仔细看 一 条件: 1. ...
- javascritp封装的类似java HashMap的类
function Map(){ this.init(); }; //map的大小 Map.prototype.size = function(){ return this._size; }; //将数 ...
- mongodb中的排序和索引快速学习
在mongodb中,排序和索引其实都是十分容易的,先来小结下排序: 1 先插入些数据 db.SortTest.insert( { name : "Denis", age : ...
- HTC one/M7电信802d 毒蛇ViperOne2.1.0/高级毒蛇工具/完美root,精简/更多自定义,稳定,流畅ROM
ROM版本 HTC One/M7 802d ROM作者 雪狼团队·大盛 http://weibo.com/DaShengdd Android版本 Android 4.2.2 创建日期 2013.09. ...
- POJ 1088 滑雪 记忆化优化题解
本题有人写是DP,只是和DP还是有点区别的,应该主要是记忆化 Momoization 算法. 思路就是递归,然后在递归的过程把计算的结果记录起来,以便后面使用. 非常经典的搜索题目,这样的方法非常多题 ...
- RabbitMq消息序列化简述
涉及网络传输的应用.序列化不可避免. 发送端以某种规则将消息转成byte数组进行发送. 接收端则以约定的规则进行byte[]数组的解析. 序列化的选择能够是jdk序列化,hessian,jackson ...
- 碎碎念,浅饮-------Day30
这不是关于技术的文章,它偏离了我原来的计划轨迹.但,我相信这将是远远超出了技术的意义使我无论什么价格值. 高考已经开始,不知道在这片宁静的夜空下有多少人已经美美的睡了,香甜憨然.又有多少人这睡着的眼角 ...
- Linux中块设备驱动程序分析
基于<Linux设备驱动程序>书中的sbull程序以对Linux块设备驱动总结分析. 開始之前先来了解这个块设备中的核心数据结构: struct sbull_dev { i ...
- python学习笔记之九:模块和包
Python的标准安装包括一组模块,称为标准库.这里介绍模块的工作方式,学习如何使用它们. 一. 模块 1.1 用import从外部模块获取函数并为自己的程序所用: >>> from ...