主题链接

  • 题意:

    题意比較麻烦。。

    。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&#39;s Hobby的更多相关文章

  1. hdu 4865 Peter&#39;s Hobby

    Peter's Hobby Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  2. hdu 4865 Peter&#39;s Hobby (隐马尔可夫模型 dp)

    Peter's Hobby Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  3. hdu 4865 Peter&#39;s Hobby(2014 多校联合第一场 E)

    Peter's Hobby Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  4. hdu 4865 Peter&#39;s Hobby(概率dp)

    http://acm.hdu.edu.cn/showproblem.php? pid=4865 大致题意:有三种天气和四种叶子状态.给出两个表,各自是每种天气下叶子呈现状态的概率和今天天气对明天天气的 ...

  5. JSP页面间传递参数的5种方法

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  6. SqlAlchemy操作(一)

    博客转载于 http://www.cnblogs.com/haiyan123/p/8270520.html 一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB ...

  7. Peter's Hobby

    Problem Description Recently, Peter likes to measure the humidity of leaves. He recorded a leaf humi ...

  8. HDU 4865 Peter's Hobby(概率、dp、log)

    给出2个影响矩阵,一个是当天天气对湿度的影响,一个是前一天天气对当天天气的影响. 即在晴天(阴天.雨天)发生Dry(Dryish.Damp.Soggy)的概率,以及前一天晴天(阴天.雨天)而今天发生晴 ...

  9. HDU 4865 Peter's Hobby --概率DP

    题意:第i天的天气会一定概率地影响第i+1天的天气,也会一定概率地影响这一天的湿度.概率在表中给出.给出n天的湿度,推测概率最大的这n天的天气. 分析:这是引自机器学习中隐马尔科夫模型的入门模型,其实 ...

随机推荐

  1. Semaphore实现Andoird版源代码剖析

    Semaphore是一个计数的信号量.从概念上来说,信号量维持一组许可(permits).acquire方法在必须的时候都会堵塞直到有一个许可可用,然后就会拿走这个许可.release方法加入一个许可 ...

  2. SQL_由创建表引出

    ***********************************************声明*************************************************** ...

  3. Centos 5.5 更新网卡驱动 bnx2 version: 2.0.2

    操作系统:CentOS release 5.5 (Final) 故障现象:网卡无故自动down掉,使用service  network restart 重启后没多久又会自动down , 连接数大概在2 ...

  4. spring web.xml配置服务启动后执行文件

    <bean id="readXmlService" class="com.xxx.xxx.readXmlServiceImpl" init-method= ...

  5. linux下用shell删除三天前或者三天内的文件

    说明:+n 大于 n, -n 小于 n, n 相等于 n. find / -amin -30 -ls # 查找在系统中最后30分钟访问的文件find / -atime -2 -ls # 查找在系统中最 ...

  6. mysql sqlserver Oracle字符串连接

    mysql 例mysql> select CONCAT('My', 'S', 'QL'); sqlserver select name+'aa' from student; oracle sel ...

  7. Quartz时间配置

    格式: [秒] [分] [小时] [日] [月] [周] [年]  序号 说明  是否必填  允许填写的值 允许的通配符  1  秒  是  0-59    , - * /  2  分  是  0-5 ...

  8. 《Javascript高级程序设计》读书笔记之闭包

    闭包 function createComparisonFunction(propertyName) { return function (object1, object2) { var value1 ...

  9. vps自己搭建VPN(转)

    1.购买一个VPS: https://www.pzea.com/North-America-openvz-vps.html 2.下载putty软件,进行vpn安装: http://www.chiark ...

  10. 怎么解决 ubuntu 装kde桌面遇到的汉化问题

    正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 现在没有可用的软件包 language-pack-kde-zh,但是它被其它的软件包引用了.这可能意味着这个缺失 ...