比赛 |
东方版NOIP模拟赛 |
评测结果 |
AAATTTTATTAAAAEEEEEE |
题目名称 |
Yuyuko |
最终得分 |
40 |
用户昵称 |
Eugene |
运行时间 |
21.188 s |
代码语言 |
C++ |
内存使用 |
95.79 MiB |
提交时间 |
2015-10-28 21:07:44 |
显示代码纯文本
#include<cstdio>
#include<vector>
using namespace std;
struct motherfucker
{
int next;
int next_v;
}t;
vector<motherfucker>p[10000];
int ans=0x7fffffff;
bool vis[10000][10000];
void dfs(int pre,int x,int sum)
{
int i,next,next_v;
if(x==1&&pre!=0)
{
if(ans>sum)ans=sum;
return ;
}
for(i=0;i<p[x].size();i++)
{
next=p[x][i].next;
next_v=p[x][i].next_v;
if(!vis[x][next]&&!vis[next][x])
{
vis[x][next]=1;
vis[next][x]=1;
dfs(x,next,sum+next_v);
vis[x][next]=0;
vis[next][x]=0;
}
}
}
int main()
{
freopen("zaw.in","r",stdin);
freopen("zaw.out","w",stdout);
int n,m,x,y,v1,v2,i;
scanf("%d %d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d %d %d %d",&x,&y,&v1,&v2);
t.next=y;
t.next_v=v1;
p[x].push_back(t);
t.next=x;
t.next_v=v2;
p[y].push_back(t);
}
dfs(0,1,0);
if(ans==0x7fffffff){printf("-1");return 0;}
printf("%d",ans);
return 0;
}