hihocoder #1285 智力竞赛】的更多相关文章

传送门 总结: 1.仔细读题 2.仔细分析复杂度 3.不要想当然,乱下结论 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi.小Ho还有被小Hi强拉来的小Z,准备组队参加一个智力竞赛.竞赛采用过关制,共计N个关卡.在第i个关卡中,小Hi他们需要获得Ai点分数才能够进入下一关.每一关的分数都是独立计算的,即使在一关当中获得超过需要的分数,也不会对后面的关卡产生影响. 小Hi他们可以通过答题获得分数.答对一道题获得S点分数,答错一道题获得T点分数.在所有的N个关卡中…
智力竞赛 Problem's Link ---------------------------------------------------------------------------- Mean: 略(中文题). analyse: 比赛中最先想到的是三维dp,但思考后发现可以压缩为二维,状态转移方程: dp[i][j]=min(dp[i][j],dp[i][j-(right+fault)]+right) 其中dp[i][j]表示: 到通过第i关为止,在总共只有j次答题机会的情况下,总共至…
[BZOJ5335][TJOI2018]智力竞赛(二分图匹配) 题面 BZOJ 洛谷 题解 假装图不是一个DAG想了半天,.发现并不会做. 于是假装图是一个DAG. 那么显然就是二分答案,然后求一个最小链覆盖就好了... 然而一开始我以为是不交的链覆盖.... 然而是可以交的... 所以就Floyd求一下连通性再二分图匹配就好了... 读不懂题.jpg #include<iostream> #include<cstdio> using namespace std; #define…
目录 题目链接 题解 代码 题目链接 loj#2574. 「TJOI2018」智力竞赛 题解 就是求可重路径覆盖之后最大化剩余点的最小权值 二分答案后就是一个可重复路径覆盖 处理出可达点做二分图匹配就好了 代码 #include<cstdio> #include<cstring> #include<algorithm> #define gc getchar() #define pc putchar inline int read() { int x = 0,f = 1;…
https://www.lydsy.com/JudgeOnline/problem.php?id=5335 小豆报名参加智力竞赛,他带上了n个好朋友作为亲友团一块来参加比赛. 比赛规则如下: 一共有m道题目,每个入都有1次答题机会,每次答题为选择一道题目回答,在回答正确后,可以从这个题目的后续题目,直达题目答错题目或者没有后续题目.每个问题都会代表一个价值,比赛最后的参赛选手获得奖励价值等价于该选手和他的亲友团没有回答的问题中的最低价值.我们现在知道小豆和他的亲友团实力非常强,能够做出这次竞赛中…
智力竞赛 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi.小Ho还有被小Hi强拉来的小Z,准备组队参加一个智力竞赛.竞赛采用过关制,共计N个关卡.在第i个关卡中,小Hi他们需要获得Ai点分数才能够进入下一关.每一关的分数都是独立计算的,即使在一关当中获得超过需要的分数,也不会对后面的关卡产生影响. 小Hi他们可以通过答题获得分数.答对一道题获得S点分数,答错一道题获得T点分数.在所有的N个关卡中,小Hi他们一共有M次答题机会.在每个关卡中,都可以在累计答题次数…
[题目链接]:http://hihocoder.com/contest/hiho145/problem/1 [题意] [题解] 设f[i][j]表示做对i道题,做错j道题能够到达的最好状态是什么; 这里的状态不是单单是指到了第几关; 因为可能同样到达了第4关,但是你前面的到达第4关的状态更好(也就是说它在第4关的分数更多); 所以f[i][j]用一个pair< int,int>表示->(x,y) x表示到达了第几关,y表示在这一关获得了多少分; 则f[i][j] = max(f[i-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 然后求网络最小流就可以了…