gourmet专题

CodeForces 589F Gourmet and Banquet 题解

【题目大意】: 有N份菜,分别在[ai,bi]时间段内有供应,一位美食家想吃到每样菜,并且吃每样菜的时间要相同(吃每道菜的次数不限,比如可在a1-a2时间吃A菜,a3-a4时间再吃一次A菜,这样吃A菜的总时间为a4-a3+a2-a1 )。求美食家能享受菜品的最大时间。(原题及样例如下) Gourmet and Banquet time limit per test 2 sec

Codeforces Round #541 (Div. 2)D. Gourmet choice(拓扑排序+并查集+思维)

题目链接:https://codeforces.com/contest/1131/problem/D   题目大意:给出n个数和m个数之间分别的大小关系,求使得最大数最小的情况   题目思路:如果全是>或者<这道题很简单,直接建图就结束了,但是这里有个=。这个等于的解决非常巧妙,使用并查集将=的点并在一起缩点然后这道题就转换成了只有>或<的情况   以下是代码: #include<b

(CodeForces) Codeforces Round #541 (Div. 2) D. Gourmet choice (并查集+拓扑排序)

传送门 题目大意:第一天n个菜,第二天m个菜,一个n*m的矩阵代表他们之间的优劣关系,根据这个矩阵用数字来给每一个菜品打分,使得最大的数字最小。比如 Aij 是> 说明第一天的 i菜 比第二天的 j菜好。 解题思路:根据题目的描述,两道菜之间的优劣情况,我们可以连一条权值为1的单向边,而哪些没有指向他的点,那就是最小的数为1。从入度为0的点开始,一步步往里面走,我们自然可以想到拓扑排序,但这题