| 比赛 |
寒假集训5 |
评测结果 |
WAATTTTTTTTTTTTTTTTT |
| 题目名称 |
魔法森林 |
最终得分 |
10 |
| 用户昵称 |
ChenBp |
运行时间 |
35.743 s |
| 代码语言 |
C++ |
内存使用 |
5.21 MiB |
| 提交时间 |
2026-03-01 11:31:26 |
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
const int N=1e5+5;
typedef long long ll;
int hd[N],nxt[N],to[N],a[N],b[N],num=1;
void add(int u,int v,int va,int vb) {
num++;
to[num]=v;
a[num]=va;
b[num]=vb;
nxt[num]=hd[u];
hd[u]=num;
}
int n,m;
int ans=0x7f7f7f7f;
bool vis[N];
void dfs(int u,int va,int vb){
if(u==n){
ans=min(ans,va+vb);
return;
}
for(int i=hd[u];i;i=nxt[i]){
if(vis[i]) continue;
int v=to[i];
vis[i]=1;
dfs(v,max(va,a[i]),max(vb,b[i]));
vis[i]=0;
}
}
int main(){
freopen("magicalforest.in","r",stdin);
freopen("magicalforest.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v,va,vb;
cin>>u>>v>>va>>vb;
add(u,v,va,vb);
add(v,u,va,vb);
}
dfs(1,0,0);
cout<<ans;
return 0;
}