特别简单,只有链的形式才符合要求,那么枚举前两个点的颜色搞一下就可以

#include <bits/stdc++.h>
using namespace std;
int a[][],pos[],ok=,f[];
int o[];
vector<int> h[];
set<int> s[];
set<int>::iterator it;
long long d[][];
void dfs(int u,int fa)
{
f[u]=fa;
if(ok==-) return ;
if(h[u].size()>)
{
ok=-;
return ;
}
int k=;
for(int i=; i<h[u].size(); i++)
{
int v=h[u][i];
if(v==fa) continue;
k++;
while(pos[f[u]]==k||k==pos[u]) k++;
pos[v]=k;
s[k].insert(v);
dfs(v,u);
}
}
int main()
{
int n,i,j,x,y;
scanf("%d",&n);
for(i=; i<=; i++)
for(j=; j<=n; j++) scanf("%d",&a[i][j]);
for(i=; i<n; i++)
{
scanf("%d%d",&x,&y);
h[x].push_back(y);
h[y].push_back(x);
}
s[].insert();
pos[]=;
dfs(,);
if(ok==-) return puts("-1"),;
for(i=; i<=; i++)
for(it=s[i].begin(); it!=s[i].end(); it++)
{
d[i][]+=a[][*it];
d[i][]+=a[][*it];
d[i][]+=a[][*it];
}
long long mmin;
mmin=d[][]+d[][]+d[][];
mmin=min(mmin,d[][]+d[][]+d[][]);
mmin=min(mmin,d[][]+d[][]+d[][]);
mmin=min(mmin,d[][]+d[][]+d[][]);
mmin=min(mmin,d[][]+d[][]+d[][]);
mmin=min(mmin,d[][]+d[][]+d[][]);
printf("%lld\n",mmin);
if(mmin==d[][]+d[][]+d[][]) o[]=,o[]=,o[]=;
else if(mmin==d[][]+d[][]+d[][]) o[]=,o[]=,o[]=;
else if(mmin==d[][]+d[][]+d[][]) o[]=,o[]=,o[]=;
else if(mmin==d[][]+d[][]+d[][]) o[]=,o[]=,o[]=;
else if(mmin==d[][]+d[][]+d[][]) o[]=,o[]=,o[]=;
else if(mmin==d[][]+d[][]+d[][]) o[]=,o[]=,o[]=;
for(i=;i<=n;i++) printf("%d ",o[pos[i]]);
return ;
}

最新文章

  1. Spring MVC学习笔记——完整的用户登录
  2. Chrome浏览器设置默认编码
  3. jquery 双击修改某项值
  4. CRM客户关系管理系统 ——客户联系人添加(十五)
  5. Java System.out的输出缓冲
  6. Mysql笔记——触发器简单实例
  7. linux 下 select 编程
  8. tessilstrona
  9. Java的优先级
  10. Could not load type System.ServiceModel.Activation.HttpModule解决办法
  11. 【C#多线程编程实战笔记】一、 线程基础
  12. 高性能 Java 缓存库 — Caffeine
  13. 进程中调用CreateMutex
  14. linux系统环境与文件权限
  15. linux 部署mysql
  16. nodejs操作session和cookie
  17. Linux 系统负载查询及分析说明
  18. websocket实现简单的通信
  19. Android RecyclerView 瀑布流滑动到最后自动加载更多
  20. C# 连接池开发,多连接高效应用开发,多连接自动维护管理。

热门文章

  1. Jetson Nano系列教程1:烧写系统镜像
  2. AcWing 226. 233矩阵 (矩阵快速幂+线性递推)打卡
  3. 用 Flask 来写个轻博客 (4) — (M)VC_创建数据模型和表
  4. numpy的函数使用
  5. find pattern
  6. 转 Jmeter业务请求比例
  7. JPA单向和双向关系
  8. shell编程:expr的数学运算
  9. springboot Service层单元测试
  10. pytest-调整测试用例的执行顺序