比赛 “Asm.Def战记之拉格朗日点”杯 评测结果 WWWWWWWWWW
题目名称 Asm.Def的打击序列 最终得分 0
用户昵称 lxtgogogo 运行时间 0.089 s
代码语言 C++ 内存使用 0.59 MiB
提交时间 2015-11-04 11:53:02
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cmath>
  5. #include<iomanip>
  6. #include<cstring>
  7. #include<queue>
  8. #include<ctime>
  9. #include<cstdlib>
  10. using namespace std;
  11.  
  12. int n=0,m=0,c=0;
  13. long long ans=0;
  14. bool f[300]={};
  15.  
  16. struct hehe{
  17. int y,next,v;
  18. };
  19. hehe e[30010];
  20. int linkk[300]={},len=0;
  21.  
  22. void insert(int s,int t,int vv){
  23. e[++len].next=linkk[s];
  24. linkk[s]=len;
  25. e[len].y=t;
  26. e[len].v=vv;
  27. }
  28. void init(){
  29. scanf("%d%d%d",&n,&m,&c);
  30. int s=0,t=0,vv=0;
  31. for(int i=1;i<=m;i++)
  32. {
  33. scanf("%d%d%d",&s,&t,&vv);
  34. insert(s,t,vv);
  35. }
  36. ans=1LL*c*n;
  37. }
  38. void dfs(int k,int last,int num,int sum){
  39. sum+=e[last].v;
  40. if(sum<ans) ans=sum;
  41. if(num==n || f[k]) return ;
  42. f[k]=true;
  43. for(int i=linkk[k];i;i=e[i].next)
  44. {
  45. if(i!=last)
  46. {
  47. dfs(e[i].y,i,num+1,sum-c);//动能弹经过这个点至下一个点
  48. dfs(e[i].y,i,num+1,sum-e[last].v);//动能弹由这个点发射
  49. }
  50. }
  51. }
  52. int main(){
  53. freopen("asm_lis.in","r",stdin);
  54. freopen("asm_lis.out","w",stdout);
  55. init();
  56. if(n<=10)
  57. {
  58. dfs(1,0,0,c*n);
  59. cout<<ans<<endl;
  60. }
  61. else cout<<ans<<endl;
  62. fclose(stdin);fclose(stdout);
  63. return 0;
  64. }