Link:

BZOJ 4720 传送门

Solution:

2016年$NOIP$考的一道语文题

题面虽长,但思路并不难想

对于这类期望问题,大多数时候都用期望$dp$来解决

根据询问:在$n$个时间段中有$m$段可以申请调换时的最小期望值

我们可以设$dp[i][j][0/1]$表示前$i$段中有$j$段申请了且第$i$段是/否申请时的最小期望值

这样在用$floyd$求完多源最短路后大力推公式就好了

能这样$dp$的可行性在于期望的可加性每一段期望距离相加就是最终的期望值

Tip:

1、$dp$设置状态时一般都要留出一维记录当前最末位的状态

2、犯的丝帛错误:$double$不能用$0x3f$初始化!

Code:

#include <bits/stdc++.h>

using namespace std;
const int MAXN=,INF=<<;
int n,m,v,e,c[MAXN][],d[][];
double dp[MAXN][MAXN][],p[MAXN]; int main()
{
scanf("%d%d%d%d",&n,&m,&v,&e);
for(int i=;i<=n;i++) scanf("%d",&c[i][]);
for(int i=;i<=n;i++) scanf("%d",&c[i][]);
for(int i=;i<=n;i++) scanf("%lf",&p[i]);
memset(d,0x3f,sizeof(d));
for(int i=;i<=e;i++)
{
int x,y,w;scanf("%d%d%d",&x,&y,&w);
d[x][y]=d[y][x]=min(d[x][y],w);
} for(int i=;i<=v;i++) d[i][i]=;
for(int k=;k<=v;k++)
for(int i=;i<=v;i++)
for(int j=;j<=v;j++)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]); for(int i=;i<=n;i++) //double不能使用0x3f初始化
for(int j=;j<=m;j++)
dp[i][j][]=dp[i][j][]=INF;
dp[][][]=dp[][][]=;
for(int i=;i<=n;i++)
for(int j=;j<=min(i,m);j++)
{
dp[i][j][]=dp[i-][j][]+d[c[i-][]][c[i][]];
dp[i][j][]=min(dp[i][j][],dp[i-][j][]+p[i-]*d[c[i-][]][c[i][]]+(1.0-p[i-])*d[c[i-][]][c[i][]]);
if(j>=)
dp[i][j][]=min(dp[i][j][],dp[i-][j-][]+p[i]*d[c[i-][]][c[i][]]+(1.0-p[i])*d[c[i-][]][c[i][]]),
dp[i][j][]=min(dp[i][j][],dp[i-][j-][]+p[i]*p[i-]*d[c[i-][]][c[i][]]+p[i]*(-p[i-])*d[c[i-][]][c[i][]]+(1.0-p[i])*p[i-]*d[c[i-][]][c[i][]]+(1.0-p[i])*(1.0-p[i-])*d[c[i-][]][c[i][]]);
} double res=1e20;
for(int i=;i<=m;i++)
res=min(res,min(dp[n][i][],dp[n][i][]));
printf("%.2lf",res);
return ;
}

[BZOJ 4720] 换教室的更多相关文章

  1. Bzoj 4720 换教室 (期望DP)

    刚发现Bzoj有Noip的题目,只会换教室这道题..... Bzoj 题面:Bzoj 4720 Luogu题目:P1850 换教室 大概是期望DPNoip极其友好的一道题目,DP不怎么会的我想到了,大 ...

  2. NOIP2016换教室 BZOJ 4720

    BZOJ 4720 换教室 题目描述: 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节 课程安排在n个时间段上.在第i(1≤i≤n)个时间段上 ...

  3. [BZOJ 4720][NOIP 2016] 换教室

    记得某dalao立了"联赛要是考概率期望我直播吃键盘"的$flag$然后就有了这道题233333 4720: [Noip2016]换教室 Time Limit: 20 Sec  M ...

  4. BZOJ 4720 [Noip2016]换教室

    4720: [Noip2016]换教室 Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i( ...

  5. 【BZOJ】4720: [Noip2016]换教室

    4720: [Noip2016]换教室 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1690  Solved: 979[Submit][Status ...

  6. 换教室(bzoj 4720)

    Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节 课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的 ...

  7. bzoj4720: [Noip2016]换教室(期望dp)

    4720: [Noip2016]换教室 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1294  Solved: 698[Submit][Status ...

  8. 【bzoj4720】[NOIP2016]换教室

    题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的 ...

  9. [NOIP2016]换教室 D1 T3 Floyed+期望DP

    [NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...

随机推荐

  1. 这次OpenSSL HeartBleed漏洞是怎么一回事呢?

    “心脏出血”(Heartbleed)被称为互联网史上最严重的安全漏洞之一,波及了大量常用网站.服务,包括很多人每天都在用的 Gmail 等等,可能导致用户的密码.信用卡轻易泄露.但是我们可能对它还不是 ...

  2. 用HTML5 Canvas做一个画图板

    使用HTML5可以非常简单地在canvas上实现画图应用,用支持html5的浏览器便可在下面的区域进行绘画,要看到演示效果,请确保你的浏览器支持HTML5: 功能很简单,原理其实和拖放是类似的,主要是 ...

  3. Backup and Restore MySQL Database using mysqlhotcopy

    mysqlhotcopy is a perl script that comes with MySQL installation. This locks the table, flush the ta ...

  4. 忘记mysq rootl密码后解决办法

    如果mysql正在运行,/etc/init.d/mysqld stop 启动mysql(无需输入密码):bin/safe_mysqld –skip-grant-tables & 在bin目录下 ...

  5. ubuntu12.04 Qt WebKit编译

    转载自:http://my.oschina.net/u/257674/blog/167050 官方文档: http://trac.webkit.org/wiki/BuildingQtOnLinux#D ...

  6. bzoj 2005 NOI 2010 能量采集

    我们发现对于一个点(x,y),与(0,0)连线上的点数是gcd(x,y)-1 那么这个点的答案就是2*gcd(x,y)-1,那么最后的答案就是所有点 的gcd值*2-n*m,那么问题转化成了求每个点的 ...

  7. Python学习笔记 - day7 - 类

    类 面向对象最重要的概念就是类(Class)和实例(Instance),比如球类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同.在Python中,定义类 ...

  8. python模块之os.path

    对文件路径的操作 os.path.split(p)函数返回一个路径的目录名和文件名. os.path.splitext():分离文件名与扩展名 os.path.isfile()和os.path.isd ...

  9. python的一致性(1)sorted和len

    每个语言,都有自己的特性,而一致性,是python语言特性重要的一个环节. 比如排序,我们不是aaa.sort(),而是 sorted(aaa),比如len,不是aaa.length(),而是len( ...

  10. 架构妄想:AJAX + REST

    William Vambenepe的最新文章,AJAX + REST是最新的架构妄想,让我们回想起了一个具有15年历史的架构,它曾被寄期望对Web产生革命性的影响. 在该架构里,Web服务器将返回包含 ...