第一次做期望dp

并不知道每个阶段的期望之和就是整个的期望之和

所以一直卡在这

期望=代价*概率

然后注意只有申请了才算期望,否则按原来的。

这道题和前几个课程,申请的限制,当前选或不选,有关

这样很容易写出dp的状态

其实你如果打80分的暴力,会发现把那个暴力记忆化一下

就变成dp,就可以拿满分了,

做题的时候一定要搞清楚每个变量的意义是啥

自己没搞清楚导致数组开小WA两个点

在我的代码中,我在很努力的简化代码了(define)

#include<bits/stdc++.h>
#define down(a, b) a = min(a, b)
#define d(u, v) a[c[i-1][u]][c[i][v]]
#define val(u, v) d(u, v) * (!u ? (1 - k[i-1]) : k[i-1]) * (!v ? (1 - k[i]) : k[i])
#define REP(i, a, b) for(register int i = (a); i < (b); i++)
#define _for(i, a, b) for(register int i = (a); i <= (b); i++)
using namespace std; const int MAXN = 2e3 + ;
const int MAXM = + ;
double k[MAXN], dp[MAXN][MAXN][];
int a[MAXM][MAXM], n, m, v, e;
int c[MAXN][]; int main()
{
scanf("%d%d%d%d", &n, &m, &v, &e);
_for(i, , n) scanf("%d", &c[i][]);
_for(i, , n) scanf("%d", &c[i][]);
_for(i, , n) scanf("%lf", &k[i]); memset(a, 0x3f, sizeof(a));
_for(i, , v) a[i][i] = ;
_for(i, , e)
{
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
a[u][v] = a[v][u] = min(a[u][v], w);
} _for(K, , v)
_for(i, , v)
_for(j, , v)
a[i][j] = min(a[i][j], a[i][K] + a[K][j]); memset(dp, 0x43, sizeof(dp));
dp[][][] = dp[][][] = ;
_for(i, , n)
_for(j, , m)
{
down(dp[i][j][], dp[i-][j][] + d(, ));
down(dp[i][j][], dp[i-][j][] + d(, ) * k[i-] + d(, ) * ( - k[i-]));
if(j) down(dp[i][j][], dp[i-][j-][] + d(, ) * k[i] + d(, ) * ( - k[i]));
if(j) down(dp[i][j][], dp[i-][j-][] + val(, ) + val(, ) + val(, ) + val(, ));
} double ans = 1e17;
_for(i, , m) down(ans, min(dp[n][i][], dp[n][i][]));
printf("%.2lf\n", ans); return ;
}

NOIP 2016 换教室(期望dp)的更多相关文章

  1. 换教室(期望+DP)

    换教室(期望+DP) \(dp(i,j,1/0)\)表示第\(i\)节课,申请了\(j\)次调换,这节课\(1/0\)调换. 换教室 转移的时候考虑: 上次没申请 这次也没申请 加上\(dis(fr[ ...

  2. 【bzoj4720】[Noip2016]换教室 期望dp+最短路

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

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

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

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

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

  5. 【bzoj4720】[NOIP2016]换教室 期望dp

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

  6. 【BZOJ4720】【NOIP2016】换教室 [期望DP]

    换教室 Time Limit: 20 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description Input 第一行四个整数n,m,v ...

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

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

  8. Luogu P1850 换教室(期望dp)

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

  9. P1850 换教室 期望dp

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

随机推荐

  1. 用MJExtension简化MVC

    首先引入MJExtension框架 模型 #import <Foundation/Foundation.h> @interface FundsModel : NSObject /** * ...

  2. cocos2d-x 3.2 之 2048 —— 第二篇

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  3. luogu1070 道路游戏 单调队列

    题目大意 小新正在玩一个简单的电脑游戏. 游戏中有一条环形马路,马路上有 nn 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接.小新以某个机器人工厂为起点,按顺时针顺序依次将这 nn 个机器人工 ...

  4. canvas制作饼图和环形图,使用Excanvas兼容IE67

    excanvas 地址:http://excanvas.sourceforge.net/ <!DOCTYPE html> <html> <head> <met ...

  5. SQL排他锁的解决方案

    SQL排他锁的解决方案 分类: 事务与锁 数据库管理维护2009-04-28 22:41 680人阅读 评论(0) 收藏 举报 sql数据库database服务器killdisk 问题描述: 我有一个 ...

  6. kafka备份机制——zk选举leader,leader在broker里负责备份

    Kafka架构 如上图所示,一个典型的kafka集群中包含若干producer(可以是web前端产生的page view,或者是服务器日志,系统CPU.memory等),若干broker(Kafka支 ...

  7. go的常量与变量

    一.常量 1.1 定义 常量使用关键字const 定义,用于存储不会变化的数据 定义方法 const identifier [type] = value package main // 常量定义 co ...

  8. android service--delphixe 10.3

    开发中的陷阱: 1. 别放什么 *.wav文件,这个 服务窗口不能随便放东西,不然铁定出现意想不到的结果,比如 无法运行,因为没 ui界面,随意都不知是啥问题. 2. 不能加载 datamodule ...

  9. 利用 Puppet 实现自动化管理配置 Linux 计算机集群

    随着虚拟化和云计算技术的兴起,计算机集群的自动化管理和配置成为了数据中心运维管理的热点.对于 IaaS.Paas.Saas 来说,随着业务需求的提升,后台计算机集群的数量也会线性增加.对于数据中心的运 ...

  10. POJ 3253 STL优先队列

    题目大意:FJ需要修补牧场的围栏,他需要 N 块长度为 Li 的木头(N planks of woods).开始时,FJ只有一块无限长的木板,因此他需要把无限长的木板锯成 N 块长度 为 Li 的木板 ...