Treap_Kongzs @ 2024-10-05 21:43:05
钛蒻了。。。二分写炸了。。。但惊奇的是TLE,并没WA
思想是二分最小员工数,check()
就是判断这个数能不能由各部员工加出来。
然后。。。就没有然后了
code:
#include<bits/stdc++.h>
using namespace std;
const int maxn=25;
const int maxr=2e9;
int arr[maxn];
bool check(int num,int n)
{
int res=0;
for(int i=1;i<=n;i++)
{
if(res+arr[i]>num)return false;
if(res+arr[i]==num)return true;
}
return false;
}
int main()
{
int n=0,res=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>arr[i];
}
sort(arr+1,arr+n+1);
int l=1;
int r=maxr;
while(l<=r)
{
int mid=(l+r)>>1;
if(check(mid,n)==true)
{
res=mid;
r=mid;
}
else
{
l=mid+1;
}
}
cout<<res;
return 0;
}
谢谢各位大佬!
by SunsetVoice @ 2024-10-05 21:44:07
完全不需要二分。
by Treap_Kongzs @ 2024-10-05 21:45:45
@SunsetVoice
啊?所以就暴力扫?(
但答案的值域不是
by D_C_Z @ 2024-10-05 21:47:53
@Treap_Kongzs 暴力看这个数在第一组还是在第二组
by Wind_love @ 2024-10-05 21:48:35
@Treap_Kongzs 不是暴力扫答案值域 是暴力找每种情况
by SunsetVoice @ 2024-10-05 21:48:48
@Treap_Kongzs ?
by Treap_Kongzs @ 2024-10-05 21:51:45
@D_C_Z @I_AK_IOI_1114 @SunsetVoice
所以原来是P2392的弱化吗?难怪我P2392也没过(
谢谢各位大佬,已关