Codeforces Round #350 (Div. 2) (二分答案)
来源:互联网 发布:html php 编辑:程序博客网 时间:2024/05/16 04:55
【题意】给了n个物品和k,a[i]表示做成第i个物品需要的材料,b[i]表示当前第i种物品的材料重量。k代表可以在任意一种物品,或者多个添加该种物品的不定重量,最后求可以合成的最多的物品数。
【分析】裸二分答案,就是数据范围有点坑,还要注意二分的姿势,二分最近总是写错,以前还没有错过。
【AC代码】
//623 ms#include <bits/stdc++.h>using namespace std;#define ll long longconst int maxn = 100010;int n;ll k;ll a[maxn],b[maxn];ll solve(ll x){ ll cur=k; for(int i=0; i<n; i++){ ll temp = b[i]-a[i]*x; if(temp<0) cur+=temp; if(cur<0) return -1; } return 1;}int main(){ cin>>n>>k; for(int i=0; i<n; i++) cin>>a[i]; for(int i=0; i<n; i++) cin>>b[i]; ll l=0,r=3e9; while(l<=r){ ll mid = (l+r)>>1; if(solve(mid)<0) r=mid-1; else l=mid+1; } cout<<l-1<<endl; return 0;}
【ps贴一个队长的神版本】
//46 ms#include<cstdio>#include<cstring>int a[100005],b[100005];int k,n;bool judge(int x){ int kk=k; for(int i=1;i<=n;i++) { int y=b[i]+kk; if(x>y/a[i]) return 0; y=a[i]*x; if(y>b[i]) kk-=y-b[i]; } return 1;}int main(){ scanf("%d %d",&n,&k); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) scanf("%d",&b[i]); int l=0,r=2e9; while(l<r) { int mid=l+(r-l+1)/2; // printf("%d\n",mid); if(judge(mid)) l=mid; else r=mid-1; } printf("%d\n",l); return 0;}
1 0
- Codeforces Round #350 (Div. 2) (二分答案)
- Codeforces Round #350 (Div. 2) D2. Magic Powder - 2 670D 【二分答案】
- D. One-Dimensional Battle Ships-二分答案-Codeforces Round #Pi (Div. 2)
- Codeforces 615E Hexagons (Round #338 (Div. 2) E题) 二分答案+找规律
- Codeforces Round #378 (Div. 2) D题(二分答案,贪心判断)
- Codeforces Round #425 (Div. 2) C-Strange Radiation(二分答案)
- Codeforces#354C (Div. 2) 二分答案
- Codeforces Round #350 (Div. 2) D2 Magic Powder - 2【二分】
- Codeforces Round #350 (Div. 2) D2. Magic Powder - 2 【二分】
- Codeforces Round #350 (Div. 2) D1,D2Magic Powder(二分)
- Codeforces Round #350 (Div. 2) D Magic Powder (二分)
- Codeforces Round #211 (Div. 2)(二分贪心)
- Codeforces Round #251 (Div. 2) D 二分
- Codeforces Round #262 (Div. 2) 总结:二分
- Codeforces Round #352 (Div. 2) D 二分
- Codeforces Round #361 (Div. 2) C 二分
- Codeforces Round #321 (Div. 2) B 二分
- Codeforces Round #377 (Div. 2) D 二分
- js 分页
- 类中的一些特殊函数
- Eclipse Bug: Unhandled event loop exception No more handles解决
- Linux Shell编程学习笔记一:shell简介
- DayDayUP_Python自学记录[9]_切片
- Codeforces Round #350 (Div. 2) (二分答案)
- 栈及栈的链式存储结构(栈链)
- 我是一名前端开发工程师
- CSS Font-Size: em、px 、pt 、Percent之间的关系及换算
- C++字符串相关操作函数
- 2个git仓库共用文件夹的实现
- TypedValue.applyDimension 中dp和sp之间转化的真相
- Xcode出现( linker command failed with exit code 1)错误总结
- Calendar 获取年月日 时分秒粥