提交记录 14687


用户 题目 状态 得分 用时 内存 语言 代码长度
M_sea 2003. 【NOI2020】美食家(加强版) Runtime Error 0 1.811 ms 17472 KB C++11 1.86 KB
提交时间 评测时间
2020-11-01 17:10:09 2020-11-01 17:10:28
// ====================================
//   author: M_sea
//   website: https://m-sea-blog.com/
// ====================================
#include <bits/stdc++.h>
#define file(x) freopen(#x".in","r",stdin); freopen(#x".out","w",stdout)
using namespace std;
typedef long long ll;

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

const int N=250+10,K=200+10;

int n,m,T,k,c[N];
int id[N][6],tot;

struct festival { int t,x,y; } t[K];
bool operator <(festival a,festival b) { return a.t<b.t; }

struct Matrix {
	ll s[N][N];
	Matrix() { memset(s,0xc0,sizeof(s)); }
	ll* operator [](int i) { return s[i]; }
} Q[30];
ll A[N];
Matrix operator *(Matrix a,Matrix b) {
	Matrix c;
	for (int i=1;i<=tot;++i)
		for (int k=1;k<=tot;++k) {
			if (a[i][k]<0) continue;
			for (int j=1;j<=tot;++j)
				c[i][j]=max(c[i][j],a[i][k]+b[k][j]);
		}
	return c;
}
void Mul(Matrix Q) {
	static ll B[N];
	for (int i=1;i<=tot;++i) B[i]=-4e18;
	for (int k=1;k<=tot;++k) {
		if (A[k]<0) continue;
		for (int j=1;j<=tot;++j)
			B[j]=max(B[j],A[k]+Q[k][j]);
	}
	for (int i=1;i<=tot;++i) A[i]=B[i];
}

int main() {
	tot=n=read(),m=read(),T=read(),k=read();
	for (int i=1;i<=n;++i) c[i]=read();
	for (int i=1;i<=n;++i) id[i][0]=i;
	for (int i=1;i<=m;++i) {
		int u=read(),v=read(),w=read();
		for (int j=1;j<w;++j) if (!id[u][j]) id[u][j]=++tot;
		for (int j=1;j<w;++j) Q[0][id[u][j-1]][id[u][j]]=0;
		Q[0][id[u][w-1]][v]=c[v];
	}
	for (int i=1;i<=k;++i) t[i]=(festival){read(),read(),read()};
	sort(t+1,t+k+1); t[0]=(festival){0,0,0},t[k+1]=(festival){T,0,0};
	for (int i=1;i<=29;++i) Q[i]=Q[i-1]*Q[i-1];
	for (int i=2;i<=tot;++i) A[i]=-4e18; A[1]=c[1];
	for (int i=1;i<=k+1;++i) {
		int dt=t[i].t-t[i-1].t;
		for (int j=29;~j;--j) if (dt&(1<<j)) Mul(Q[j]);
		A[t[i].x]+=t[i].y;
	}
	if (A[1]<0) puts("-1");
	else printf("%lld\n",A[1]);
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Subtask #1 Testcase #11.794 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #21.793 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #31.811 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #41.798 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #51.799 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #61.749 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #71.796 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #81.744 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #91.754 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #101.796 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #111.762 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #121.753 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #131.76 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #141.794 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #151.791 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #161.754 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #171.796 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #181.795 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #191.789 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #201.791 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #211.756 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #221.759 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #231.758 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #241.795 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #251.787 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #261.745 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #271.792 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #281.76 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #291.766 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #301.789 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #311.752 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #321.793 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #331.791 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #341.793 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #351.754 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #361.796 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #371.796 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #381.797 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #391.774 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #401.757 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #411.749 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #421.754 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #431.794 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #441.801 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #451.792 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #461.808 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #471.757 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #481.793 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #491.801 ms17 MB + 64 KBRuntime ErrorScore: 0

Subtask #1 Testcase #501.798 ms17 MB + 64 KBRuntime ErrorScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-22 02:34:17 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