[BZOJ 5158][Tjoi2014]Alice and Bob】的更多相关文章

传送门 \(\color{green}{solution}\) 贪心 /************************************************************** Problem: 5158 User: MiEcoku Language: C++ Result: Accepted Time:420 ms Memory:5980 kb ****************************************************************/…
题意 给出一个序列的以每一项结尾的 \(LIS\) 的长度a[],求一个序列,使得以每一项为开头的最长下降子序列的长度之和最大. \(n\leq 10^5\) . 分析 最优解一定是一个排列,因为如果两个数字的大小相同,完全可以区别他们的大小,以得到更多的贡献. 考虑的 \(a\) 给定的限制,显然对于所有的相同大小的 \(a\) ,前一项 \(a_{p_1}\) 要大于后一项 \(a_{p_2}\),否则一定会产生更长的上升子序列.连边\(p_2\rightarrow p_1\)表示 \(p_…
好羞愧啊最近一直在刷水... 题意:给定序列$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$连边.这样会形成一棵以…
题目链接 BZOJ5158 题解 题中所给的最长上升子序列其实就是一个限制条件 我们要构造出最大的以\(i\)开头的最长下降子序列,就需要编号大的点的权值尽量小 相同时当然就没有贡献,所以我们不妨令权值为一个\(1\)到\(n\)的排列 考虑如何满足限制条件 对于所有\(a[i] = v\)的点,点与点之间一定是单调下降的,连边 对于位置\(i\),如果\(a[i] = v\),那么\(i\)至少要比上一个\(a[j] = v - 1\)的位置大,连边 然后用大顶堆拓扑排序即可得到每个点最优的权…
非常好的一道思维性题目,想了很久才想出来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,它们中至少…
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又在玩游戏 这道题就是一个很显然的公平游戏. 首先\(O(n^2)\)的算法非常好写.暴力枚举每个后继计算\(mex\)即可.注意计算后继的时候可以直接从父亲转移过来,没必要\(O(n)\)扫一遍所有节点 . 然后我们仔细看看转移,就可以发现这玩意儿就是一个集合,每次要支持集合异或上一个数,集合插入一个数,以及集合合并.然后我们用\(Trie\)树(其实就是线段树)来维护即可.每个节点记录一个\(size\),就可以从顶往下找\(mex\)了. 下面贴代码: #inc…
Alice and Bob Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 147    Accepted Submission(s): 22 Problem Description As you know, Alice and Bob always play game together, and today they get a…
Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合选择一个没有被删除的节点x,将x及其所有祖先全部删除,不能操作的人输 .注:树的形态是在一开始就确定好的,删除节点不会影响剩余节点父亲和儿子的关系.比如:1-3-2 这样一条链 ,1号点是根节点,删除1号点之后,3号点还是2号点的父节点.问有没有先手必胜策略.n约为10w. 显然只要算出每颗子树的sg值就可以…
Alice and Bob Time Limit: 1000ms   Memory limit: 65536K 题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is a polynomial like this: (a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1). Then Alice as…