萌新求助早上T1,大样例玄学WA
  • 板块学术版
  • 楼主Spasmodic
  • 当前回复13
  • 已保存回复13
  • 发布时间2020/8/18 17:03
  • 上次更新2023/11/6 20:01:10
查看原帖
萌新求助早上T1,大样例玄学WA
121027
Spasmodic楼主2020/8/18 17:03
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=55,K=505,T=52502,INF=0x3f3f3f3f;
ll n,m,t,k,c[N],f[N][T];
struct data{ll x,y;};
vector<data>mp[T];
struct edge{ll u,v,w;}e[K];
int main(){
	freopen("delicacy.in","r",stdin);
	freopen("delicacy.out","w",stdout);
	scanf("%d%d%d%d",&n,&m,&t,&k);
	for(ll i=1;i<=n;i++)scanf("%d",&c[i]);
	for(ll i=1;i<=m;i++)scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].w);
	for(ll i=1,t,x,y;i<=k;i++)scanf("%d%d%d",&t,&x,&y),mp[t].push_back((data){x,y});
	f[1][0]=c[1];
	for(ll i=1;i<=t;i++){
		for(ll j=1;j<=m;j++)if(e[j].w<=i)f[e[j].v][i]=max(f[e[j].v][i],f[e[j].u][i-e[j].w]+c[e[j].v]);
		for(auto j:mp[i])f[j.x][i]+=j.y;
	}
	printf("%d\n",f[1][t]);
	return 0;
}
2020/8/18 17:03
加载中...