离散化
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
【GDOI2103模拟3.17】数树数
Description 给出一个n个节点的树,每个点有权值。给出m次操作,每次操作修改一个点的权值或者询问从x到y的路径上有多少个权值为z的点。 n Solution 话说2103年的题真的很鬼畜。 链剖like[SDOI2012旅行],还更简单。好像有把权值重复赋值的操作。原创 2016-03-31 19:19:39 · 636 阅读 · 0 评论 -
离散化模板
离散化模板(看不懂%%%)void prepare(int *x) { fo(i,1,n) data[i]=x[i]; sort(data+1,data+n+1); int m=unique(data+1,data+n+1)-data-1; fo(i,1,n) x[i]=lower_bound(data+1,data+m+1,x[i])-data; }原创 2016-04-13 20:39:40 · 1828 阅读 · 1 评论 -
【NOIP2015模拟11.2晚】舳舻牌
DescriptionAlice和Bob,哦不,CZL和YYY在玩一个游戏。桌上有n张牌,每张牌对两人各有一个诱惑值,和它自己的价值。CZL先手,每次操作方喊出一个值X,然后把桌上剩下的对他诱惑值<=X的牌全部收走(至少一张),并获得其的价值。 求CZL的最大得分。Solution博弈,倒着DP。 首先把诱惑值离散化。 设Fi,j表示CZL喊到i,YYY喊道j,CZL的最大收益;Gi,j表示Y原创 2016-04-13 20:49:41 · 909 阅读 · 0 评论 -
[51nod1711]平均数
Description给出一个长度为n的序列,求所有n*(n+1)/2个区间中平均数第k大的平均数。 n<=10^5Solution考虑二分答案。 那么判定就是要求有多少个区间的平均数>=mid. 考虑前缀和,区间[i+1,j]的平均数就是sumj−sumij−isumj-sumi\over j-i 满足条件的话,那么sumj−sumij−i≥mid{sumj-sumi\over j-i}\原创 2016-07-03 21:47:25 · 862 阅读 · 0 评论 -
莫队算法学习小记
先前还以为莫队算法是一个高级的东西。 可是仔细学习了一下,才发现这东西应该叫做——一个优雅的暴力对于一个询问区间[l,r],如果我们可以O(1)的得到区间[l,r-1],[l,r+1],[l-1,r],[l+1,r]的答案,那么从这个询问转移到另一个询问的时间复杂度为O(|l-l’|+|r-r’|)。 那我们可以确定一个解决询问的顺序,从而使复杂度达到O(n^1.5) 我们把每个询问看做二位平原创 2016-04-28 20:49:52 · 1609 阅读 · 0 评论