[题目]大意

有 n n n只兔兔,每只兔兔单独时都需要吃 h u n g e r i hunger_i hungeri​的食物量,假如有同食者,那么每个同食者会让它需要多吃 g r e e d i greed_i greedi​的食物量。假如小明最多能提供 t o t a l F o o d totalFood totalFood的食物,那么他最多能养多少只兔兔。

题目分析

养的兔子越多,所需食物量越大,可见答案具有单调性,用二分答案做。
答案的上下限:
下限很明显就是 0 0 0,上限就是兔兔的总数即 n n n, n n n的最大值是 50 50 50,所以上限为 50 50 50。
再确定二分条件:
“在养mid只兔兔时小明是否能够提供足够食物”。
怎么判断呢?
每个兔兔的代价是不同的,但是它们的贡献是相同的,所以可以用贪心做,先预处理出所有兔兔的代价,当选 m i d mid mid只兔兔时,第 i i i只兔兔的代价为 h u n g e r i + g r e e d i ∗ ( m i d − 1 ) hunger_i+greed_i*(mid-1) hungeri​+greedi​∗(mid−1)
然后 s o r t sort sort大法~~
然后用 s u m sum sum累加前 m i d mid mid个,最后判断 t o t ≥ s u m tot \geq sum tot≥sum

C o d e Code Code

#include<algorithm>
#include<iostream>
#include<cstdio>
#define sco 50
using namespace std;
int n,tot,l=0,r=50,mid,hun[sco],gre[sco];
bool check(int x){int p[sco]={},tmp=tot;for(int i=1;i<=n;++i){p[i]=hun[i]+gre[i]*(x-1);}sort(p+1,p+1+n);for(int i=1;i<=x;++i)tmp-=p[i];return tmp>=0;
}
int main(){scanf("%d%d",&n,&tot);for(int i=1;i<=n;++i)scanf("%d",hun+i);for(int i=1;i<=n;++i)scanf("%d",gre+i);while(l+1<r){mid=(l+r)/2;if(check(mid)) l=mid;else r=mid;}printf("%d",l);return 0;
}

YBTOJ:喂养宠物相关推荐

  1. YbtOJ#732-斐波那契【特征方程,LCT】

    正题 题目链接:http://www.ybtoj.com.cn/contest/125/problem/2 题目大意 给出nnn个点的一棵树,以111为根,每个点有点权aia_iai​.要求支持mmm ...

  2. YbtOJ#791-子集最值【三维偏序】

    正题 题目链接:http://www.ybtoj.com.cn/contest/123/problem/1 题目大意 给出333个长度为nnn的排列A,B,CA,B,CA,B,C.然后一个下标集合SS ...

  3. YbtOJ#662-交通运输【线段树合并,树状数组】

    正题 题目链接:http://www.ybtoj.com.cn/contest/122/problem/2 题目大意 给出nnn个点的一棵有根树,对于每个xxx求,删除点xxx后修改某个点的父节点(修 ...

  4. YbtOJ#943-平方约数【莫比乌斯反演,平衡规划】

    正题 题目链接:http://www.ybtoj.com.cn/contest/122/problem/3 题目大意 S(i)S(i)S(i)表示iii的约数个数,QQQ次询问给出n,mn,mn,m求 ...

  5. YbtOJ#912-神秘语言【结论,欧拉定理】

    正题 题目链接:http://www.ybtoj.com.cn/problem/912 题目大意 给出L,RL,RL,R,求有多少长度在[L,R][L,R][L,R]之间的字符串满足依次取出所有偶数位 ...

  6. YbtOJ#763-攻城略池【线段树合并】

    正题 题目链接:http://www.ybtoj.com.cn/problem/763 题目大意 给出nnn个点的一棵树,每个di=0d_i=0di​=0的点每秒会产生一个士兵往根节点走,走到一个节点 ...

  7. YbtOJ#853-平面标记【整体二分,凸壳】

    正题 题目链接:http://www.ybtoj.com.cn/contest/119/problem/3 题目大意 给出nnn个点(xi,yi)(x_i,y_i)(xi​,yi​),mmm次给出(k ...

  8. YbtOJ#752-最优分组【笛卡尔树,线段树】

    正题 题目链接:http://www.ybtoj.com.cn/problem/752 题目大意 nnn个人,每个人有cic_ici​和did_idi​分别表示这个人所在的队伍的最少/最多人数. 然后 ...

  9. YbtOJ#883-最大的割【带修线性基】

    正题 题目链接:http://www.ybtoj.com.cn/contest/118/problem/3 解题思路 给出nnn个点,mmm次动态插入一条无向边询问:割掉一些边使得图中至少两点不连通, ...

最新文章

  1. 旋转矩阵与欧拉角之间的转换
  2. 小学计算机笔记,小学信息技术教师读书笔记
  3. Redis学习笔记--Redis数据过期策略详解
  4. 图像去噪 使用dct变换进行去噪
  5. Phpcms之核心目录phpcms
  6. 全网Star最多(近20k)的Spring Boot开源教程 2019 年要继续更新了!
  7. 【LeetCode笔记】35. 搜索插入位置(Java、二分法)
  8. 微信公众账号 token 验证失败 解决办法
  9. python 学习笔记 while语句(11)
  10. Android 助力云计算
  11. 响应式 BootStrap 媒体查询 栅格 组件 scss
  12. win10误删的注册表能还原吗_教你手动还原Win10注册表?
  13. 螺旋扩孔的效率高,但侧壁质量不如步进扩孔
  14. 计算机可靠度计算公式,可靠性计算公式大全
  15. 【完美解决:绝对路径含中文问题】bat一键启动应用绝对路径中含中文导致无法执行
  16. 盲盒包装流水线(数据结构实践-栈)
  17. Linux下的Html编辑器
  18. css+js简单实现126邮箱注册页面
  19. 大学计算机应用能力基础,大学计算机应用基础
  20. 在windows下编译PHP(5.4版本)

热门文章

  1. 自动升级的原理及实现
  2. [参考]FreeBSD5.4+GNOME2.10.0安装过程
  3. (附源码)springboot服装购物网站 毕业设计 010234
  4. LATEX中常用的插图和插表格的方法
  5. 计算机教室要配备空调吗,教室要不要装空调?家长的意见出奇的一致:装!必须要装!...
  6. Mal-PEG3.4k-PLA 马来酰亚胺PEG聚乳酸 Mal-PLA 马来酰亚胺修饰聚乳酸
  7. Rails配置(一)——安装rails
  8. 关于servlet的@WebServlet注解。
  9. 四、ubuntu20.04下找不到NVIDIA相关命令
  10. 为四川汶川地震贡献自己的微薄之力