LA 3211 Now or later / 2-SAT

2024-06-15 12:08
文章标签 la sat later 3211

本文主要是介绍LA 3211 Now or later / 2-SAT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

每架飞机只能在E L 这2个时间点降落 每2架并且降落的时间间隔必须大于等于p才算安全 目标使p尽量大

二分时间间隔 做2-SAT 有解说明可行

xi = true 表示选择E  false 选择L

如果 abs(Ei - Ej) < p (p 是当前二分到的值) 那么 1.选择了Ei 必须选择Lj 2.选择了Ej 必须选择Li

建图 上模版

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;const int maxn = 2010;vector <int> G[maxn*2];
int n, T[maxn][2];
bool mark[maxn*2];
int S[maxn*2], c;bool dfs(int x)
{if(mark[x^1])return false;if(mark[x])return true;mark[x] = true;S[c++] = x;for(int i = 0; i < G[x].size(); i++)if(!dfs(G[x][i]))return false;return true;
}
void init()
{for(int i = 0; i < n*2; i++)G[i].clear();memset(mark, 0, sizeof(mark));
}void add_clause(int x, int xval, int y, int yval)
{x = x * 2 + xval;y = y * 2 + yval;G[x^1].push_back(y);G[y^1].push_back(x);
}bool solve()
{for(int i = 0; i < n*2; i += 2){if(!mark[i] && !mark[i+1]){c = 0;if(!dfs(i)){while(c > 0)mark[S[--c]] = false;if(!dfs(i+1))return false;			}}}return true;
}
bool test(int diff)
{init();for(int i = 0; i < n; i++){for(int a = 0; a < 2; a++){for(int j = i+1; j < n; j++){for(int b = 0; b < 2; b++){if(abs(T[i][a] - T[j][b]) < diff)add_clause(i, a^1, j, b^1);}}}}return solve();
}int main()
{while(scanf("%d", &n) == 1){int L = 0, R = 0;for(int i = 0; i < n; i++)for(int a = 0; a < 2; a++){scanf("%d", &T[i][a]);R = max(R, T[i][a]);}while(L < R){int M = L + (R-L+1)/2;if(test(M))L = M;elseR = M-1;}printf("%d\n", L);}return 0;
}


 

这篇关于LA 3211 Now or later / 2-SAT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063412

相关文章

La-Z-Boy 标签制作注意事项

在制作标签之前,供应商需要通过EDI向La-Z-Boy发送提前发货通知(ASN)。ASN中的每个明细行将会至少对应一个运输编号(shipment ID),这个信息将会被体现在运输标签上,和标签上的条形码一起,用于La-Z-Boy收货。 供应商必须确保其装箱单以及发票中的信息能够对应上该批次货物的运输标签以及相关运输编号。供应商可以在La-Z-Boy提供的标签文档中,找到La-Z-Boy EDI部

Android 解决 No static method in class La/a/a/a; or its super classes

错误堆栈: Process: com.chaozh.iReader, PID: 24217java.lang.NoSuchMethodError: No static method getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; in class La/a/a/a; or its super

qnx /var/log/la_gvm.txt 系统日志

qnx /var/log/la_gvm.txt 系统日志 /var/log/la_gvm.txt 是 QNX 操作系统中一个特定的日志文件,通常用于记录与 LA (Loadable Module) 或 GVM (Global Virtual Memory) 相关的信息。这个文件可以帮助系统管理员或开发者诊断与系统内存管理和模块加载相关的问题。 关键点解释: QNX: QNX 是一款实时操作系统

新SAT官方范文得分的分段分析

· 本次官方给出了两道写作新样题,样题的材料文章分别是节选自Paul Bogard于2012.12.21发表在《洛杉矶时报》的“Let There Be Dark.”及Dana Gioia于2005.04.10发表在《纽约时报》的“Why Literature Matters” 。   · 张卉老师结合之前的新SAT改革的说明,认为写作部分的基本出题思路没有大的调整,样题的材料文章都是节选自

SAT改革:SAT官方最新样题解读与备考建议

College Board于2015年1月9日释放新SAT考试最新样题,小编第一时间为各位考生及家长进行新SAT考试的样题解析及备考规划建议,此次小编给出了SAT语法样题一、样题二,阅读第一、二篇,数学,写作样题与范文的详细解读,希望各位考生在2015冲刺高分成绩! 新SAT科目官方样题答案解析新SAT语法新SAT写作与语法能力真题及答案样题1解析 | 样题2解析 | 新SAT语法备考建议新

SAT阅读考试的典型问题及应对策略

SAT阅读部分的测试时间为70分钟,共65道选择题,每道选择题有五项选择,其中只有一项选择为正确答案。结合所阅读的文章,每道选择题以提出问题的形式出现,通常被问到的问题类型为:本篇文章的主要观点及中心主题;在本篇文章中,作者对所论述问题的态度及基本观点;判断所阅读文章的体裁形式,例如:议论、寓言、科技、历史、讽刺、悲剧、喜剧、浪漫、科幻、恐怖、写实及诗歌;作者在文章中所用的修辞手法的目的,在这

如何克服SAT考试阅读难关?

对中国考生而言,SAT阅读部分的考题为最难。SAT阅读由两部分组成,即阅读判断及句子填空,全部为选择题型。SAT阅读的考试时间为70分钟,65道题,每答对一道题得12.3分,总共800分。国内考生若想在SAT阅读中取得理想的成绩,至少要具备两项基本能力,其一,要掌握一万左右的英语词汇量;其二,要有能力根据上下文的关系,准确识别不认识的英语词汇。SAT阅读部分题量大、时间紧,考生要在不超过一分钟

四步走循序渐进克服SAT阅读关

五月份的SAT考试刚刚结束,阅读自然是各个部分中最有难度的,也是最令同学们望而生畏的。但相较于几个月前,同学们纷纷表示,在经过了系统而全面的训练和练习之后,还是可以打倒阅读这一SAT高分路上拦路虎的。 事实上,只要过了四个关卡,同学们就可彻底解决SAT阅读。   第一关:单词关   要读懂一篇文章,无疑最基本的一点是要认识这篇文章的字。如果入目皆是生词,一定会有一种“满纸荒唐言”的感觉――

考生备考分享:SAT阅读提分技巧

不少同学认为阅读是SAT考试中最难的部分,很多人抱怨时间太紧做不完题,也有很多人说做完题了但是正确率很低。在经历了第一次SAT后,我总结了一些的阅读经验,凭借运用这些经验,我的第二次SAT阅读成绩有了非常大的进步。现在将这些经验分享给大家。   1、在做阅读题时,首先应该把文章通读一遍,但这种通读并不是漫无目的的浏览,而是要筛选着读。   在这一遍里,要注意发掘、总结作者的核心思想是什么,

如何跨越SAT阅读词汇的障碍

SAT 阅读词汇对考生的要求一般是在数量上要越多越好,但是对于一些比较常见的词汇,大家还是需要掌握一个记忆原则,就是要精确掌握词汇的含义,这样才能在SAT阅读题目中做到有备无患,不被词汇拦住解题的道路。   由于很多同学把精力和时间都放在快速增加词汇量上,很多考生在记忆SAT阅读词汇的时候都会犯浅尝辄止,不求甚解的毛病,认为只要知道个大概意思,在阅读文章中根据上下文就可以猜到含义了,以至于对