提交记录 14688


用户 题目 状态 得分 用时 内存 语言 代码长度
M_sea 2003. 【NOI2020】美食家(加强版) Runtime Error 0 2.214 ms 3452 KB C++11 1.86 KB
提交时间 评测时间
2020-11-01 17:11:12 2020-11-01 17:11:22
// ====================================
//   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=100+10,K=10000+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 #12.154 ms3 MB + 324 KBRuntime ErrorScore: 0

Subtask #1 Testcase #22.143 ms3 MB + 340 KBRuntime ErrorScore: 0

Subtask #1 Testcase #32.13 ms3 MB + 368 KBRuntime ErrorScore: 0

Subtask #1 Testcase #42.086 ms3 MB + 312 KBRuntime ErrorScore: 0

Subtask #1 Testcase #52.133 ms3 MB + 356 KBRuntime ErrorScore: 0

Subtask #1 Testcase #62.184 ms3 MB + 364 KBRuntime ErrorScore: 0

Subtask #1 Testcase #72.065 ms3 MB + 324 KBRuntime ErrorScore: 0

Subtask #1 Testcase #82.128 ms3 MB + 320 KBRuntime ErrorScore: 0

Subtask #1 Testcase #92.137 ms3 MB + 332 KBRuntime ErrorScore: 0

Subtask #1 Testcase #102.18 ms3 MB + 360 KBRuntime ErrorScore: 0

Subtask #1 Testcase #112.162 ms3 MB + 368 KBRuntime ErrorScore: 0

Subtask #1 Testcase #122.139 ms3 MB + 372 KBRuntime ErrorScore: 0

Subtask #1 Testcase #132.131 ms3 MB + 336 KBRuntime ErrorScore: 0

Subtask #1 Testcase #142.106 ms3 MB + 328 KBRuntime ErrorScore: 0

Subtask #1 Testcase #152.12 ms3 MB + 368 KBRuntime ErrorScore: 0

Subtask #1 Testcase #162.17 ms3 MB + 348 KBRuntime ErrorScore: 0

Subtask #1 Testcase #172.182 ms3 MB + 352 KBRuntime ErrorScore: 0

Subtask #1 Testcase #182.181 ms3 MB + 328 KBRuntime ErrorScore: 0

Subtask #1 Testcase #192.113 ms3 MB + 272 KBRuntime ErrorScore: 0

Subtask #1 Testcase #202.134 ms3 MB + 324 KBRuntime ErrorScore: 0

Subtask #1 Testcase #212.087 ms3 MB + 344 KBRuntime ErrorScore: 0

Subtask #1 Testcase #222.144 ms3 MB + 324 KBRuntime ErrorScore: 0

Subtask #1 Testcase #232.132 ms3 MB + 312 KBRuntime ErrorScore: 0

Subtask #1 Testcase #242.088 ms3 MB + 320 KBRuntime ErrorScore: 0

Subtask #1 Testcase #252.104 ms3 MB + 300 KBRuntime ErrorScore: 0

Subtask #1 Testcase #262.157 ms3 MB + 356 KBRuntime ErrorScore: 0

Subtask #1 Testcase #272.1 ms3 MB + 368 KBRuntime ErrorScore: 0

Subtask #1 Testcase #282.163 ms3 MB + 364 KBRuntime ErrorScore: 0

Subtask #1 Testcase #292.1 ms3 MB + 356 KBRuntime ErrorScore: 0

Subtask #1 Testcase #302.158 ms3 MB + 308 KBRuntime ErrorScore: 0

Subtask #1 Testcase #312.15 ms3 MB + 340 KBRuntime ErrorScore: 0

Subtask #1 Testcase #322.189 ms3 MB + 340 KBRuntime ErrorScore: 0

Subtask #1 Testcase #332.124 ms3 MB + 288 KBRuntime ErrorScore: 0

Subtask #1 Testcase #342.106 ms3 MB + 344 KBRuntime ErrorScore: 0

Subtask #1 Testcase #352.202 ms3 MB + 372 KBRuntime ErrorScore: 0

Subtask #1 Testcase #362.147 ms3 MB + 368 KBRuntime ErrorScore: 0

Subtask #1 Testcase #372.118 ms3 MB + 336 KBRuntime ErrorScore: 0

Subtask #1 Testcase #382.141 ms3 MB + 364 KBRuntime ErrorScore: 0

Subtask #1 Testcase #392.203 ms3 MB + 356 KBRuntime ErrorScore: 0

Subtask #1 Testcase #402.13 ms3 MB + 344 KBRuntime ErrorScore: 0

Subtask #1 Testcase #412.167 ms3 MB + 268 KBRuntime ErrorScore: 0

Subtask #1 Testcase #422.214 ms3 MB + 316 KBRuntime ErrorScore: 0

Subtask #1 Testcase #432.151 ms3 MB + 344 KBRuntime ErrorScore: 0

Subtask #1 Testcase #442.132 ms3 MB + 316 KBRuntime ErrorScore: 0

Subtask #1 Testcase #452.135 ms3 MB + 328 KBRuntime ErrorScore: 0

Subtask #1 Testcase #462.146 ms3 MB + 340 KBRuntime ErrorScore: 0

Subtask #1 Testcase #472.09 ms3 MB + 344 KBRuntime ErrorScore: 0

Subtask #1 Testcase #482.116 ms3 MB + 364 KBRuntime ErrorScore: 0

Subtask #1 Testcase #492.176 ms3 MB + 380 KBRuntime ErrorScore: 0

Subtask #1 Testcase #502.144 ms3 MB + 336 KBRuntime ErrorScore: 0


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