动态规划,主要是用单调性求区间的最小期望。

代码如下:

 #include<iostream>
 #include<stdio.h>
 #include<algorithm>
 #include<iomanip>
 #include<cmath>
 #include<cstring>
 #include<vector>
 #include<map>
 #define MAX 1004
 #define inf 1<<22
 using namespace std;
 double dp[MAX][MAX],b,add,l,r;
 map<int,double>q;
 struct node
 {
     int x;
     double p;
 }an[MAX];
 void init(int m)
 {
     int i,j;
     ;i<=;i++)
         ;j<=;j++)
             dp[i][j]=inf;
     ;i<=m;i++)
         for(j=i;j<=m;j++)
             dp[i][j]=0.0;
 }
 int main(){
     int n,m,k,i,j,a;
     while(scanf("%d%d",&n,&m)&&(n+m)){
         q.clear();
         ;i<n;i++){
             scanf("%d",&k);
             ;j<k;j++){
                 scanf("%d%lf",&a,&b);
                 q[a]+=b;
             }
         }
         n=;
         for(map<int,double>::iterator it=q.begin();it!=q.end();it++){
             an[++n].x=it->first;
             an[n].p=it->second;
         }
         init(m);
         ;i<=n;i++){
             ;j<=m&&j<=i;j++){
                 dp[i][j]=inf;
                 double pre=0.0,suf=0.0;
                 int cur=i;add=0.0;
                 ;k>=j-;k--){
                     !=i){
                         pre+=an[k+].p;
                         add+=an[k+].p*(an[cur].x-an[k+].x);
                     }
                     while(an[cur].p+suf<pre){
                         suf+=an[cur].p;
                         cur--;
                         pre-=an[cur].p;
                         ].x-an[cur].x;
                         add-=an[cur].p*t;
                         add+=an[cur+].p*t;
                         add-=pre*t;
                         add+=(suf-an[cur+].p)*t;
                     }
                     dp[i][j]=min(dp[i][j],dp[k][j-]+add);
                 }
             }
         }
         printf("%.2lf\n",dp[n][m]);
     }
     ;
 }

hdu 4412 Sky Soldiers DP的更多相关文章

  1. hdu 4412 Sky Soldiers(区间DP)

    Sky Soldiers Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  2. 【HDOJ】4412 Sky Soldiers

    1. 题目描述有$k$个伞兵跳伞,有$m$个汇点.当伞兵着陆后,需要走向离他最近的汇点.如何选择这$m$个结点,可以使得士兵最终行走的距离的期望最小.求这个最小的期望. 2. 基本思路假设已经选好了这 ...

  3. HDU 1011 树形背包(DP) Starship Troopers

    题目链接:  HDU 1011 树形背包(DP) Starship Troopers 题意:  地图中有一些房间, 每个房间有一定的bugs和得到brains的可能性值, 一个人带领m支军队从入口(房 ...

  4. hdu 2296 aC自动机+dp(得到价值最大的字符串)

    Ring Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. HDU 4778 状压DP

    一看就是状压,由于是类似博弈的游戏.游戏里的两人都是绝对聪明,那么先手的选择是能够确定最终局面的. 实际上是枚举最终局面情况,0代表是被Bob拿走的,1为Alice拿走的,当时Alice拿走且满足变换 ...

  6. HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)

    HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解) 题意分析 要先排序,在做01背包,否则不满足无后效性,为什么呢? 等我理解了再补上. 代码总览 #in ...

  7. HDOJ(HDU).2546 饭卡(DP 01背包)

    HDOJ(HDU).2546 饭卡(DP 01背包) 题意分析 首先要对钱数小于5的时候特别处理,直接输出0.若钱数大于5,所有菜按价格排序,背包容量为钱数-5,对除去价格最贵的所有菜做01背包.因为 ...

  8. HDOJ(HDU).2602 Bone Collector (DP 01背包)

    HDOJ(HDU).2602 Bone Collector (DP 01背包) 题意分析 01背包的裸题 #include <iostream> #include <cstdio&g ...

  9. HDOJ(HDU).1058 Humble Numbers (DP)

    HDOJ(HDU).1058 Humble Numbers (DP) 点我挑战题目 题意分析 水 代码总览 /* Title:HDOJ.1058 Author:pengwill Date:2017-2 ...

随机推荐

  1. Angular进度-1207

    https://www.angular.cn/docs/ts/latest/tutorial/toh-pt1.html

  2. web跨域解决方案

    阅读目录 什么是跨域 常用的几种跨域处理方法: 跨域的原理解析及实现方法 总结 摘要:跨域问题,无论是面试还是平时的工作中,都会遇到,本文总结处理跨域问题的几种方法以及其原理,也让自己搞懂这方面的知识 ...

  3. hdu3966 树链剖分+成段更新

    给你n个点,m条边,p次操作.n个点相连后是一棵树.每次操作可以是x 到 y 增加 z,或者减z,或者问当前点的值是多少. 可以将树分成链,每个点在线段树上都有自己的点,然后线段树成段更新一下. #p ...

  4. 针对目前高校移动App的火热,哥决定点一把火

    最近正在做市场调研,还请众位大哥大姐们帮忙投个票,求扩散 http://user.qzone.qq.com/717010686/vote/00000000feb6bc2a3ebd1e53

  5. 解决 nginx 返回数据不完整的方法

    通过PHP请求接口时发现接口的内容输出没有完整的返回整个数据,早上只修改了nginx api_metrics插件里的计算response大小的代码,观察日志发现一条: 2012/08/28 02:13 ...

  6. wcf xml消息客户端cookie

    public override bool Login(string userName, string password) { using (HttpClient client = new HttpCl ...

  7. Jedis-returnResource使用注意事项

    遇到过这样一个严重问题: 发布的项目不知从什么时候开始,每月会出现一两次串号问题.串号现象指的是,用户用账号A登录系统,然后某个时间,登录账号自动变成了B. 串号出现的时间不定,测试平台难以重现,且后 ...

  8. PHP Ajax JavaScript Json 实现天气信息获取

    使用第三方服务 间接方式 思路 使用到的服务 实现代码 前端完整代码 总结 要在自己的网站上添加一个天气预报功能,是一个很普通的需求,实现起来也不是很难.今天来介绍几个简单的方法. 使用第三方服务 有 ...

  9. Java基础9-死锁;String;编码

    昨日内容回顾 死锁案例 class DeadLock{ public static void main(String[] args){ Pool pool = new Pool(); Producer ...

  10. 潭州课堂25班:Ph201805201 第八课:函数基础和函数参数 (课堂笔记)

    1, 函数定义 def fun(): print('测试函数') fun() #调用函数 return 运行函数返回值 def fun(): name = [1,3,4,5] return name[ ...