[TJOI2018]智力竞赛】的更多相关文章

[BZOJ5335][TJOI2018]智力竞赛(二分图匹配) 题面 BZOJ 洛谷 题解 假装图不是一个DAG想了半天,.发现并不会做. 于是假装图是一个DAG. 那么显然就是二分答案,然后求一个最小链覆盖就好了... 然而一开始我以为是不交的链覆盖.... 然而是可以交的... 所以就Floyd求一下连通性再二分图匹配就好了... 读不懂题.jpg #include<iostream> #include<cstdio> using namespace std; #define…
https://www.lydsy.com/JudgeOnline/problem.php?id=5335 小豆报名参加智力竞赛,他带上了n个好朋友作为亲友团一块来参加比赛. 比赛规则如下: 一共有m道题目,每个入都有1次答题机会,每次答题为选择一道题目回答,在回答正确后,可以从这个题目的后续题目,直达题目答错题目或者没有后续题目.每个问题都会代表一个价值,比赛最后的参赛选手获得奖励价值等价于该选手和他的亲友团没有回答的问题中的最低价值.我们现在知道小豆和他的亲友团实力非常强,能够做出这次竞赛中…
二分答案,转化成求最少的路径,覆盖住所有权值$\leq mid$的点. 建立二分图,若$i$的后继为$j$,则连边$i\rightarrow j$,求出最大匹配,则点数减去最大匹配数即为最少需要的路径数量. 特别地如果某个点$i$的权值$>mid$,则它可以不经过,连边$i\rightarrow i$表示忽略该点. 因为这是稠密图,用bitset优化匈牙利算法即可. 时间复杂度$O(\frac{m^3\log m}{32})$. #include<cstdio> #include<…
题意 题目链接 给出一个带权有向图,选出n + 1n+1条链,问能否全部点覆盖,如果不能,问不能覆盖的点权最小值最大是多少 Sol TJOI怎么净出板子题 二分答案之后直接二分图匹配check一下. 多读读题就会发现题目要求的就是可相交的最小路径覆盖,那么按照套路先floyd一遍,如果能联通的话就再二分图中加边,然后判一下最大匹配数就行了.刚开始以为因为有的点可以不选,要在匈牙利的时候进行玄学贪心,其实是不用的,因为我们已经求过传递闭包了.所以直接求就是对的 因为\(M \leqslant 50…
题解: 这垃圾题意 问题二分之后等价于 可重复路径判断能否覆盖一张图 1.用floyd连边(来保证可重复) 然后拆点跑最大流 然后答案=n-最大流 但这样子做本来复杂度就比较高,边数增加了n倍 2.我们可以直接上下界网络流,那样等价于限制某条边至少是1 然后求网络最小流就可以了…
题目 发现我们需要最大化最小值,基本是二分了 那么我们二分出来一个值我们将小于等于这个值的都删去,现在的问题变成了如何用\(n+1\)条路径覆盖这张图 这不最小路径覆盖吗 于是我就忘了最小路径覆盖怎么搞了 在慎老师的教育下我终于知道了最小路径覆盖应该先将每个点拆成两个点,放在二分图的左右两边,对于原图的一条边\((x,y)\),我们就连\((x,y')\),之后最小路径覆盖就等于总点数减最大匹配了 其实挺好理解的,先考虑一条匹配边都没有的情况,最小路径覆盖就是总点数,每加入一条匹配边就会让我们少…
题目链接 洛谷P4589 题意可能不清,就是给出一个带权有向图,选出\(n + 1\)条链,问能否全部点覆盖,如果不能,问不能覆盖的点权最小值最大是多少 题解 如果要问全部覆盖,就是经典的可重点的DAG最小路径覆盖,floyd求出传递闭包后跑二分图最大匹配即可 如果不能全部覆盖,就二分答案,看看能否覆盖掉比二分出来的值小的所有点 #include<algorithm> #include<iostream> #include<cstring> #include<cs…
洛谷 题意: 给出一个\(DAG\),现在要选出\(n+1\)条可相交的链来覆盖,最终使得未被覆盖的点集中,权值最小的点的权值最大. 思路: 显然最终的答案具有单调性,故直接二分答案来判断: 直接将小于二分权值的点加入图中,求出最小链覆盖即可. 这个题貌似有点卡常..二分上界设为INF直接T飞了.. /* * Author: heyuhhh * Created Time: 2019/11/6 10:20:13 */ #include <bits/stdc++.h> #define MP mak…
目录 题目链接 题解 代码 题目链接 loj#2574. 「TJOI2018」智力竞赛 题解 就是求可重路径覆盖之后最大化剩余点的最小权值 二分答案后就是一个可重复路径覆盖 处理出可达点做二分图匹配就好了 代码 #include<cstdio> #include<cstring> #include<algorithm> #define gc getchar() #define pc putchar inline int read() { int x = 0,f = 1;…
智力竞赛 Problem's Link ---------------------------------------------------------------------------- Mean: 略(中文题). analyse: 比赛中最先想到的是三维dp,但思考后发现可以压缩为二维,状态转移方程: dp[i][j]=min(dp[i][j],dp[i][j-(right+fault)]+right) 其中dp[i][j]表示: 到通过第i关为止,在总共只有j次答题机会的情况下,总共至…