
51nod
bestFy
世界上最最最渣的oier.
展开
-
51nod1394 差和问题
题面在这里离线。首先离散化。然后我们考虑加进一个数或减去一个数的改变量:假设数是x,即答案要加上(或减去)x*(小于x的数的个数) - (小于x的数的和) + (大于x的数的和) - x*(大于x的数的个数)。开两个树状数组分别维护数的个数和数的和就好。注意开long long。/***************************************************原创 2017-11-15 00:55:06 · 268 阅读 · 0 评论 -
51nod1423 最大二“货”
题面在这里我们维护一个单调递减的栈,然后发现每次一个数进栈的时候,那些弹出栈的数都对应某一个区间的次大值(最大值就是要进栈的数),所以我们每次弹栈的时候更新一下答案就好了。然后这个只是次大值在最大值之前的情况,之后的情况再把a数组反过来操作一遍就行。/************************************************************* P原创 2017-11-15 17:04:12 · 401 阅读 · 0 评论 -
51nod1437 迈克步
题面在这里很裸的单调栈。。计算出每个数作为最小值的区间最大长度len,然后更新ans[len],最后倒着更新一遍ans[]就好了。很坑地要加读优输优。/************************************************************* Problem: 51nod 1437 迈克步 User: bestFy Language:原创 2017-11-15 19:44:50 · 317 阅读 · 0 评论 -
51nod1495 中国好区间
题面在这里这题标签叫做“尺取法”。。一开始感觉很高级。。后来发现就是维护两个指针QAQ首先将题意转化一下,要求一个区间内的第k大的数>=T,相当于是这个区间内有>=k个数>=T,就是说我们把每个数如果>=T就打标记1,否则是0,然后满足条件的区间即需要区间内1的个数>=k。那么我们用一下前缀和s[i]表示前i个数内1的个数,然后如果一个区间[x, y]满足要求即需要s[y] - s[x原创 2017-11-15 22:48:43 · 316 阅读 · 0 评论 -
51nod算法马拉松32
比赛链接马拉松是真的难… 应该是我太菜了TnTA 特殊表示法同bzoj1534 题解戳这里B 小树题意:n个有标号的点,其中m个是叶子节点。 问有多少数的形态。做法:引入prufer序列。(不知道的百度)发现叶子节点不出现在序列里。于是我们钦定m个叶子节点,剩下的点放到序列里,每个点至少出现一次。 然后这个相当于n个球放到m个盒子里,球不同盒子不同,原创 2018-01-01 20:58:48 · 332 阅读 · 0 评论 -
51nod1834 蛇爬树(二分查找+细节)
题面在这里题意有一个人在长为 nnn 的数轴上从 000 开始,每次向右走一步, x→x+1x→x+1x\to x+1 。同时给出 kkk 对关键点 ai,biai,bia_i,b_i ,如果走到 aiaia_i 就要跳到 bibib_i 。现在给出他每天走的步数,假如某天他往回走了他的速度会 ×2×2\times 2 。有 qqq 个询问,每次给出初始速度问最少多少天走到 nnn 。...原创 2018-04-04 21:41:37 · 1281 阅读 · 0 评论