这题怎么这么水~~~本来以为挺难的一道题,结果随便一写就过了。。。本来还不知道损坏的牛棚算不算,结果不明不白就过了。。。

题干:

  1. 农夫John的农场遭受了一场地震.有一些牛棚遭到了损坏,但幸运地,所有牛棚间的路经都还能使用. FJ的农场有P( <= P <= ,)个牛棚,编号1..P. C( <= C <= ,)条双向路经联接这些牛棚,编号为1..C. 路经i连接牛棚a_ib_i ( <= a_i<= P; <= b_i <= P).路经可能连接a_i到它自己,两个牛棚之间可能有多条路经.农庄在编号为1的牛棚. N ( <= N <= P)头在不同牛棚的牛通过手机短信report_j( <= report_j <= P)告诉FJ它们的牛棚(report_j)没有损坏,但是它们无法通过路经和没有损坏的牛棚回到到农场. FJ接到所有短信之后,找出最小的不可能回到农庄的牛棚数目.这个数目包括损坏的牛棚. 注意:前50次提交将提供在一些测试数据上的运行结果.
  2. 输入输出格式
  3. 输入格式:
  4.  
  5. * Line : Three space-separated integers: P, C, and N
  6.  
  7. * Lines ..C+: Line i+ describes cowpath i with two integers: a_i and b_i
  8.  
  9. * Lines C+..C+N+: Line C++j contains a single integer: report_j
  10.  
  11. 输出格式:
  12.  
  13. * Line : A single integer that is the minimum count of pastures from which a cow can not return to the barn (including the damaged pastures themselves)
  14.  
  15. 输入输出样例
  16. 输入样例#: 复制
  17.  
  18. 输出样例#: 复制

代码:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<queue>
  5. #include<algorithm>
  6. #include<cstring>
  7. using namespace std;
  8. #define duke(i,a,n) for(int i = a;i <= n;i++)
  9. #define lv(i,a,n) for(int i = a;i >= n;i--)
  10. #define clean(a) memset(a,0,sizeof(a))
  11. const int INF = << ;
  12. typedef long long ll;
  13. typedef double db;
  14. template <class T>
  15. void read(T &x)
  16. {
  17. char c;
  18. bool op = ;
  19. while(c = getchar(), c < '' || c > '')
  20. if(c == '-') op = ;
  21. x = c - '';
  22. while(c = getchar(), c >= '' && c <= '')
  23. x = x * + c - '';
  24. if(op) x = -x;
  25. }
  26. template <class T>
  27. void write(T x)
  28. {
  29. if(x < ) putchar('-'), x = -x;
  30. if(x >= ) write(x / );
  31. putchar('' + x % );
  32. }
  33. int p,c,n,lst[],len = ;
  34. struct node
  35. {
  36. int l,r,nxt;
  37. }a[];
  38. void add(int x,int y)
  39. {
  40. a[++len].l = x;
  41. a[len].r = y;
  42. a[len].nxt = lst[x];
  43. lst[x] = len;
  44. // cout<<len<<" "<<a[len].l<<" "<<a[len].r<<endl;
  45. }
  46. int vis[];
  47. void dfs(int x)
  48. {
  49. if(vis[x] == - || vis[x] == )
  50. return;
  51. vis[x] = ;
  52. for(int k = lst[x];k;k = a[k].nxt)
  53. {
  54. int y = a[k].r;
  55. if(vis[y] == )
  56. dfs(y);
  57. }
  58. }
  59. int main()
  60. {
  61. clean(vis);
  62. read(p);read(c);read(n);
  63. duke(i,,c)
  64. {
  65. int g,h;
  66. read(g);
  67. read(h);
  68. add(g,h);
  69. add(h,g);
  70. }
  71. duke(i,,n)
  72. {
  73. int k;
  74. read(k);
  75. vis[k] = -;
  76. for(int j = lst[k];j;j = a[j].nxt)
  77. {
  78. int y = a[j].r;
  79. vis[y] = -;
  80. }
  81. }
  82. dfs();
  83. int tot = ;
  84. duke(i,,p)
  85. {
  86. if(vis[i] == || vis[i] == -)
  87. tot++;
  88. }
  89. write(tot);
  90. return ;
  91. }

