解题:POI 2009 Ticket Inspector】的更多相关文章

题面 看起来很水,然而不会DP的蒟蒻并不会做,PoPoqqq orz 设$f[i][j]$表示当前在第$i$个点和第$i+1$个点之间查票,已经查了$j$次的最大收益.然后就是那种很常见的枚举前一个结尾的转移,主要是贡献的求法,从$x$到$y$的贡献是$val[(x+1,y+1)][(y,n)]$(二维前缀和一下).对于方案就在更新时记录上一个结尾即可 #include<cstdio> #include<cstring> #include<algorithm> usin…
题面 洛谷数据非常水,建议去bzoj 我第一眼一看这不是那个POI2011的升级版吗(明明这个是2009年的,应该说那个是这个的弱化版,果然思想差不多. 因为$k$很小,可以考虑每个间隔距离来转移.我们按照传统(雾,其实这里的的名字已经不是很符合定义了,设$cov[i][j]$表示以$i$为根的子树里剩余控制距离为$j$的点还能控制几个点,$unc[i][j]$表示以$i$为根的子树里还没被覆盖的距离等于$j$的点有几个.每次从儿子获取信息后先更新$cov[x][k]$,然后就是这“类”题的关键…
题面 这也算是个套路题(算吗)?发现换来换去每行每列数的组成是不变的,那么就把每行每列拎出来哈希一下,复杂度$O(Tn^2log$ $n)$有点卡时=.=. 然而正解似乎不需要哈希,就像这样↓ ;i<=n;i++) ;j<=m;j++){ int xxx=read(); x[xxx+A]=i; y[xxx+A]=j; } bool b=true; ;i<=n;i++){ ;j<=m;j++){ a[i][j]=read(); ]+A]||x[a[i][j]+A]==)b=false…
题面 板板讲的霍尔定理 霍尔定理:一张二分图有完全匹配的充要条件是对于任$i$个左部点都有至少$i$个右部点与它们相邻.放在这个题里就是说显然最容易使得鞋不够的情况是一段连续的人,那就维护一下最大子段和就好了=.= #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; *N],rr[*N],len[*N],val[*N]; long long n,m,k,d,t1,t2…
Description 题库链接 初始时滑冰俱乐部有 \(1\) 到 \(n\) 号的溜冰鞋各 \(k\) 双.已知 \(x\) 号脚的人可以穿 \(x\) 到 \(x+d\) 的溜冰鞋.有 \(m\) 次操作,每次包含两个数 \(r_i\) , \(x_i\) 代表来了 \(x_i\) 个 \(r_i\) 号脚的人. \(x_i\) 为负,则代表走了这么多人. 对于每次操作,输出溜冰鞋是否足够. \(1\leq n\leq 200,000,1\leq m\leq 500,000\) Solut…
http://www.lydsy.com/JudgeOnline/problem.php?id=1115 差分后变成阶梯博弈. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 1003; int a[N], n, s; int main() { int T; scanf("%d", &T); while (T--…
P3486 [POI2009]KON-Ticket Inspector 题目描述 Byteasar works as a ticket inspector in a Byteotian National Railways (BNR) express train that connects Byteburg with Bitwise. The third stage of the BNR reform (The never ending saga of BNR reforms and the Bi…
问题描述 Byteasar works as a ticket inspector in a Byteotian National Railways (BNR) express train that connects Byteburg with Bitwise. The third stage of the BNR reform (The never ending saga of BNR reforms and the Bitwise hub was presented in the probl…
前言 没脑子选手随便一道博弈论都不会 -- 正文 Nim 游戏引入 这里给出最简单的 \(Nim\) 游戏的题目描述: \(Nim\) 游戏 有两个顶尖聪明的人在玩游戏,游戏规则是这样的: 有\(n\)堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿),没法拿的人失败. 问最后谁会胜利. 结果是:当 \(n\) 堆石子的数量异或和等于 \(0\) 时,先手必胜,否则先手必败. 来考虑口胡一个证明: 考虑异或和是 \(0\) 的意义. 异或和是 \(0\) 代表着对于所有石头数的每一位二…
题面 出现了,神仙题! 了解一点博弈论的话可以很容易转化题面:问$B$有多少种取(diu)石子的方式使得取后剩余石子异或值为零且取出的石子堆数是$d$的倍数 首先有个暴力做法:$dp[i][j][k]$表示到第$i$个为止取出来的石子数目模$d$等于$j$且剩下的石子异或和为$k$的方案数,然后就枚举转移啊=.= 发现时空复杂度好像都不能承受,不过可以尝试分析/优化一下.首先分析一波后发现时间复杂度其实是对的......只是我们需要将石子数从小到大排个序,这样一路异或下来异或到$i$时最大值不超…