1. /*
  2. 裸地2-SAT问题 关键是模型转化
  3. 最小的最大 显然二分 关键是Judge的时候怎么判断
  4. 每个航班是早是晚直接影响判断
  5. 早晚只能选一个 如果我们定义bool变量xi表示 i航班是否早到
  6. 每个航班虚拟出两个点2*i 2*i+1 分别表示是否早到
  7. 然后就可以假设某个航班早到然后推导出一定连得某些边
  8. 然后就开始选点 尝试这个点选不选 看看最后是否合法
  9. */
  10. #include<iostream>
  11. #include<cstdio>
  12. #include<cstring>
  13. #include<vector>
  14. #define maxn 4400
  15. using namespace std;
  16. int n,l,r,g[maxn][],f[maxn],ans,c,s[maxn];
  17. vector<int>G[maxn];
  18. int Abs(int a)
  19. {
  20. return a<?-a:a;
  21. }
  22. void Add(int x,int y)
  23. {
  24. G[x^].push_back(y);G[y^].push_back(x);
  25. }
  26. bool Dfs(int x)
  27. {
  28. if(f[x^])return ;if(f[x])return ;
  29. f[x]=;s[c++]=x;
  30. for(int i=;i<G[x].size();i++)
  31. if(!Dfs(G[x][i]))return ;
  32. return ;
  33. }
  34. bool Solve()//选点
  35. {
  36. for(int i=;i<n*;i+=)
  37. {
  38. if(f[i]||f[i+])continue;c=;//表示同一航班的两个点只选一个
  39. if(!Dfs(i))
  40. {
  41. while(c>)f[s[--c]]=;//撤销
  42. if(!Dfs(i+))return ;
  43. }
  44. }
  45. return ;
  46. }
  47. bool Judge(int x)
  48. {
  49. for(int i=;i<n*;i++)G[i].clear();
  50. memset(f,,sizeof(f));
  51. for(int i=;i<n;i++)for(int a=;a<;a++)
  52. for(int j=i+;j<n;j++)for(int b=;b<;b++)
  53. if(Abs(g[i][a]-g[j][b])<x)
  54. //i*2+a 不能和 j*2+b 同时选 那就i*2+a连j*2+(b^1) j*2+b连i*2+(a^1)
  55. Add(i*+(a^),j*+(b^));
  56. return Solve();
  57. }
  58. int main()
  59. {
  60. while(scanf("%d",&n)==&&n)
  61. {
  62. l=r=ans=;
  63. for(int i=;i<n;i++)
  64. for(int j=;j<;j++)
  65. {
  66. scanf("%d",&g[i][j]);
  67. r=max(r,g[i][j]);
  68. }
  69. while(l<=r)
  70. {
  71. int mid=(l+r)/;
  72. if(Judge(mid))
  73. {
  74. ans=mid;l=mid+;
  75. }
  76. else r=mid-;
  77. }
  78. printf("%d\n",ans);
  79. }
  80. return ;
  81. }

uva 1146 Now or late (暴力2-SAT)的更多相关文章

  1. UVA.129 Krypton Factor (搜索+暴力)

    UVA.129 Krypton Factor (搜索+暴力) 题意分析 搜索的策略是:优先找长串,若长串不合法,则回溯,继续找到合法串,直到找到所求合法串的编号,输出即可. 注意的地方就是合法串的判断 ...

  2. UVA.10986 Fractions Again (经典暴力)

    UVA.10986 Fractions Again (经典暴力) 题意分析 同样只枚举1个,根据条件算出另外一个. 代码总览 #include <iostream> #include &l ...

  3. UVA 270 Lining Up 共线点 暴力

    题意:给出几个点的位置,问一条直线最多能连过几个点. 只要枚举每两个点组成的直线,然后找直线上的点数,更新最大值即可. 我这样做过于暴力,2.7s让人心惊肉跳...应该还能继续剪枝的,同一直线找过之后 ...

  4. uva 10825 - Anagram and Multiplication(暴力)

    题目链接:uva 10825 - Anagram and Multiplication 题目大意:给出m和n,要求找一个m位的n进制数,要求说该数乘以2~m中的随意一个数的结果是原先数各个位上数值的一 ...

  5. UVa 11210 Chinese Mahjong (暴力,递归寻找)

    题意:这个题意.有点麻烦,就是说给定13张牌,让你求能“听”的牌.(具体的见原题) 原题链接: https://uva.onlinejudge.org/index.php?option=com_onl ...

  6. UVa 11059 最大乘积 java 暴力破解

    题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...

  7. UVa 817 According to Bartjens (暴力,DFS)

    题意:给出一个数字组成的字符串,然后在字符串内添加三种运算符号 * + - ,要求输出所有添加运算符并运算后结果等于2000的式子. 所有数字不能有前导0, 且式子必须是合法的. 析:这个题很明显的暴 ...

  8. UVA 1146 Now or later

    The Terminal Radar Approach CONtrol (TRACON) controls aircraft approaching and departing when they a ...

  9. UVA 10976 分数拆分【暴力】

    题目链接:https://vjudge.net/contest/210334#problem/C 题目大意: It is easy to see that for every fraction in ...

随机推荐

  1. Python自动化运维之28、Django(二)

    一.FORM 1.概述 django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.for ...

  2. 递归删除.DS_Store文件

    删除svn文件 sudo find . -name ".DS_Store" -exec rm -r {} \; sudo find . -name ".git" ...

  3. 使用ToUpperInvariant避免使用ToUpper

    ToUpperInvariant使用不依赖于区域性进行转换,而ToUpper则使用了当前线程的CultureInfo,进行转换,所以性能会有所影响,以下为测试: [Test] public void ...

  4. SharePoint 2013 更新多个用户字段(Person or Group)

    有时我们需要更新一个用户到Person or Group类型的字段, 当然这个属性允许设置多个用户, 要如何才能添加新的用户到该字段,同时还不影响原始存在的值. 这里我们需要了解 SPFieldUse ...

  5. Expression Trees

    Expression Trees 只是想简单说下表达式树 - Expression Trees 目录 简介 Lambda 表达式创建表达式树 API 创建表达式树 解析表达式树 表达式树的永久性 编译 ...

  6. Python3 time()

    在<Python基础教程(第二版)>一书中, if time % 60 == 0 : print 'on the hour! '在3.3.2版本中显示错误.于是自己查了一下帮助文档,也在网 ...

  7. 会声会影X6-高级运动等效果的练习实践-与您分享...

          视频片说明:我在学习X6的视频教程后,做了针对性练习与实 践,我所用的素材取于网络世界-百度下载,视频中的效果有,高级运动;平移缩放,分屏效果,<运用:关键帧,缩放,旋转,加相框,倒 ...

  8. mysq 日期相减

    mysql> desc test200; +---------------+----------+------+-----+---------+-------+ | Field | Type | ...

  9. COJ 0970 WZJ的数据结构(负三十)树分治

    WZJ的数据结构(负三十) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给你一棵N个点的无根树,点和边上均有权值.请你设计 ...

  10. vijos1514天才的记忆

    P1514天才的记忆 背景 神仙飞啊飞 描述 从前有个人名叫W and N and B,他有着天才般的记忆力,他珍藏了许多许多的宝藏.在他离世之后留给后人一个难题(专门考验记忆力的啊!),如果谁能轻松 ...