P2932 [USACO09JAN]地震造成的破坏Earthquake Damage 爆搜的更多相关文章

  1. 洛谷 P2932 [USACO09JAN]地震造成的破坏Earthquake Damage

    P2932 [USACO09JAN]地震造成的破坏Earthquake Damage 题目描述 Wisconsin has had an earthquake that has struck Farm ...

  2. bzoj 1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害

    1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害 Description Farmer John的农场里有P个牧场,有C条无向道路连接着他们,第i条道路连接着 ...

  3. 【bzoj1585】[Usaco2009 Mar]Earthquake Damage 2 地震伤害 网络流最小割

    题目描述 Farmer John的农场里有P个牧场,有C条无向道路连接着他们,第i条道路连接着两个牧场Ai和Bi,注意可能有很多条道路连接着相同的Ai和Bi,并且Ai有可能和Bi相等.Farmer J ...

  4. BZOJ 1585: Earthquake Damage 2 地震伤害 网络流 + 最小割

    Description Farmer John的农场里有P个牧场,有C条无向道路连接着他们,第i条道路连接着两个牧场Ai和Bi,注意可能有很多条道路连接着相同的Ai和Bi,并且Ai有可能和Bi相等.F ...

  5. [USACO09JAN]Earthquake Damage

    嘟嘟嘟 刚开始因为没看到只能走没有损坏的农场,磨叽了20多分钟……不管了,写题解吧. 首先如果一个点不能到达原点,那么和他相邻的点也不能到达原点,所以刚开始我们把不能走的点和他相邻的点都打上标记,然后 ...

  6. 【BZOJ】1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害

    [题意]给定无向图,现在可能有一些点已经被删除,只给出信息是c个点未被删除且不能到达结点1,求最少的删除点个数. [算法]最小割 [题解]本题和1的区别是:1求的是最少的不能到达1的结点数,那么就把损 ...

  7. BZOJ1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害

    n<=3000个点m<=20000条无向边的图,有p<=n个出发点,每个出发点都不可拆,现拆一些点使每个出发点都不能到达点1,求最小点数. 简单的最小割.每个点拆成两个x和y,无向边 ...

  8. bzoj 1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害【最小割】

    枚举建图.jpg 一开始建的图挂了,于是枚举了几种建图方式-- 因为要删点,所以拆点,连接(i,i',1),对于原来图上的边(u,v),连接(u',v,inf),(v',u,inf),然后连接(s,i ...

  9. FZU 1844 Earthquake Damage(最大流最小割)

    Problem Description Open Source Tools help earthquake researchers stay a step ahead. Many geological ...

随机推荐

  1. elasticsearch——海量文档高性能索引系统

    elasticsearch elasticsearch是一个高性能高扩展性的索引系统,底层基于apache lucene. 可结合kibana工具进行可视化. 概念: index 索引: 类似SQL中 ...

  2. SQL Server建库-建表-建约束

    ----------------------------------------SQL Server建库-建表-建约束创建School数据库------------------------------ ...

  3. 体验SqlServer Express 2014

    想使用SQLServer Express记录一些数据,但使用起来并不令人愉快.SQLServer Express是一个免费的可用数据库,但似乎设置了一些门槛,多少显得并不真心实意.抛开版本(技术)限制 ...

  4. 10.3 io流 正篇 FileReader FileWriter读写代码

    一.FileWriter 小节: 1)FileWriter fw = new FileWriter("a.txt",true);//表示追加写入,默认是false.正常情况:执行多 ...

  5. element select下拉框绑定number类型

    vue 开发中element-ui库的switch开关绑定number类型数据不成功问题 解决方法

  6. sysbench基准测试工具

    一.简介SysBench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.当前功能允许测试的系统参数有:file I/O performance (文件I ...

  7. Codeforces 919C - Seat Arrangements

    传送门:http://codeforces.com/contest/919/problem/C 给出一张n×m的座位表(有已占座位和空座位),请选择同一行(或列)内连续的k个座位.求选择的方法数. H ...

  8. Navicat premium连接Oracle报ORA-12514错误

    1:ORA-12514 原因:Service Name/SID中的值填的有问题,默认的是ORCL,这个值如果在安装Oracle的时候填的不是ORCL,那就会出现这个错误 解决方法:找到Oracle安装 ...

  9. Git学习总结(13)——使用git.oschina作为自己的源代码在线管理库

    工作有几年了,期间积累了很多的代码片段,一直想找个存放的地方,方便随时的取用.以前可能是放在自己电脑的硬盘中,但毕竟这样使用起来还是有很多不便. 下面通过码云来说明 一下设置过程.其实,码云和GitH ...

  10. JPA学习(基于hibernate)

    参考博客:https://blog.csdn.net/baidu_37107022/article/details/76572195 常用注解: https://blog.csdn.net/eastl ...