传送门

题意:自己去看


答案满足单调性,所以考虑二分答案。

二分答案很好想,但是check并不是很好想。

考虑DP:设$f_i$表示队列中第$i$个人的分数$\geq \, mid$的代价,最开始$N$个人的代价显然是:如果当前位置上没有人为$1$,如果当前的人分数$\geq mid$为$0$,否则为$INF$。$N+1$到$ans$的转移就是当前队伍的前$3$个人中至少有两个人$\geq \, mid$的代价的最小值,用队列模拟DP过程即可。

 //This code is written by Itst
 #define INF 0x3f3f3f3f
 #include<bits/stdc++.h>
 using namespace std;

 inline int read(){
     ;
     ;
     char c = getchar();
     while(c != EOF && !isdigit(c)){
         if(c == '-')
             f = ;
         c = getchar();
     }
     while(c != EOF && isdigit(c)){
         a = (a << ) + (a << ) + (c ^ ');
         c = getchar();
     }
     return f ? -a : a;
 }

 ;
 int pri[MAXN] , notin[MAXN] , N , M;
 queue < int > q;

 bool check(int mid){
      ; i <= N ; i++)
         if(!pri[i])
             q.push();
         else
             q.push(pri[i] >= mid ?  : INF);
      - (lower_bound(notin +  , notin + N - M +  , mid) - notin);
     ){
         int t = q.front();
         q.pop();
         if(q.empty())
             return t <= num;
         long long p = q.front();
         q.pop();
         long long r = q.front();
         q.pop();
         ))
             q.push(INF);
         else
             q.push(min(t + p , min(p + r , t + r)));
     }
 } 

 int main(){
 #ifdef BZ
     freopen("4985.in" , "r" , stdin);
     //freopen("4985.out" , "w" , stdout);
 #endif
     N = read();
     M = read();
      ; i <= M ; i++){
         int a = read() , b = read();
         pri[b] = a;
     }
      ; i <= N - M ; i++)
         notin[i] = read();
     sort(notin +  , notin + N - M + );
      , R = 1e9;
     while(L < R){
          >> ;
         check(mid) ? L = mid : R = mid - ;
     }
     cout << L;
     ;
 }
 

BZOJ4985 评分 二分答案、DP的更多相关文章

  1. bzoj4985 评分 (二分答案+dp)

    首先二分一个答案x,然后我们把>=x的数看成1,<x的数看成0,那如果最后剩下1,这个答案就是合法的. 那我们就来算让某一位得1至少需要填几个1(设这个值是f[i]) i=1..n时,显然 ...

  2. BZOJ_1044_[HAOI2008]木棍分割_二分答案+DP+单调队列

    BZOJ_1044_[HAOI2008]木棍分割_二分答案+DP Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个 ...

  3. 洛谷 P1800 software_NOI导刊2010提高(06)(二分答案+DP检验)

    P1800 software_NOI导刊2010提高(06) 标签 二分答案 难度 普及/提高- 题目描述 一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每 ...

  4. BZOJ 1044: [HAOI2008]木棍分割(二分答案 + dp)

    第一问可以二分答案,然后贪心来判断. 第二问dp, dp[i][j] = sigma(dp[k][j - 1]) (1 <= k <i, sum[i] - sum[k] <= ans ...

  5. cogs 2652. 秘术「天文密葬法」(0/1分数规划 长链剖分 二分答案 dp

    http://cogs.pro:8080/cogs/problem/problem.php?pid=vSXNiVegV 题意:给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σai ...

  6. 2019杭电多校第三场hdu6606 Distribution of books(二分答案+dp+权值线段树)

    Distribution of books 题目传送门 解题思路 求最大值的最小值,可以想到用二分答案. 对于二分出的每个mid,要找到是否存在前缀可以份为小于等于mid的k份.先求出这n个数的前缀和 ...

  7. 洛谷P3957 跳房子 题解 二分答案/DP/RMQ

    题目链接:https://www.luogu.org/problem/P3957 这道题目我用到了如下算法: 线段树求区间最大值: 二分答案: DP求每一次枚举答案g时是否能够找到 \(\ge k\) ...

  8. UVALive 5983 二分答案+dp

    想了很久都想不出怎么dp,然后发现有些例子,如果你开始不确定起始值的话,是不能dp的,每种状态都有可能,所以只能二分一个答案,确定开始的val值,来dp了. #include <cstdio&g ...

  9. BZOJ 1044 木棍分割(二分答案 + DP优化)

    题目链接  木棍分割 1044: [HAOI2008]木棍分割 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3830  Solved: 1453[S ...

随机推荐

  1. 安装VMwareTool

    对于刚刚学习Linux的小白来说,安装VMwareTool工具是一个比较迫切需要,又是些难度的活,下面就做一个简单的介绍. 第一步:点击虚拟机.或者选中需要安装的虚拟机,右键虚拟机,选中安装VMwar ...

  2. 一条sql语句引发的遐想:select t.*, t.rowid from STUDENT t

    在学习oracle 过程当中,当在看tables时,比如STUDENT,右击——查看——查询,会自动有这样的一条查询语句: select t.*, t.rowid from STUDENT_TJB t ...

  3. Android WIFI的基本操作

    WIFI管理类 class WifiConnector { private ExecutorService executors; Handler mHandler; WifiManager wifiM ...

  4. system.transfer.list深度解析

    system.transfer.list  system.new.dat 很明显,通过名字我们就知道这两个文件的作用,system.new.dat为数据部分,system.transfer.list为 ...

  5. 使用spark DStream的foreachRDD时要注意哪些坑?

    答案: 两个坑, 性能坑和线程坑 DStream是抽象类,它把连续的数据流拆成很多的小RDD数据块, 这叫做“微批次”, spark的流式处理, 都是“微批次处理”. DStream内部实现上有批次处 ...

  6. mysql数据库备份与导入

    1.数据库的备份 注意:导出的数据里是没有 use mydb; 这句话 **************************************************************** ...

  7. [20180118]tstats的问题.txt

    [20180118]tstats的问题.txt --//关于使用tstats收集处理统计信息,可以看链接http://blog.itpub.net/267265/viewspace-1987839/ ...

  8. cropper实现基本的裁剪图片并上传

    使用cropper之前需要先引用 cropper.css 和 cropper.js cropper 官网:https://fengyuanchen.github.io/cropper/ cropper ...

  9. Red5视频流服务器安装

    一.安装jre JAVA运行时下载地址: https://www.java.com/zh_CN/download/manual.jsp 安装后设置环境变量,变量值是jre的安装路径 二.安装 red5 ...

  10. Android Studio 学习Demo内容及一些bug处理技巧 -----个人技术文档,两次冲刺总结

    实现的基本内容 1.基本界面的注册(包括转换界面,隐式,显式注册,主界面的入口注册) 2.匿名内部类实现Button按钮的监听事件,并通过Toast进行显示 3.界面切换(显式.隐式) 4.调用浏览器 ...