80分求助,最后两个点RE
查看原帖
80分求助,最后两个点RE
407417
HerikoDeltana楼主2021/3/3 18:43

代码是这样的

#include <iostream>
#include <algorithm>
#include <stdio.h>
#define HRiver2 return
#define Warma 0//极 其 靠 谱的大姐姐来保佑我( 
#define ll long long
using namespace std;
ll f[100015],a[100015],b[100015],t,m;
int main()
{
	scanf("%lld%lld",&t,&m);
	for(ll i=1;i<=m;i++)
		scanf("%lld%lld",&a[i],&b[i]);
	for(ll i=1;i<=m;i++)
	{
		for(ll j=a[i];j<=t;j++)
		{
			if(f[j-a[i]]+b[i]>f[j])
				f[j]=f[j-a[i]]+b[i];
		}
	}
//	for(ll i=1;i<=t;i++)
	printf("%lld",f[t]);
	HRiver2 Warma;//我在想桃子( 
} 

如果看上面那个注释比较烦,这里有一份纯净版

#include <iostream>
#include <algorithm>
#include <stdio.h>
#define ll long long
using namespace std;
ll f[100015],a[100015],b[100015],t,m;
int main()
{
	scanf("%lld%lld",&t,&m);
	for(ll i=1;i<=m;i++)
		scanf("%lld%lld",&a[i],&b[i]);
	for(ll i=1;i<=m;i++)
	{
		for(ll j=a[i];j<=t;j++)
		{
			if(f[j-a[i]]+b[i]>f[j])
				f[j]=f[j-a[i]]+b[i];
		}
	}
	printf("%lld",f[t]);
	return 0;
} 

谢谢各位大佬了,倒数第二个测试点的数据我也放在这里了

输入
3794898 1
6041 3102
输出
1948056

今天看完完全背包就来做这个,没想到我竟然菜到这个地步,不愧于我的签名

2021/3/3 18:43
加载中...