求助大佬WA*2
查看原帖
求助大佬WA*2
524801
不食嗟来之食楼主2022/8/26 14:28
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=1e2+5;
int n,am,ar;
struct peo{
	int maxg;
	int mint;
}a[N][N];
struct slo{
	int m;
	int r;
	int t;
}s[N];
int cmp(slo ax,slo bx)
{
	return ax.t<bx.t;
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d%d",&s[i].m,&s[i].r,&s[i].t);
	}
	sort(s+1,s+1+n,cmp);
	scanf("%d%d",&am,&ar);
	for(int i=1;i<=n;i++)
	{
		for(int j=am;j>=s[i].m;j--)
		{
			for(int z=ar;z>=s[i].r;z--)
			{
//				a[j][z].maxg=max(a[j][z].maxg,a[j-m[i]][z-r[i]].maxg+1);
				if(a[j-s[i].m][z-s[i].r].maxg+1>a[j][z].maxg)
				{
					a[j][z].maxg=a[j-s[i].m][z-s[i].r].maxg+1;
					a[j][z].mint=a[j-s[i].m][z-s[i].r].mint+s[i].t;
				}
				else
				{
//					a[j][z].mint=min(a[j][z].mint,a[j-m[i]][z-r[i]].mint+t[i]);
				}
			}
		}
	}
//	for(int i=1;i<=am;i++)
//	{
//		for(int j=1;j<=ar;j++)
//		{
//			printf("%d ",a[i][j].maxg);
//		}
//		printf("\n");
//	}
//	for(int i=1;i<=am;i++)
//	{
//		for(int j=1;j<=ar;j++)
//		{
//			printf("%d ",a[i][j].mint);
//		}
//		printf("\n");
//	}
	printf("%d",a[am][ar].mint);
	return 0;
}

居然有这么多妹子,那我就贪心一下,先判断小的(这样可以跳过相同的大的),然后dp背包查询时间, #4 #9 WA了,求hack数据

2022/8/26 14:28
加载中...