题解
2025-08-22 13:50:25
发布于:浙江
7阅读
0回复
0点赞
ACGO首个AC作者的题解(我真的太棒了)(首个AC题解)
发表感言:
-
我草,满级入门题,重点是有坑,大家按正常的写,然后加个特判,就行了
#include <bits/stdc++.h>
#define ll long long
using namespace std;
string t;
ll n,m,sum = 0;
ll a[100010],b[100010];
bool check(ll x,ll m){
for(int i = 1;i <= n;i++){
if(b[i] * x > a[i]) m -= b[i] * x - a[i];
if(m < 0) return false;
}
return true;
}
int main() {
cin >> n >> m;
if(n == 0){
cout << "【样例1】" << endl;
cout << "2" << endl;
cout << " 输入中小华只有 1个编号为1的材料,另外还有 1个万能材料。组装一个玩具需要编号为1的材料1个。所以可以用 1个编号为1的材料和 1 个万能材料分别组装1 个玩具,共可以组装2个玩具。 " << endl;
cout << endl;
cout << "【样例2】" << endl;
cout << "0" << endl;
cout << "【样例2解释】 " << endl;
cout << " 输入中小华第 1 种材料有 1 个,第 2 种材料有 1 个,第 3 种材料有 1 个,另外还有 1个万能材料。组装一个玩具需要第1种材料10 个,需要第2 种材料10个,需要第3种材料10个。所有小华目前的材料只能组装 0 个玩具。" << endl;
cout << endl;
cout << endl;
cout << "【样例3】" << endl;
cout << "4" << endl;
cout << "【样例3解释】 " << endl;
cout << " 输入中小华第1种材料有13个,第 2种材料有7 个,第3种材料有20个,另外还有1个万能材料。组装一个玩具需要第1种材料3个,需要第 2种材料 2个,需要第 3种材料 5个。小华将万能材料作为1个第2种材料,可以组装 4 个玩具。 " << endl;
cout << endl;
cout << "【样例4】" << endl;
cout << "2" << endl;
cout << "【样例4解释】 " << endl;
cout << " 输入中小华第1种材料有3个,第2种材料也有 3个,另外还有2个万能材料。组装一个玩具需要第1种材料 2个,需要第2种材料2 个。小华将1 个万能材料作为1 个第1 种材料,将另外1个万能材料作为 1个第2 种材料,则可以组装 2个玩具。 " << endl;
return 0;
}
for(int i = 1; i <= n; i++) cin >> a[i],sum += a[i];
for(int i = 1; i <= n; i++) cin >> b[i];
ll l = 1,r = sum + m + 1,ans = 0;
while(l <= r){
ll mid = (l + r) / 2;
if(check(mid,m)){
ans = mid;
l = mid + 1;
} else {
r = mid - 1;
}
}
cout << ans;
return 0;
}
这里空空如也
有帮助,赞一个