首页 > 其他分享 >D45 2-SAT+二分 UVA1146 Now or later

D45 2-SAT+二分 UVA1146 Now or later

时间:2024-08-17 18:15:58浏览次数:7  
标签:UVA1146 include int later mid dfn low Now SAT

视频链接:

 

D40 2-SAT POJ3683 Priest John's Busiest Day - 董晓 - 博客园 (cnblogs.com)

UVA1146 Now or later - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

// 2-SAT+二分 O(n*n*logt)
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;

const int N=4010;
int n,a[N][2];
vector<int> v[N]; //邻接表
int dfn[N],low[N],scc[N],stk[N],tim,top,cnt;

void tarjan(int x){
  dfn[x]=low[x]=++tim;
  stk[++top]=x;
  for(int y:v[x]){
    if(!dfn[y]){ //若y尚未访问
      tarjan(y);
      low[x]=min(low[x],low[y]);
    }
    else if(!scc[y]) //若y已访问且未处理
      low[x]=min(low[x],dfn[y]);
  }
  
  if(low[x]==dfn[x]){ //若x是SCC的根
    ++cnt;
    for(int y=-1;y!=x;)
      scc[y=stk[top--]]=cnt;
  }
}
bool check(int mid){
  for(int i=1;i<=2*n;++i) v[i].clear();
  memset(dfn,0,sizeof dfn);
  memset(low,0,sizeof low);
  memset(scc,0,sizeof scc);
  tim=top=cnt=0;
  for(int i=1;i<=n;++i){ //建图
    for(int j=i+1;j<=n;++j){
      if(abs(a[i][0]-a[j][0])<mid)
        v[i].push_back(j+n), //i→j'
        v[j].push_back(i+n); //j→i'
      if(abs(a[i][0]-a[j][1])<mid)
        v[i].push_back(j),    //i→j
        v[j+n].push_back(i+n);//j'→i'        
      if(abs(a[i][1]-a[j][0])<mid)
        v[i+n].push_back(j+n),//i'→j'
        v[j].push_back(i);    //j→i
      if(abs(a[i][1]-a[j][1])<mid)
        v[i+n].push_back(j), //i'→j
        v[j+n].push_back(i); //j'→i      
    }
  }
  for(int i=1;i<=2*n;++i) if(!dfn[i])tarjan(i);
  for(int i=1;i<=n;++i)
    if(scc[i]==scc[i+n]) return 0;
  return 1;
}
int main(){
  while(scanf("%d",&n)!=EOF){
    for(int i=1;i<=n;++i)
      scanf("%d%d",&a[i][0],&a[i][1]);
      
    int l=0,r=1e7+1,mid; //二分时间
    while(l+1<r){ 
      mid=(l+r)>>1;
      check(mid)?l=mid:r=mid;
    }
    printf("%d\n",l);   
  }
}

 

标签:UVA1146,include,int,later,mid,dfn,low,Now,SAT
From: https://www.cnblogs.com/dx123/p/18364011

相关文章

  • ChatGPT Is a Knowledgeable but Inexperienced Solver: An Investigation of Commons
    文章目录题目摘要简介什么是常识GPT能否有效回答常识问题?GPT是否知道回答问题的常识性知识?GPT是否具备常识性知识?GPT能否有效利用语境中的常识进行推理?相关工作结论与讨论题目ChatGPT是一个知识渊博但缺乏经验的解决者:对大型语言模型中常识问题的调查论文地......
  • Snowflake与Databricks:科技巨头之间的激烈竞争
      每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https://......
  • M3KE: A Massive Multi-Level Multi-Subject Knowledge Evaluation Benchmark for Chi
    文章目录题目摘要简介相关工作M3KE实验结论题目M3KE:面向中文大型语言模型的海量多层次多学科知识评估基准论文地址:https://arxiv.org/abs/2305.10263项目地址:https://github.com/tjunlp-lab/M3KE摘要    大型语言模型最近在跨任务泛化、指令跟随等多个......
  • known项目工具栏增加的按钮位置
    主要通过actions.txt添加按钮说明然后通过config的AddActions-Utils.GetResource加载。privatestaticvoidAddActions(Assemblyassembly){varcontent=Utils.GetResource(assembly,"actions");if(string.IsNullOrWhiteSpace(content))return;varlines=content.Sp......
  • C# System.DateTime.Now 的一些用法
    C#中的日期处理函数     //2007年4月24日     this.TextBox6.Text=System.DateTime.Now.ToString("D");     //2007-4-24     this.TextBox7.Text=System.DateTime.Now.ToString("d");     //2007年4月24日16:30:15     this.TextBox8......
  • Blazor开发框架Known-V2.0.7
    V2.0.7Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行。官网:http://known.pumantech.comGitee:https://gitee.com/known/KnownGithub:https://github.com/known/Known概述基于C#和Blazor的快速开发框架,开箱即用,跨平台。模块化,单页应用,混合......
  • BugKu CTF Misc:眼见非实 & 啊哒 & ping & Snowfall
    前言BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了各种不同类型的漏洞场景,如Web漏洞、系统......
  • nowcoder Week Contest
    52小红有\(n\)个数字\(a_1,a_2,\dots,a_n\)和一个空字符串\(s\)。现在她需要执行\(n\)次操作:第\(i\)次操作需要将\(a_i\)按照数位上的相对顺序、从左到右的取出并依次插入\(s\)(在\(s\)中不需要连续,但需要保持原有相对顺序)。小红想要构造一个这样的字符串\(s\)......
  • 解决Pytest UnknownMarkWarning: Unknown pytest.mark.single - is this a typo?
    解决PytestUnknownMarkWarning:Unknownpytest.mark.single-isthisatypo?出现截图所示问题前提:1.项目中使用了mark标记:@pytest.mark.single2.同时项目中包含pytest.ini文件并进行了pytest.ini配置运行项目运行时报出截图所示Warning解决方法:切换运行项......
  • ATOZ KC (Knowlege Captalization) 面向无人机研发协同设计解决方案
    在当今数字经济时代,以信息化和工业化深度融合为主线,构建支持新型产业生态和新型制造模式的创新协同研制平台体系,成为支撑企业安全绿色、降本增效和可持续性发展的关键。通过高度及时性和在线性的协同设计,使各个设计员能够基于同一上下文进行产品设计,利于在早期发现各专业之间的......