好氧(菌)程序,不开O2就会WA掉
查看原帖
好氧(菌)程序,不开O2就会WA掉
524801
不食嗟来之食楼主2022/9/22 20:19

题目 P1926 小书童——刷题大军

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=14,R=205;
int dp1[R],dp2[R],tv[N],tw[N],fv[N],n,m,k,rt;
bool check(int m1){
	memset(dp1,0,sizeof(dp1));
	for(int i=1;i<=m;i++){
		for(int j=m1;j>=tw[i];j--){
			dp1[j]=max(dp1[j],dp1[j-tw[i]]+tv[i]);
		}
	}
	return dp1[m1]>=k;
}
int dp_s(){
	int l=1,r=rt;
	while(l<=r){
		int mid=(l+r)>>1;
		if(check(mid)) r=mid-1;
		else l=mid+1;
	}
	return l;
}
int ans;
int main(){
//	freopen("P1926_1.in","r",stdin);
	scanf("%d%d%d%d",&n,&m,&k,&rt);
	for(int i=1;i<=n;i++) scanf("%d",&fv[i]);
	for(int i=1;i<=m;i++) scanf("%d",&tw[i]);
	for(int i=1;i<=m;i++) scanf("%d",&tv[i]);
	m=rt;
	m-=dp_s();
	sort(fv+1,fv+1+n);
	for(int i=1;i<=n;i++){
		if(m<fv[i]) break;
		else m-=fv[i],ans++;
	}
	printf("%d",ans);
	return 0;
}

样例是in::

3 4 20 100
25 30 50
10 15 40 40
5 5 10 15

out::

1

开了O2会AC,不开O2 0分,求助万能谷民讲解一下为什么我的程序是好氧菌(bushi

2022/9/22 20:19
加载中...