POJ 3683 Priest John's Busiest Day(2
POJ 3683 Priest John's Busiest Day(2-SAT输出方案) http://poj.org/problem?id=3683 题意: 有N对新人举行婚,且每次婚需要持续d时间,从s时间到t时间之间举行且只能选择s到sd时间或t-d到t时间这两个完整的时间段举行.现在只有一个神父,问他有没有可能参加所
POJ 3683 Priest John's Busiest Day(2-SAT输出方案)
http://poj.org/problem?id=3683
题意:
有N对新人举行婚礼,且每次婚礼需要持续d时间,从s时间到t时间之间举行且只能选择s到s+d时间或t-d到t时间这两个完整的时间段举行.现在只有一个神父,问他有没有可能参加所有新人的婚礼(待完整段时间且任意两对新人的婚礼时间不重叠)? 输出一个可行的方案.
分析:
每对新人的婚礼时间只有两种选择,直接就可以转化为2-SAT问题.其中如果对于第i个婚礼与第j个婚礼来说:
假设i先办的时间区间为[a,b]而j后办的时间区间为[c,d],如何判断[a,b]与[c,d]是否发生了冲突呢?(边界相交不算).
只有下面两种情况下区间[s1,e1]与区间[s2,e2]才规范相交.
1. s1
2. s2
仔细一看上面两种情况是相同的,只要相交的两个区间的e1 e2 > s1 s2 即可保证这两个区间相交.
(仔细想想上面情况)
然后对于冲突的每对新人添加边即可.
AC代码:
#include<cstdio> #include<cstring> #include<vector> using namespace std; const int maxn=1000+10; struct Time { int s,e,d;//开始,结束,持续 Time(){} Time(int s,int e,int d):s(s),e(e),d(d){} }t[maxn]; struct TwoSAT { int n; vector<int> G[maxn*2]; int S[maxn*2],c; bool mark[maxn*2]; 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 if return false true void init n this->n=n; for(int i=0;i<n g memset void add_clause x xval y yval bool solve for i="0;i<2*n;i+=2)if(!mark[i]" c="0;" if while>0) mark[S[--c]]=false; if(!dfs(i+1)) return false; } } return true; } }TS; int main() { int n; scanf("%d",&n); for(int i=0;i<n int sh scanf t ts.init for i="0;i<n;i++)" j="i+1;j<n;j++)" if ts.add_clause printf else return><br> <br> </n></n></g></int></vector></cstring></cstdio>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

华硕b450是一块非常优秀的主板,有着众多的用户,如果大家想要在这款主板之上安装win11系统,需要开启tpm2.0和安全启动选项,很多朋友可能不知道怎么开启,下面小编就跟大家来看看如何进行操作吧。华硕b450怎么安装win11:1、首先我们重启系统,使用“F2”进入bios设置,然后点击右下角“高级模式”进入。2、然后在“启动”选项下进入“安全启动”3、接着在“操作系统类型”右侧选择“WindowsUEFI模式”4、设置完成后点击右上角“search”进入搜索。5、然后在其中搜索“PTT”并点

BITGet 是一款加密货币交易所,提供各种交易服务,包括现货交易、合约交易和衍生品。该交易所成立于 2018 年,总部位于新加坡,致力于为用户提供安全可靠的交易平台。BITGet 提供多种交易对,包括 BTC/USDT、ETH/USDT 和 XRP/USDT。此外,该交易所还在安全性和流动性方面享有盛誉,并提供多种功能,如高级订单类型、杠杆交易和 24/7 全天候客户支持。

什么是AMP币?AMP代币是由Synereo团队于2015年创立,作为Synereo平台的主要交易货币。AMP代币旨在通过多种功能和用途,为用户提供更好的数字经济体验。AMP代币的用途AMP代币在Synereo平台中拥有多重角色和功能。首先,作为平台的加密货币奖励系统的一部分,用户能够通过分享和推广内容来获得AMP奖励,这一机制鼓励用户更积极地参与平台的活动。AMP代币还可用于在Synereo平台上推广和传播内容。用户可以通过使用AMP代币提升他们的内容在平台上的曝光率,以吸引更多观众来查看和分

本文对比评测了OKX、币安、Gate.io、火币、Kraken、Coinbase、KuCoin、Crypto.com和Bitstamp九大主流加密货币交易所。文章从技术优势、安全体系、产品创新、全球化布局、合规进展、费用、用户体验、生态系统、市场地位等多个维度,对各交易所进行了详细的分析和比较,旨在帮助用户选择最适合自身需求的平台。 OKX以其分布式架构和衍生品交易闻名;币安则凭借全球最大的交易量和丰富的生态系统占据领先地位;Gate.io主打币种覆盖广和低费率;火币注重本地化服务和技术实力;

2025年虚拟加密货币App交易平台前十名分别为:1. OKX;2. Binance;3. Gate.io;4. Kraken;5. Coinbase;6. Huobi;7. KuCoin;8. Crypto.com;9. Bitfinex;10. Gemini。 选择平台需考虑:1. 安全性;2. 交易费用;3. 交易品种;4. 用户体验;5. 客服支持。

比特币价格历史上经历多次剧烈波动,多次暴跌事件导致投资者损失惨重。本文将回顾比特币自2011年以来多次重大暴跌事件,包括2011年因黑客攻击导致的85%跌幅,2013年、2014年Mt.Gox事件引发的暴跌,以及2017-2018年、2020年疫情期间、2021年中国加密货币禁令和美联储加息等因素造成的多次大幅下跌,以及2022年LUNA/UST崩盘导致的66%跌幅,甚至2025年2月单日6.83%的暴跌,损失高达22.1亿美元。 了解这些历史事件,有助于投资者更好地理解比特币市场的风险,并做

虚拟货币市场不断发展,预计未来几年将出现令人振奋的增长。在2025年,一些加密货币预计将脱颖而出,成为该领域最具潜力的投资。本文分析了2025年最具潜力的一些虚拟货币,涵盖了它们的独特功能、增长潜力和影响未来的可能性。这些货币包括以太坊、比特币、卡尔达诺、波卡和币安币,它们在去中心化金融、智能合约和区块链技术的发展中发挥着关键作用。了解这些虚拟货币的潜力,投资者可以做好准备把握2025年虚拟货币市场带来的机会。

币圈交易是目前热门的投资方式,选择合适的平台至关重要。本文列出了业内最受认可的前 10 家币圈交易平台,为投资者提供了一个全面参考指南。这些平台以卓越的安全性、便捷的交易功能和广泛的加密货币选项而著称。本文重点介绍了每个平台的关键特点,帮助投资者做出明智的决定,选择最符合其需求和投资策略的平台。
