暴力搜索加剪枝~

看的人好多...更新一下:

这道题的正解应该是求最大团之类的...暴力搜索是拿不到分的,我用了好几种奇怪的技巧用爆搜卡掉了。。。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=;
  4. const int inf=1e9;
  5. int g[maxn][maxn];
  6. int c[maxn];
  7. int N,M;
  8. int mincost=1e9;
  9. int cost=;
  10. int flag;
  11. int tle=;
  12. int ans=;
  13. bool visit[maxn];
  14. vector<int> path,tmp;
  15. void dfs (int v,int direction) {
  16. tle++;
  17. if (tle>1e5) return;
  18. if (tmp.size()>path.size()) {
  19. path=tmp;
  20. mincost=cost;
  21. }
  22. else if (tmp.size()==path.size()&&cost<mincost) {
  23. path=tmp;
  24. mincost=cost;
  25. }
  26. if (direction==) {
  27. v++;
  28. while (v<=) {
  29. flag=;
  30. if (c[v]==) {
  31. v++;
  32. continue;
  33. }
  34. for (int j=;j<tmp.size();j++)
  35. if (g[v][tmp[j]]==) {
  36. flag++;
  37. break;
  38. }
  39. if (flag==) {
  40. tmp.push_back(v);
  41. visit[v]=true;
  42. cost+=c[v];
  43. dfs (v,);
  44. tmp.pop_back();
  45. visit[v]=false;
  46. cost-=c[v];
  47. }
  48. v++;
  49. }
  50. }
  51. else {
  52. v--;
  53. while (v>=) {
  54. flag=;
  55. if (c[v]==) {
  56. v--;
  57. continue;
  58. }
  59. for (int j=;j<tmp.size();j++)
  60. if (g[v][tmp[j]]==) {
  61. flag++;
  62. break;
  63. }
  64. if (flag==) {
  65. tmp.push_back(v);
  66. visit[v]=true;
  67. cost+=c[v];
  68. dfs (v,);
  69. tmp.pop_back();
  70. visit[v]=false;
  71. cost-=c[v];
  72. }
  73. v--;
  74. }
  75. }
  76. }
  77. int main () {
  78. scanf ("%d %d",&M,&N);
  79. int u,v;
  80. for (int i=;i<M;i++)
  81. scanf ("%d %d",&u,&v),g[u][v]=g[v][u]=;
  82. for (int i=;i<=N;i++) {
  83. scanf ("%d %d",&u,&v);
  84. c[u]=v;
  85. if (v>) ans++;
  86. }
  87. if (ans!=) dfs (,);
  88. else dfs (,);
  89. printf ("%d\n",path.size());
  90. sort (path.begin(),path.end());
  91. for (int i=;i<path.size();i++) {
  92. if (i!=) printf (" ");
  93. printf ("%03d",path[i]);
  94. }
  95. printf ("\n%d",mincost);
  96. return ;
  97. }

PAT T1021 Safe Fruit的更多相关文章

  1. 《转载》PAT 习题

    博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...

  2. Warning: strftime(): It is not safe to rely on the system's timezone settings.

    当运行程序时,会出现如下警告: Warning: strftime(): It is not safe to rely on the system's timezone settings. You a ...

  3. The Safe Navigation Operator (&.) in Ruby

    The most interesting addition to Ruby 2.3.0 is the Safe Navigation Operator(&.). A similar opera ...

  4. 【转】php Thread Safe(线程安全)和None Thread Safe(NTS,非 线程安全)之分

    Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍. ...

  5. PAT Judge

    原题连接:https://pta.patest.cn/pta/test/16/exam/4/question/677 题目如下: The ranklist of PAT is generated fr ...

  6. PAT/字符串处理习题集(二)

    B1024. 科学计数法 (20) Description: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+ ...

  7. PAT 1041. 考试座位号(15)

    每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...

  8. PAT 1040. 有几个PAT(25)

    字符串APPAPT中包含了两个单词"PAT",其中第一个PAT是第2位(P),第4位(A),第6位(T):第二个PAT是第3位(P),第4位(A),第6位(T). 现给定字符串,问 ...

  9. PAT 1032. 挖掘机技术哪家强(20)

    为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第1行给出不超过105的正整数N,即参赛人数.随后N行,每行给出一位 ...

随机推荐

  1. React的React.createRef()/forwardRef()源码解析(三)

    1.refs三种使用用法 1.字符串 1.1 dom节点上使用 获取真实的dom节点 //使用步骤: 1. <input ref="stringRef" /> 2. t ...

  2. JAXB "有两个名为 "**" 的属性,类的两个属性具有相同名称 "**""解决方案

    这里说的名称冲突指的是: JavaBean 属性名称与字段名称之间的名称冲突.在pojo类中的setter和getter方法会导致运行报错:Exception in thread "main ...

  3. 并发编程之CyclicBarrier

    栅栏类似于闭锁,它能阻塞一组线程直到某个事件的发生.栅栏与闭锁的关键区别在于,所有的线程必须同时到达栅栏位置,才能继续执行.闭锁用于等待事件,而栅栏用于等待其他线程. CyclicBarrier可以使 ...

  4. 删除文件时提示,你需来自SYSTEM的权限

    1. 提示如下 2. 对要删除的文件操作如下 2.1 为删除的文件添加本地账户 2.2 提示如下,多点几次继续就好 2.3 给本地账户添加完全控制权限

  5. LoadRunner通过webservice协议调用WSDL接口时,返回值不正确

    有可能是某些传参空的值导致的. 解决办法:注释掉空值传参.或者将其值转变为true ”ProductIDSpecified=true“,

  6. 五分钟学Java:打印Java数组最优雅的方式是什么?

    在逛 Stack Overflow 的时候,发现了一些访问量像‎安第斯山一样高的问题,比如说这个:打印 Java 数组最优雅的方式是什么?访问量足足有 220W+,想不到啊,这么简单的问题竟然有这么多 ...

  7. socketserver 模块简介

    一.socketserver模块简介 socketserver模块简化了网络编程,模块下有五个服务类:BaseServer.TCPServer.UDPServer.UnixStreamServer.U ...

  8. mybatis中条件查询大于等于和小于等于写法

    原符号 < <= > >= & ' "替换符号 < <= > >= & &apos; " createDat ...

  9. HDU-1702-ACboy needs your help again!(Stack)

    队列和栈的判空都可以用empty #include <bits/stdc++.h> using namespace std; string oper,stru; int T,M,num; ...

  10. Spring Boot 文件上传简易教程

    上传文件是我们日常使用最为广泛的功能之一,比如App端上传头像.本章演示如何从客户端上传到 Spring Boot 开发的 Api中. 本项目源码 github 下载 1 新建 Spring Boot ...