理解错题意了....导致考场上直接爆零TAT

正解就是期望dp啊,dp[i][j][0/1]表示前i节课用了j次机会,这一次用没用的期望代价

看代码吧

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
const int Mx=310;
int n,m,d,v,C[2010],D[2010];
double dp[2010][2010][2],map[Mx][Mx];
double p[2010],ans=100000007;
int main()
{
  scanf("%d%d%d%d",&n,&m,&d,&v);
  for(int i=0;i<Mx;i++) for(int j=0;j<Mx;j++) map[i][j]=1073741823;
  for(int i=0;i<Mx;i++) map[i][i]=0;
  for(int i=1;i<=n;i++) scanf("%d",&C[i]);
  for(int i=1;i<=n;i++) scanf("%d",&D[i]);
  for(int i=1;i<=n;i++) cin>>p[i];
  for(int i=1;i<=v;i++)
  {
    int x,y;double z;scanf("%d%d%lf",&x,&y,&z);
    map[x][y]=min(map[x][y],z);
    map[y][x]=min(map[y][x],z);
  }
  for(int k=1;k<=d;k++)
    for(int i=1;i<=d;i++)
      for(int j=1;j<=d;j++)
        map[i][j]=min(map[i][j],map[i][k]+map[k][j]);
  for(int i=0;i<2010;i++) for(int j=0;j<2010;j++) dp[i][j][0]=1073741823,dp[i][j][1]=1073741823;
  dp[0][0][0]=0;dp[1][0][0]=0;dp[1][1][1]=0;
  for(int i=2;i<=n;i++) dp[i][0][0]=dp[i-1][0][0]+map[C[i-1]][C[i]];
  for(int i=2;i<=n;i++) for(int j=1;j<=i&&j<=m;j++)

  {
    /*这一位不翻*/dp[i][j][0]=min(dp[i-1][j][0]+map[C[i-1]][C[i]]/*上一位不翻*/,
                     ((dp[i-1][j][1]+map[D[i-1]][C[i]])*p[i-1])+((dp[i-1][j][1]+map[C[i-1]][C[i]])*(1-p[i-1]))/*上一位翻转*/);
    /*这一位翻转*/dp[i][j][1]=min(/*上一位翻转*/

                  ((((dp[i-1][j-1][1]+map[D[i-1]][D[i]])*p[i-1])+((dp[i-1][j-1][1]+map[C[i-1]][D[i]])*(1-p[i-1])))*p[i])//这一位翻转成功
                  +((((dp[i-1][j-1][1]+map[D[i-1]][C[i]])*p[i-1])+((dp[i-1][j-1][1]+map[C[i-1]][C[i]])*(1-p[i-1])))*(1-p[i])),//这一位翻转失败,
              /*上一位不翻*/((dp[i-1][j-1][0]+map[C[i-1]][D[i]])*p[i])+((dp[i-1][j-1][0]+map[C[i-1]][C[i]])*(1-p[i])));
  }
  for(int i=0;i<=m;i++) ans=min(ans,min(dp[n][i][0],dp[n][i][1]));
  printf("%.2lf",ans);
  return 0;
}

noip2016 Day1T3的更多相关文章

  1. NOIp2016 Day1&Day2 解题报告

    Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...

  2. NOIp2016 游记

    DAY -2 不要问我为什么现在就开了一篇博客. 本来想起个NOIp2016爆零记或者NOIp2016退役记之类的,但是感觉现在不能乱立flag了.所以就叫游记算了. 前几场模拟赛崩了一场又一场,RP ...

  3. [Noip2016]蚯蚓 D2 T2 队列

    [Noip2016]蚯蚓 D2 T2 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯 ...

  4. [NOIP2016]愤怒的小鸟 D2 T3 状压DP

    [NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...

  5. NOIP2016普及总结

    ---恢复内容开始--- 当时我说如果不出意外有385,结果就这么跪在了第二题,惨啊 本来以为发挥算正常,结果这发挥太不正常了 [T1] 水题啊[趴 注意下细节就好考你会不会写代码. [T2] 这题大 ...

  6. Noip2016

    <这篇是以前的,不开新的了,借版面来换了个标题> 高二了 开学一周,每天被文化课作业碾压... 但是仍然阻挡不了想刷题的心情... 对付noip2016的几块:(有点少,以后补) 高精度( ...

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

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

  8. 游记——noip2016

    2016.11.18 (day 0) 呆在家. 悠闲地呆在家.. 明后天可能出现的错误: 1)没打freopen.打了ctime: 2)对拍程序忘记怎么写了...忘记随机化种子怎么写了: 3)不知道厕 ...

  9. NOIP2016报零记

    其实,NOIP2016已经于10天之前就结束了,但是由于种种原因,没有写总结. 现在就来填上这个坑吧. DAY1: T1:一道简(kun)单(nan)的模拟,虽然ac,但是考试的时候总觉得怪怪的.并且 ...

随机推荐

  1. IOS-WebViewJavascriptBridge使用说明

    下面来说一下WebViewJavascriptBridge在ios端怎么样使用. 首先确保一份已经配好功能的html文件. 1.初始化一个webview(viewdidload) UIWebView* ...

  2. 《javascript权威指南》读书笔记——第一篇

    <javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...

  3. Git 工作流程

    Git 作为一个源码管理系统,不可避免涉及到多人协作. 协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去.”工作流程”在英语里,叫做”workflow”或者”flow”,原意 ...

  4. ORACLE外部表总结

    外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件.因此,建立外部表时不会产生段.区.数据块等存储结构,只有与表相关的定义放在数据字典中.外部表 ...

  5. SQL Server删除distribution数据库二

    以前总结过一遍博文SQL Server删除distribution数据库,里面介绍了如何删除distribution数据库.今天介绍一个删除distribution的特殊案例, 在这之前,我不知道这个 ...

  6. 初识sqoop

    Sqoop 产生背景 Sqoop 的产生主要源于以下几种需求: 1.多数使用 Hadoop 技术处理大数据业务的企业,有大量的数据存储在传统的关系型数据库(RDBMS)中. 2.由于缺乏工具的支持,对 ...

  7. IIS不能下载ini文件

    1.打开IIS. 2.选择站点或者存放*.ini文件的目录,右键菜单中选择属性. 3.选择“HTTP头”选项卡. 4.点击“MINE类型”. 5.点击“新建”. 6.这是跳出一个对话框,在“扩展名”一 ...

  8. Oracle索引梳理系列(八)- 索引扫描类型及分析(高效索引必备知识)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  9. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理2

    首先我们来写个类进行获取当前线程内唯一的DbContext using System; using System.Collections.Generic; using System.Data.Enti ...

  10. jsp2.0+中的标签文件,JSP Fragment技术

    刚进新公司不久,今天在看到项目中用到了.tag文件.刚开始我还以为这个是第三方类似freemarker的模板技术.问了下项目组的其他人员,原来这是jsp2.0以来就有的JSP Fragment技术.以 ...