比赛 |
“Asm.Def战记之拉格朗日点”杯 |
评测结果 |
WWWWWTTTTT |
题目名称 |
Asm.Def的打击序列 |
最终得分 |
0 |
用户昵称 |
sro dydxh orz |
运行时间 |
20.004 s |
代码语言 |
C++ |
内存使用 |
0.66 MiB |
提交时间 |
2015-11-04 11:29:58 |
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
int n,m,c,sum,ans,maxn;
struct edge{
int v,y,next;
}e[30100];int lin[300],len;
bool flag[300];
void dfs(int s){
if(s==maxn){
for(int i=1;i<=n;i++){
if(flag[i]==0)
ans+=c;
}
int minn=min(n*c,ans);
cout<<minn<<endl;
}
int st=lin[s];
for(int i=st;i;i=e[i].next){
int poi=e[i].y;
if(flag[poi]==0){
flag[poi]=1;ans+=e[i].v;
dfs(poi);
flag[poi]=0;ans-=e[i].v;
}
}
}
void in(int xx,int yy ,int vv){
e[++len].next=lin[xx];
lin[xx]=len;
e[len].y=yy;
e[len].v=vv;
}
int main(){
freopen("asm_lis.in","r",stdin);
freopen("asm_lis.out","w",stdout);
scanf("%d%d%d",&n,&m,&c);
for(int i=1;i<=m;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
in(x,y,z);
maxn=max(maxn,max(x,y));
}
dfs(1);
return 0;
}