摘要:
P2163 [SHOI2007] 园丁的烦恼 首先看一张图(从洛谷题解里搞来的) 我们可以发现,要求矩形abcd里有几棵树本质上其实就是 f(c,d)-f(a-1,d)-f(c,b-1)+f(a-1,b-1) 的值,其中f(i,j)表示从(0,0)~(i,j)有多少棵树 所以最后就变成了一个二维偏序 阅读全文
P2163 [SHOI2007] 园丁的烦恼 首先看一张图(从洛谷题解里搞来的) 我们可以发现,要求矩形abcd里有几棵树本质上其实就是 f(c,d)-f(a-1,d)-f(c,b-1)+f(a-1,b-1) 的值,其中f(i,j)表示从(0,0)~(i,j)有多少棵树 所以最后就变成了一个二维偏序 阅读全文
posted @ 2022-09-19 21:47
yyx525jia
阅读(39)
评论(0)
推荐(0)

单点修改区间查询 #include<bits/stdc++.h> using namespace std; long long a,tree[10000000*4],n; long long lb(long long x) { return x&-x; } void xg(long long x,l
结果一周都没整完。。。(实际上是摆烂太多了) 感觉后面的题有些难,现在这种零碎时间(大概40min)也做不出一道题,还是先整理加背模板吧,等到停课之后在开始正规做题
P2024 [NOI2001] 食物链 种类并查集 说实话这题做的时候看了题解也没整明白,最后是直接跟着题解打了一遍。。。。 现在再来看看 ...... 经过一小时的研究,搞懂了这个种类并查集,具体看这里。 #include<bits/stdc++.h> #define for1(i,a,b) fo
P1197. [JSOI2008] 星球大战 一眼并查集 题目的难点在于如何处理这种每次删除一个点的·操作,实际上就是换个角度想: 我们不删除点,而是反过来,先不加入需要删除的点,之后再一个一个将点加回去,倒着做 这种换位思考的方式感觉很像从记录区间贡献变成记录点的贡献,或者廊桥分配那样的题目 #i
P1196. [NOI2002] 银河英雄传说 其实就是让并查集多维护一个参数而已 #include <iostream> #include <cstdio> #include<bits/stdc++.h> #define for1(i,a,b) for(int i = a;i<=b;i++) #d
P3199 [HNOI2009] 最小圈 题目看着花里胡哨的,其实本质上就是一个有向图,希望你找一个平均值最小的环 我们选择二分平均值,然后对于每条边都减去这个值(不用真的减),然后是spfa找负环,如果找到负环说明二分大了,再往小的二分就可以了 有一个需要注意的点就是这题的l需要取到-inf,因为
T274673 黄校长的大house(有数据) emmm 为了做好这个最大刷墙的模板,甚至专门搞了一个题目 ~~属于是为了吃老婆饼专门找一个老婆了~~ 这题我们可以枚举每个长度的墙面,对于第i个墙面,我们找左边第一个比它小的墙面,序号为x,右边第一个比他矮的墙面,序号为y,那么此时这个墙面会被覆盖到
#P4147. 玉蟾宫 本质上是一个二维的最大刷墙 我们把他按照每一行切开看,就会发现它变成了一个最大刷墙序列 然后就直接做就得了,预处理O(nm),算出答案O(mn) #include<bits/stdc++.h> #define for1(i,a,b) for(int i = a;i<=b;i+
浙公网安备 33010602011771号