博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3683 Priest John's Busiest Day(2-SAT + 拓扑输出方案)
阅读量:4073 次
发布时间:2019-05-25

本文共 1555 字,大约阅读时间需要 5 分钟。

【题目链接】

【题目大意】

有个小镇上有n对夫妻要举办婚礼,每队夫妻都要请镇上的牧师举行一个仪式,但是镇上只有一个牧师,牧师一次只能为一对夫妻做仪式。

已知每队夫妻的婚礼的起始t1和结束的时间t2, 他们举办仪式的时间是d,仪式只能在婚礼开始的前d时间举行或者在结束之前的d内举行。问牧师能不能合理安排,使得每对夫妻都能举办仪式?

【思路】

对于每一对夫妻,他们要么在开始时做仪式,要么在结束时做仪式,所以是2-SAT模型。

这题要输出任一个方案,研究了好几个小时。。。

【代码】

#include
#include
#include
#include
#include
#define WHITE -1#define RED 1#define BLUE 0using namespace std;typedef long long int64;const int MAXN = 1010;const int VN = MAXN*2;const int EN = 1000010;int n;struct Couple{ int d; int t1, t2;}arr[MAXN];struct Edge{ int u, v, next;};void time_out(int t, int d){ printf("%02d:%02d %02d:%02d\n", t/60, t%60, (t+d)/60, (t+d)%60);}struct Graph{ int size; int head[VN]; Edge E[EN]; void init(){ size = 0; memset(head, -1, sizeof(head)); } void addEdge(int u, int v){ E[size].u = u; E[size].v = v; E[size].next = head[u]; head[u] = size++; }}g, g2; //g为原图, g2为新图class Two_SAT{public: bool check(const Graph& g, const int n){ scc(g, 2*n); for(int i=0; i
que; memset(color, WHITE, sizeof(color)); for(int i=1; i<=bcnt; ++i) if(!indeg[i]) que.push(i); int* head = g1.head; Edge* E = g1.E; while(!que.empty()){ int u = que.front(); que.pop(); if(color[u] != WHITE) continue; color[u] = RED; color[opp[u]] = BLUE; for(int e=head[u]; e!=-1; e=E[e].next){ int v = E[e].v; if(--indeg[v] == 0){ que.push(v); } } } for(int i=0; i
=b1 || a1>=b2); }int main(){ int a, b; while(~scanf("%d", &n)){ g.init(); for(int i=0; i

转载地址:http://cpzni.baihongyu.com/

你可能感兴趣的文章
C++报错:C4700:使用了非初始化的局部变量
查看>>
【数据结构周周练】003顺序栈与链栈
查看>>
C++类、结构体、函数、变量等命名规则详解
查看>>
C++ goto语句详解
查看>>
【数据结构周周练】008 二叉树的链式创建及测试
查看>>
《软件体系结构》 第九章 软件体系结构评估
查看>>
《软件体系结构》 第十章 软件产品线体系结构
查看>>
《软件过程管理》 第六章 软件过程的项目管理
查看>>
《软件过程管理》 第九章 软件过程的评估和改进
查看>>
分治法 动态规划法 贪心法 回溯法 小结
查看>>
《软件体系结构》 练习题
查看>>
《数据库系统概论》 第一章 绪论
查看>>
《数据库系统概论》 第二章 关系数据库
查看>>
《数据库系统概论》 第三章 关系数据库标准语言SQL
查看>>
SQL语句(二)查询语句
查看>>
SQL语句(六) 自主存取控制
查看>>
《计算机网络》第五章 运输层 ——TCP和UDP 可靠传输原理 TCP流量控制 拥塞控制 连接管理
查看>>
堆排序完整版,含注释
查看>>
二叉树深度优先遍历和广度优先遍历
查看>>
生产者消费者模型,循环队列实现
查看>>