https://www.nowcoder.com/acm/contest/67/E

思路:

dfs

代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define pb push_back
  5. #define mp make_pair
  6. #define pii pair<int,int>
  7. #define mem(a,b) memset(a,b,sizeof(a))
  8.  
  9. const int N=;
  10. const int INF=0x3f3f3f3f;
  11. int cnt=;
  12. int head[N];
  13. int cost[N];
  14. int d[N];
  15. bool used[N];
  16. bool vis[N];
  17. struct edge{
  18. int to,w,next;
  19. }edge[N];
  20. void add_edge(int u,int v,int w){
  21. edge[cnt].to=v;
  22. edge[cnt].w=w;
  23. edge[cnt].next=head[u];
  24. head[u]=cnt++;
  25. }
  26. int ans=INF,c,k;
  27. void dfs(int u){
  28. if(u==c){
  29. int tot=;
  30. for(int i=;i<=k;i++)if(used[i])tot+=cost[i];
  31. ans=min(ans,tot);
  32. }else{
  33. for(int i=head[u];~i;i=edge[i].next){
  34. if(!vis[edge[i].to])
  35. {
  36. bool t=used[edge[i].w];
  37. used[edge[i].w]=true;
  38. vis[edge[i].to]=true;
  39. dfs(edge[i].to);
  40. vis[edge[i].to]=false;
  41. used[edge[i].w]=t;
  42. }
  43. }
  44. }
  45. }
  46. int main(){
  47. ios::sync_with_stdio(false);
  48. cin.tie();
  49. int n,m,e,a,b,u,v;
  50. while(cin>>n>>m>>k>>c){
  51. mem(head,-);
  52. mem(vis,false);
  53. mem(used,false);
  54. cnt=;
  55. while(m--){
  56. cin>>u>>v>>e;
  57. add_edge(u,v,e);
  58. }
  59. for(int i=;i<k;i++){
  60. cin>>a>>b;
  61. cost[a]=b;
  62. }
  63. ans=INF;
  64. dfs();
  65. cout<<ans<<endl;
  66. }
  67. return ;
  68. }
  69. /*
  70. 6 7 5 6
  71. 2 3 2
  72. 4 3 3
  73. 1 2 1
  74. 1 5 4
  75. 4 6 5
  76. 1 4 2
  77. 5 6 3
  78. 1 100
  79. 3 422
  80. 2 210
  81. 5 107
  82. 4 38
  83. */

2018年全国多校算法寒假训练营练习比赛(第一场)E 恋与程序员的更多相关文章

  1. 2018年全国多校算法寒假训练营练习比赛(第四场)B:道路建设

    传送门:https://www.nowcoder.net/acm/contest/76/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言131072K 64b ...

  2. 2018年全国多校算法寒假训练营练习比赛(第四场)F:Call to your teacher

    传送门:https://www.nowcoder.net/acm/contest/76/F 题目描述 从实验室出来后,你忽然发现你居然把自己的电脑落在了实验室里,但是实验室的老师已经把大门锁上了.更糟 ...

  3. 牛客网-2018年全国多校算法寒假训练营练习比赛(第四场)-A

    解题思路:二分图的最大匹配,但这题是所有点都遍历一遍,所以答案/2: 代码: #include<iostream> #include<algorithm> #include&l ...

  4. 2018年全国多校算法寒假训练营练习比赛(第一场)闯关的lulu

    闯关的lulu 链接:https://www.nowcoder.com/acm/contest/67/J 来源:牛客网 题目描述 勇者lulu某天进入了一个高度10,000,000层的闯关塔,在塔里每 ...

  5. 2018年全国多校算法寒假训练营练习比赛(第一场)D N阶汉诺塔变形

    https://www.nowcoder.com/acm/contest/67/D 思路: 先手动模拟一下过程,以下是模拟过程,按顺序表示第几步需要移动的盘标号 1 1 2 1 1 2 1 1 3 1 ...

  6. 2018年全国多校算法寒假训练营练习比赛(第一场)G 圆圈

    https://www.nowcoder.com/acm/contest/67/G 思路: 分形. 记录中间左边点的坐标,然后推出另外3个点的坐标,递归到最简单的情况. 代码: #include< ...

  7. 2018年全国多校算法寒假训练营练习比赛(第一场)C 六子冲

    https://www.nowcoder.com/acm/contest/67/C 思路: 模拟. 代码: #include<bits/stdc++.h> using namespace ...

  8. 2018年全国多校算法寒假训练营练习比赛(第二场)B - TaoTao要吃鸡

    链接:https://www.nowcoder.com/acm/contest/74/B来源:牛客网 题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求 ...

  9. 2018年全国多校算法寒假训练营练习比赛(第二场)F - 德玛西亚万岁

    链接:https://www.nowcoder.com/acm/contest/74/F来源:牛客网 题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀 ...

随机推荐

  1. js实现网页tab选项卡切换效果

    <style> *{margin:0;padding:0;} body{font-size:14px;font-family:"Microsoft YaHei";} u ...

  2. Web前端开发推荐阅读书籍、学习课程下载

    转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学 ...

  3. zw版【转发·台湾nvp系列Delphi例程】HALCON Regiongrowing

    zw版[转发·台湾nvp系列Delphi例程]HALCON Regiongrowing procedure TForm1.Button1Click(Sender: TObject);var img : ...

  4. IO(基础知识)

        IO流类的构造方法决定是输入流还是输出流.输入流连接一个文件,它会将文件中的内容读到流里面,read方法是将流里面的内容     往外读.输出流连接一个文件,它的write方法,是将内存中的内 ...

  5. php 写内容到文件,把日志写到log文件

    php 写内容到文件,把日志写到log文件 <?php header("Content-type: text/html; charset=utf-8"); /******** ...

  6. MongoDB ----基于分布式文件存储的数据库

    参考: http://www.cnblogs.com/huangxincheng/category/355399.html http://www.cnblogs.com/daizhj/category ...

  7. Python3 itchat微信获取好友、公众号、群聊的基础信息

    Python3 itchat微信获取好友.公众号.群聊的基础信息 一.简介 安装 itchat pip install itchat 使用个人微信的过程当中主要有三种账号需要获取,分别为: 好友 公众 ...

  8. web应用下的安全问题以及tomcat/nginx对应解决方法(持续更新、亲测可解决问题)

    最近一券商那边扫描反馈了下面几个非业务型安全漏洞,要求解决,如下: XSS 自己写个脚本response的时候对特殊字符进行了处理,或者网上搜下一堆(不要忘了回车.换行). HTML form wit ...

  9. centos+Jenkins+maven搭建持续集成

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成 ...

  10. Python3基础 while 阶乘

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...