思路:

这题和1227的求法一样,只不过1227是小数据,暴力下,就能进行预处理。

这题的预处理区间期望cost[i][j]需要利用单调性。

即假使以pos位置为安排的点,那么这个区间在其左边的概率为l,右边的概率为r,总期望为sum。如果将安排点从pos放到pos-1

该区间增加的期望为r*(p[pos].x-p[pos-1].x)

减少的期望为l*(p[pos].x-p[pos-1].x)

如果减少的超过增加的,那么pos-1就比pos好。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#define Maxn 1010
using namespace std;
],cost[Maxn][Maxn];
struct Point{
    int x;
    double p;
}p[Maxn];
map<int ,double> vi;
int main()
{
    int n,m,i,j,l,x,k;
    double cc;
    while(scanf("%d%d",&n,&m)!=EOF,n||m)
    {
        memset(dp,,sizeof(dp));
        memset(p,,sizeof(p));
        memset(cost,,sizeof(cost));
        vi.clear();
        ;
        ;i<=n;i++)
        {
            scanf("%d",&l);
            while(l--)
            {
                scanf("%d%lf",&x,&cc);
                vi[x]+=cc;
            }
        }
        ;
        map<int ,double> ::iterator it;
        for(it=vi.begin();it!=vi.end();it++)
            p[++cnt].x=it->first,p[cnt].p=it->second;
        double l,r,sum;
        int pos;
        double t;
        ;i--)
        {
            l=r=sum=;
            r=p[i].p;
            pos=i;
            ;j>=;j--)
            {
                l+=p[j].p;
                sum+=p[j].p*(p[pos].x-p[j].x);
                &&(t=(r-l)*(p[pos].x-p[pos-].x))<)
                {
                    sum+=t;
                    pos--;
                    l-=p[pos].p;
                    r+=p[pos].p;
                }
                cost[j][i]=sum;
            }
        }
        ;i<=cnt;i++)
            dp[i][]=cost[][i];
        ;i<=m;i++)
            dp[][i]=;
        ;k<=m;k++)
        {
            ;i<=cnt;i++)
            {
                ;continue;}
                dp[i][k]=1e20;
                ;j>=;j--)
                    dp[i][k]=min(dp[i][k],dp[j][k-]+cost[j+][i]);
            }
        }
        printf("%.2lf\n",dp[cnt][m]);
    }
    ;
}

hdu 4412 利用单调性的动态规划的更多相关文章

  1. HDU 1176 免费馅饼 (动态规划)

    HDU 1176 免费馅饼 (动态规划) Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼 ...

  2. HDU 1074 Doing Homework (动态规划,位运算)

    HDU 1074 Doing Homework (动态规划,位运算) Description Ignatius has just come back school from the 30th ACM/ ...

  3. hdu 4412 Sky Soldiers DP

    动态规划,主要是用单调性求区间的最小期望. 代码如下: #include<iostream> #include<stdio.h> #include<algorithm&g ...

  4. HDU 1003 Max Sum【动态规划求最大子序列和详解 】

    Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  5. HDU 5433 Xiao Ming climbing 动态规划

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5433 Xiao Ming climbing Time Limit: 2000/1000 MS (Ja ...

  6. hdu 1421:搬寝室(动态规划 DP + 排序)

    搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  7. hdu 4412 2012杭州赛区网络赛 期望

    虽然dp方程很好写,就是这个期望不知道怎么求,昨晚的BC也是 题目问题抽象之后为:在一个x坐标轴上有N个点,每个点上有一个概率值,可以修M个工作站, 求怎样安排这M个工作站的位置,使得这N个点都走到工 ...

  8. hdu 1159:Common Subsequence(动态规划)

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  9. [HDU 3033] I love sneakers! (动态规划分组背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033 题意:给你K种品牌,每种品牌有不同种鞋,现在每种品牌至少挑一款鞋,问获得的最大价值,如果不能每种 ...

随机推荐

  1. webapi-test

  2. Lucene.net站内搜索—2、Lucene.Net简介和分词

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  3. query判断值是否为空,针对前台提交数据的校验

    1.<input type="hidden" id="key" name="key" value="123"> ...

  4. LaTeX常用数学符号

    之前在写博客做笔记时经常会在Word或WPS里写好数学公式再截图上传,一直觉得这样很low.现在实在是不想再去截图上传了,于是决定开始学一下LaTeX.在博客园中使用数学公式的设置可以参考在博客园使用 ...

  5. 2、面向对象以及winform的简单运用(面向对象的四大基本特性)

    面向对象的四大基本特性 面向对象的核心概念就是封装.抽象.继承.多态这四大基本特性,在这里先解释一下它们的定义: 封装:是一种隐藏信息的特性.找到变化并且把它封装起来,你就可以在不影响其它部分的情况下 ...

  6. 使用jquery.validate.js插件进行表单里控件的验证

    jsp中具体实现的代码: <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  7. JVM系列3:类加载机制

    了解类加载机制也是深入了解Java的重要一环,它包括加载过程.类加载器.加载机制等内容. 以下是我总结的思维导图. 首先讲讲类加载的时机,以下是会触发类加载的时机: 1.new.get/put/inv ...

  8. Selenium Web 自动化 - 如何找到元素

    Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...

  9. No address associated with hostname

    java.net.UnknownHostException: Unable to resolve host "www.baidu.com": No address associat ...

  10. Python+Selenium笔记(一):环境配置+简单的例子

    #环境配置基于windows操作系统 #学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵) #HTML :  http ...