题目链接:

while(1)gugu(while(1))

闲扯

考场上怕T2正解写挂其他两题没管只打了暴力,晚上发现这题思维挺妙的

同时想吐槽出题人似乎热衷卡常...我的巨大常数现在显露无疑QAQ

分析

这道题yy出了一个似乎比solution更好理解的解法,一开始有\(n\)条一次函数,就有\(2^n\)种函数集合,显然每个集合也是一个一次函数\(T_i(x)=k_i x+b_i\)

我们把这个集合分成两种\(k_i<=0\)和\(k_i>0\),显然如果答案最后最大值的函数集合是第一种,那么显然肯定是在\(x=0\)取到的

所以我们单独把\(x=0\)拎出来考虑就可以不考虑第一种函数集合的贡献了

对于第二种\(k_i>0\)的函数集合,应该很容易发现\(max(T_i(x))\)是单调递增的的图像,可以二分找到答案要求的点

然后这题就做完了

对于0的处理其实就是把\(b_i\)最大且大于0的拿出来看看是否大于等于S就好了,虽然最后这样的函数集合不一定是第一种\(k_i<=0\)但是一定考虑进去了

二分的时候也是贪心把该点的处于前\(m\)大且大于0的单个一次函数值加起来判断一下就好了

这里有个骚操作nth_ment(l,pos,r,cmp),表示将容器中\([l,r)\)种第pos个位置的元素变成第\(pos\)大/小(视cmp函数决定),同时pos前都是大/小于第pos大/小的元素,pos后类似

代码

#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <algorithm>
#include <cctype>
#include <iostream>
#include <queue>
#include <vector>
#define ll long long
#define ri register int
using std::min;
using std::max;
using std::nth_element;
inline char nc(){
static char buf[100000],*p1=buf,*p2=buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
template <class T>inline void read(T &x){
x=0;int ne=0;char c;
while(!isdigit(c=nc()))ne=c=='-';
x=c-48;
while(isdigit(c=nc()))x=(x<<3)+(x<<1)+c-48;
x=ne?-x:x;return ;
}
const int maxn=1000005;
const int inf=0x7fffffff;
ll v[maxn],ki[maxn],bi[maxn];
int n,m;ll s;
bool ok(int x){
for(ri i=1;i<=n;i++)v[i]=ki[i]*x+bi[i];
nth_element(v+1,v+m,v+n+1,std::greater<ll>());
ll sum=0;
if(sum>=s)return 1;
for(ri i=1;i<=m;i++){
if(v[i]>0)sum+=v[i];
if(sum>=s)return 1;
}
return 0;
}
int main(){
freopen("merchant.in","r",stdin);
freopen("merchant.out","w",stdout);
read(n),read(m),read(s);
for(ri i=1;i<=n;i++){
read(ki[i]),read(bi[i]);
}
if(ok(0)){puts("0");exit(0);}
int L=1,R=1e9,ans;
while(L<=R){
int mid=(L+R)>>1;
if(ok(mid))ans=mid-1,R=mid-1;
else L=mid+1;
}
printf("%d\n",ans+1);
return 0;
}

[NOIP10.6模拟赛]1.merchant题解--思维+二分的更多相关文章

  1. [NOIP10.4模拟赛]3.z题解--思维

    题目链接: 咕咕 闲扯: 哈哈这道T3考场上又敲了5个namespace,300+行,有了前车之鉴还对拍过,本以为子任务分稳了 结果只有30分哈哈,明明用极限数据对拍过不知怎么回事最后数据又是读不全, ...

  2. [NOIP10.5模拟赛]3.c题解--思维

    题目链接 这次不咕了 https://www.luogu.org/problemnew/show/AT2389 闲扯 考场20分爆搜走人 \cy 话说这几天T3都很考验思维啊 分析 我们先钦定一只鸡( ...

  3. [NOIP10.6模拟赛]2.equation题解--DFS序+线段树

    题目链接: 咕 闲扯: 终于在集训中敲出正解(虽然与正解不完全相同),开心QAQ 首先比较巧,这题是\(Ebola\)出的一场模拟赛的一道题的树上强化版,当时还口胡出了那题的题解 然而考场上只得了86 ...

  4. [NOIP10.3模拟赛]3.w题解--神奇树形DP

    题目链接: 咕 闲扯: 这题考场上把子任务都敲满了,5个namespace,400行11k 结果爆0了哈哈,因为写了个假快读只能读入一位数,所以手测数据都过了,交上去全TLE了 把边分成三类:0. 需 ...

  5. [NOIP10.5模拟赛]1.a题解--离散化+异或线段树

    题目链接: 咕咕咕 https://www.luogu.org/problemnew/show/CF817F 闲扯 在Yali经历几天折磨后信心摧残,T1数据结构裸题考场上连暴力都TM没打满 分析 观 ...

  6. [NOIP10.4模拟赛]2.y题解--折半搜索+状压计数

    题目链接: 咕 闲扯: 这题暴力分似乎挺多,但是一些奇奇怪怪的细节没注意RE了,还是太菜了 分析: 首先我们考虑最naiive的状压DP ,\(f[u][v][state]\)表示u开头,v结尾是否存 ...

  7. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  8. 模拟赛 提米树 题解 (DP+思维)

    题意: 有一棵棵提米树,满足这样的性质: 每个点上长了一定数量的Temmie 薄片,薄片数量记为这个点的权值,这些点被标记为 1 到 n 的整数,其 中 1 号点是树的根,没有孩子的点是树上的叶子. ...

  9. DYOJ 【20220317模拟赛】瞬间移动 题解

    瞬间移动 题意 三维空间中从 \((0,0,0)\) 开始,每次移动 1,问刚好走 \(N\) 次能到 \((X,Y,Z)\) 的方案数 \(N\le10^7\),答案模 \(998244353\) ...

随机推荐

  1. Flume-自定义 Source 读取 MySQL 数据

    开源实现:https://github.com/keedio/flume-ng-sql-source 这里记录的是自己手动实现. 测试中要读取的表 CREATE TABLE `student` ( ` ...

  2. Flutter移动电商实战 --(32)列表页_小类高亮交互效果制作

    点击大类右侧的横向的小类红色显示当前的小类别 解决之前溢出的问题: 先解决一个bug,之前右侧的这里设置的高度是1000,但是有不同的虚拟机和手机设别的问题造成了溢出的问题 Expaned是有伸缩能力 ...

  3. Android——coredump解析

    撰写不易,转载需注明出处:http://blog.csdn.net/jscese/article/details/46916869本文来自 [jscese]的博客! coredump文件生成前文And ...

  4. ios UISegmentedControl 用法举例

    UISegmentedControl * segmentControl = [[UISegmentedControl alloc]initWithFrame:CGRectMake(0, 0, 160, ...

  5. zookeeper-3.5.5安装报错:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/jiangxiulilinux/artic ...

  6. selenium历史版本下载

    python历史版本下载 https://pypi.org/project/selenium/#history java历史版本下载  http://selenium-release.storage. ...

  7. breadwinner-养家之人_20190220

    " 在我们那里,人是最珍贵的.话要说的更有道理,而不是提高音量,毕竟滋养花朵的是雨水,而不是雷鸣“ ”我叫苏莱曼,我的爸爸是个教师,我的妈妈是个作家.有一天我在路上看到一个玩具,就把它捡起来 ...

  8. Spring Boot中报错org.apache.ibatis.binding.BindingException: Parameter 'XXXX' not found. Available parameters are [0, 1, param1, param2]的解决办法

    我这里的报错信息显示: org.apache.ibatis.binding.BindingException: Parameter 'reqUsername' not found. Available ...

  9. unity3d 触屏多点触控(旋转与缩放)

    unity3d 触屏多点触控(旋转与缩放) /*Touch OrbitProgrammed by: Randal J. Phillips (Caliber Mengsk)Original Creati ...

  10. 限流保护——nginx限流模块

    1.限制请求次数——limit_req_zone模块 a.意义:limit_req_zone 表示限制单位时间内的请求数,即速率限制,采用的漏桶算法 a.在 conf/nginx.conf 配置文件中 ...