ccpc camp
#
夕林山寸
这个作者很懒,什么都没留下…
展开
-
2020 CCPC Wannafly Winter Camp Day1 7-9 1I. K小数查询 (树套树写法)
本质跟分块一样,查询第K大时二分转化为查询1-x的数出现个数然后用线段树树套jls权值线段树的做法搞搞就行先贴个std,原理彻底搞懂了。等下自己手敲一遍。。#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm...原创 2020-02-08 19:56:27 · 191 阅读 · 0 评论 -
hdu5306(线段树+区间取最值)jls线段树
jls论文:根据上面论文我们就可以做这题了。终于学会了jls线段树。手敲了下,看懂理论1h,写+bug就花了不到1h。果然线段树我还是比较熟练的马上搞下camp树套jls树。。。#include<bits/stdc++.h>using namespace std;#define ls o*2#define rs o*2+1typedef long ...原创 2020-02-07 20:31:07 · 731 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day1 7-9 1I. K小数查询 (分块写法)
块内打个lazy标记,表示块内元素都要与lz取min,每次更新操作,整块lazy标记处理两端剩下的非整块暴力处理。查询时二分转化为查询区间内小于k的个数。然后整块部分先判断lazy标记是否小于k,小于说明区间所有元素都小于k否则二分处理,二分找到第一个大于k的元素,然后之前的元素一定小于等于k,由于lazy大于k,对前面元素没有影响对于非整块部分,暴力更新后处理。更新复杂度...原创 2020-02-07 13:51:18 · 171 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day1 7-9 1I. K小数查询
暴力写法 Onm的复杂度。等下更新 jls线段树和分块的写法#include <bits/stdc++.h>using namespace std;const int M = 100005;int a[M], p[M];int main() { int n, m; scanf("%d%d", &n, &m); for (int i = 1; i...原创 2020-02-06 20:53:43 · 138 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day1 (Div.1&2) 7-1 1A. 期望逆序对
思路很简单,期望逆序对最小肯定是按线段终点排序。证:两个变量i,ji是[li,ri] j是[lj,rj].想要i尽量小于j,肯定是让i比j小的概率大于1/2.即i的中点小于j的中点然后n^2枚举求期望即可。不到半小时写出来过样例,但判断条件错了调了2h。。。。#include<bits/stdc++.h>using namespace std;t...原创 2020-02-06 20:26:58 · 212 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day1 (Div.1&2) 7-3 1C. 染色图
camp的时候做出来了,但现在再做一遍还花了一个多小时。。。不过彻底把整数分块弄明白了。#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod =998244353;ll qpow(ll a,ll b){ ll ans=1; while(b) { if(b&a...原创 2020-02-06 17:16:48 · 208 阅读 · 0 评论