普及组—2023年2.14日打卡

_谦言万语 2023-02-14 20:53:33

T1

#include <iostream>
#include <cstring>
using namespace std;
const int N=500;
int f[N];
int n;
int a[N][N];

int main()
{
	cin>>n;
	memset(f,0x3f,sizeof f);
	f[1]=0;
	for(int i=1; i<n; i++)
		for(int j=i+1; j<=n; j++)
			cin>>a[i][j];
	for(int i=1; i<n; i++)
		for(int j=i+1; j<=n; j++)
			f[j]=min(f[j],f[i]+a[i][j]);
	cout<<f[n];
	return 0;
}

T2

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long LL;
LL dp[30000];//前i个花费价格为j的最大
int n,m;
int v[30],p[30];

int read() {
	char c=getchar();
	int date=0,w=1;
	while(c<'0' || c>'9') {
		if(c=='-') w=-1;
		c=getchar();
	}
	while(c>='0' && c<='9') {
		date=date*10+(c-'0');
		c=getchar();
	}
	return date*w;
}

int main() {
	n=read(),m=read();
	for(int i=1; i<=m; i++)
		v[i]=read(),p[i]=read();
	for(int i=1; i<=m; i++)
		for(int j=n; j>=v[i]; j--)
			dp[j]=max(dp[j],dp[j-v[i]]+v[i]*p[i]);
	cout<<dp[n];
	return 0;
}

T3

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long LL;
const int N=1010;
int n,x;
LL lose[N], win[N], dp[N], use[N];

int main()
{
	cin>>n>>x;
	for(int i=1; i<=n; i++)
		cin>>lose[i]>>win[i]>>use[i];
	
	for(int i=1; i<=n; i++)
	{
		for(int j=x; j>=0; j--)
		    if(j>=use[i])
				dp[j]=(LL)max(dp[j]+lose[i],dp[j-use[i]]+win[i]);
			else dp[j]=(LL)max(dp[j],dp[j]+lose[i]);
	}
	cout<<(LL)dp[x]*5;
	return 0;
}

 

...全文
20 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,853

社区成员

发帖
与我相关
我的任务
社区描述
和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

 刷题!

试试用AI创作助手写篇文章吧