题目链接 BZOJ5158 题解 题中所给的最长上升子序列其实就是一个限制条件 我们要构造出最大的以\(i\)开头的最长下降子序列,就需要编号大的点的权值尽量小 相同时当然就没有贡献,所以我们不妨令权值为一个\(1\)到\(n\)的排列 考虑如何满足限制条件 对于所有\(a[i] = v\)的点,点与点之间一定是单调下降的,连边 对于位置\(i\),如果\(a[i] = v\),那么\(i\)至少要比上一个\(a[j] = v - 1\)的位置大,连边 然后用大顶堆拓扑排序即可得到每个点最优的权…
好羞愧啊最近一直在刷水... 题意:给定序列$c$的$a_i$,构造出一个序列$c$使得$\sum b_i$最大. 其中$a_i$表示以$c_i$结尾的最长上升子序列长度,$b_i$表示以$c_i$为开头的最长下降子序列长度. 首先$a_i = x$一定是从一个$a_j = x-1$转移而来的.这里让$a_i$从所有$a_j = x-1$的$a_j$里$c_j$最小的转移而来,一定不会有更优的转移. 因为这样它还可以和其它$a_j$做出至少1的贡献.那么我们由$i$向$j$连边.这样会形成一棵以…
Alice and Bob Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3716 Accepted Submission(s): 1179 Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In this game…
B - Alice and Bob Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description Alice and Bob's game never ends. Today, they introduce a new game. In this game, both of them have N different rectangular cards respectively.…
题意 给出一个序列的以每一项结尾的 \(LIS\) 的长度a[],求一个序列,使得以每一项为开头的最长下降子序列的长度之和最大. \(n\leq 10^5\) . 分析 最优解一定是一个排列,因为如果两个数字的大小相同,完全可以区别他们的大小,以得到更多的贡献. 考虑的 \(a\) 给定的限制,显然对于所有的相同大小的 \(a\) ,前一项 \(a_{p_1}\) 要大于后一项 \(a_{p_2}\),否则一定会产生更长的上升子序列.连边\(p_2\rightarrow p_1\)表示 \(p_…
非常好的一道思维性题目,想了很久才想出来qwq(我好笨啊) 考虑a[]数组有什么用,首先可以yy出一些性质 (设num[i]为原来第i个位置的数是什么 , 因为题目说至少有一个排列可以满足a[],所以我们就假设num[]没有相同的元素): 1. 当 a[i] == a[j] 且 i<j 的时候,我们可以得出 num[i] > num[j] ,因为如果反过来的话 a[j] 就至少是 a[i]+1 了. 2. 对于任意一个 a[i] ,考虑所有 a[j] + 1 == a[i] 的 j,它们中至少…
传送门 \(\color{green}{solution}\) 贪心 /************************************************************** Problem: 5158 User: MiEcoku Language: C++ Result: Accepted Time:420 ms Memory:5980 kb ****************************************************************/…
Problem Description Alice and Bob's game never ends. Today, they introduce a new game. In this game, both of them have N different rectangular cards respectively. Alice wants to use his cards to cover Bob's. The card A can cover the card B if the hei…
B Alice and Bob •输入输出文件: alice.in/alice.out •源文件名: alice.cpp/alice.c/alice.pas • 时间限制: 1s 内存限制: 128M 题目描述 Alice 和 Bob 发明了一个新的游戏.给定一个序列{x0,x1,··· ,xn−1}.Alice得 到一个序列 {a0,a1,··· ,an−1},其中 ai 表示以 xi 结尾的最长上升子序列的长 度:Bob 得到一个序列 {b0,b1,··· ,bn−1},其中 bi 表示以…
 题意: Alice和Bob有n个长方形,有长度和宽度,一个矩形能够覆盖还有一个矩形的条件的是,本身长度大于等于还有一个矩形,且宽度大于等于还有一个矩形.矩形不可旋转.问你Alice最多能覆盖Bob的几个矩形? 思路:贪心,先依照h将Alice和Bob的矩形排序,对于Alice的每一个矩形.假设Bob的矩形的h小于Alice的h,将Bob的w插入到集合中. 然后,在集合中找到不大于Alice矩形d的最大的Bob的d,那么这样做肯定是最优的. #include<cstdio> #includ…