/*
题意一开始没有完全理解
所说的u+1 = v
就已经确保了第一是最大,第n是最小! 可恶!
*/
#include <iostream>
using namespace std;
const int N = 1010;
int n,m,k;
int needed[N][N];
int dis[N][N];
int ans;
int main()
{
cin >> n >> m >> k;
for(int i=1;i <= n;i++)
{
for(int j = 1;j <= k;j++)
{
cin >> needed[i][j];
}
}
for(int i=1;i < n;i++)
{
int a,b,c;
cin >> a >> b >> c;
dis[a][b] = c;
dis[b][a] = c;
}
// 那不就是1 2 3 4 ?
int l,r;
for(int i=1;i <= k;i++) // 对于这k中食物来说
{
int road = 0;
l = n+1,r = 0;
for(int j=1;j <= n;j++)
{
if(needed[j][i] == 1) // 如果需要
{
l = min(l,j);
r = max(r,j);
}
}
// cout << l << endl << r << endl;
for(int i = l;i < r;i++)
{
road = road + dis[i][i+1];
}
ans = max(ans,road);
}
cout << ans;
return 0;
}
CSP 食材运输 暴力25分
最新推荐文章于 2024-08-08 16:55:45 发布