题目链接:http://codeforces.com/gym/101755/problem/K

题目理解: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个人评论或他确实对这个产品感兴趣,但是这n个人都不对这个产品感兴趣,问这个公司至少要说服几个人对该

      产品该兴趣才能至少收到m个人的评论。假如你要强迫人肯定要强迫最前边的,因为说服一个人对评论数贡献为1​,而提早做贡献可以带来更多的贡献(因为是一个一个地找人,前面的贡献对后面有用)

      对于这种情况,有种强大的方法:二分(二分要强迫的人数)
      二分的好处就是简化复杂度,用假设的已知代替未知,对于求一个最多或最少的问题,通常可以用二分来简单地解决

      像这题,用二分得到确切的强迫次数,那么就可以直接从前往后遍历了

      

 /* */
# include <iostream>
# include <stdio.h>
# include <string.h>
# include <algorithm>
# include <cctype>
# include <ctime>
# include <functional>
# include <cmath>
# include <bitset>
# include <deque>
# include <queue>
# include <stack>
# include <vector>
# include <set>
# include <map>
# include <climits>
using namespace std; typedef long long LL;
const int maxn=2e5+;
int a[maxn];
int n, m; bool check(int k)
{
int ans=;///记录评论数
int i;
for(i=; i<n; i++ )
{
if( a[i]<=ans )
ans++;
else if( k )
{
ans++;///有强迫名额的话优先强迫
k--;
}
if( ans==m )
return true;
}
return false;
} int main()
{
cin>>n>>m;
int i;
for(i=; i<n; i++ )
{
scanf("%d", &a[i]);
} int l=;
int r=m;
int ans; while( l<=r )
{
int mid=(l+r)>>;
if( check(mid) )///如果强迫mid个人可以满足条件,就二分减少强迫的人数
{
r = mid - ;
ans = mid;
}
else
{
l = mid+;
}
}
printf("%d\n", min(m, ans));///强迫人数大于m, 取m
return ;
}

Video Reviews的更多相关文章

  1. K - Video Reviews Gym - 101755K (二分)

    题目链接: K - Video Reviews Gym - 101755K 题目大意: 一家公司想让个人给他们的产品评论,所以依次去找这个人,第i个人会评论当且仅当已经有个人评论或他确实对这个产品感兴 ...

  2. GYM 101755 K.Video Reviews 【贪心】+【二分】

    <题目链接> 题目大意: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个人评论或他确实对这个产品感兴趣,但是这n个人都不对这个产品感兴趣,问这 ...

  3. 12 Web Development Trends That Will Dominate 2022

    12 Web Development Trends That Will Dominate 2022 (mindinventory.com) Progressive Web Apps (PWAs) An ...

  4. video.js

    1.github地址 2.常用API: class : video-js: video-js应用视频所需的风格.js功能,比如全屏和字幕. vjs-default-skin: vjs-default- ...

  5. video.js--很赞的H5视频播放库

    video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/    git& ...

  6. 《HTML5》 Audio/Video全解

    一.标签解读 <audio> 标签属性 <audio id="media" src="http://www.abc.com/test.mp3" ...

  7. video/audio在ios/android上播放兼容

    1.audio自动播放 <audio src='xxx.mp3' autoplay></audio> 上面是audio标签autoplay属性是自动播放,但是在安卓部分浏览器和 ...

  8. video.js-H5视频播放库

    video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/    git& ...

  9. video.js播放mp4文件

    HTML5的标签 video 支持的mp4编码为视频编码 H.264 音频AAC 参考网址 http://www.w3school.com.cn/html5/html_5_video.asp 视频格式 ...

随机推荐

  1. redis GEO的使用

    一.概念 redis的GEO特性在Redis3.2版本发布,这个功能可以将用户给定的地理位置信息储存起来,并对这些信息进行操作. GEO常用语LBS(Location Based Service),基 ...

  2. Java Service Wrapper将jar包安装成Windows服务

    刚接触java,第一次使用Java开发windows服务,也是刚不久看了SSM框架 简直也是一头雾水,不过只要用心理解,其实很简单,下面有详细的步骤,包学包会 在windows上运行jar包,需要在工 ...

  3. emacs手动安装、解决不能使用中文输入法

    emacs的安装 emacs的下载,解压 wget http://mirrors.ustc.edu.cn/gnu/emacs/emacs-25.3.tar.gz tar -zxf emacs-25.3 ...

  4. css小技巧 --> 单标签实现单行文字居中,多行文字居左

    可能出现的尺寸场景: 代码如下: <!DOCTYPE html> <html lang="zh"> <head> <meta charse ...

  5. SQL SERVER-AlwaysonResolving

    虽然2台都是同步提交,自动failover模式 在辅助副本的AG中先删掉一个可用DB,然后关闭主副本,之后辅助副本变为下图.不能自动failover. 重新开启主副本后,主副本显示一切正常 但是辅助副 ...

  6. [nginx] nginx源码分析--proxy模式下nginx的自动重定向auto_redirect

    描述 我们配置了一个proxy模式下的nginx, upstream backend-test { server ; } server { listen ; location = /nginx/hww ...

  7. 17.centos7基础学习与积累-003-命令练习01

    1.从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 linux命令的学习: 创建目录:mkdir mkdir /data mkdir ...

  8. [牛客网 -leetcode在线编程 -01] max-points-on-a-line -穷举

    题目及题目来源 链接:https://www.nowcoder.com/questionTerminal/bfc691e0100441cdb8ec153f32540be2 来源:牛客网 首页 > ...

  9. 为什么将项目托管到Apache,浏览器输入http://127.0.0.1会跳转到http://127.0.0.1//dashboard/?

    找到xampp安装的根目录下htdocs文件夹下的index.php文件 <?php if (!empty($_SERVER['HTTPS']) && ('on' == $_SE ...

  10. DevExpress20:XtraCharts控件实现图表

    一.总体概述 官方文档: https://docs.devexpress.com/WindowsForms/8117/controls-and-libraries/chart-control Char ...