关于memset和for循环复制好像是不一样的 比如:
#include<bits/stdc++.h>
using namespace std;
struct qwe{
int x,y;
}a[300];
bool cmp(qwe x,qwe y)
{
return x.y>y.y;
}
int n,f[100010],sum,ans=1e9;
int qian[300];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i].x>>a[i].y;
sort(a+1,a+1+n,cmp);
//for(int i=1;i<=100009;i++)f[i]=1;
memset(f,1,sizeof(f));
f[0]=0;
for(int i=1;i<=n;i++)qian[i]=qian[i-1]+a[i].x;
for(int i=1;i<=n;i++)
{
for(int j=sum;j>=0;j--)
{
f[j+a[i].x]=min(f[j+a[i].x],max(f[j],a[i].y+a[i].x+j));
f[j]=max(f[j],a[i].y+qian[i]-j);
}
sum+=a[i].x;
}
for(int i=1;i<=sum;i++)ans=min(ans,f[i]);
cout<<ans;
}
这个题用memset就可以得到正确答案,但是for循环却不得行(??
for(int i=1;i<=100009;i++)f[i]=1;
memset(f,1,sizeof(f));
memset:

for循环:

不知道为啥qwq