自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1169)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 ABBYY Cup 3.0 E3. Summer Homework(线段树+思维+斐波那契)

题目就是要求完成上述操作,每次操作 2,都要输出结果const ll mod=1e9;const int N=2e5+5; int n,m; int i,j,k; int a[N]; ll f[N],sum[N]; struct Node { int l,r,len; ll s1,s2,lazy; void init(int l,int r){ ...

2021-03-15 17:27:30 28

原创 Codeforces Round #558 (Div. 2) B2 - Cat Party (Hard Edition) (思维)

给出 n 个数,找出一个最大的 x,使得前 x 个数中任意删除一个数之后,其余数字的出现个数相同可以利用两个数组,f 数组表示 a[i] 的出现次数,F 数组表示 a[i] 的出现次数的出现次数如果,说明在添加一个数即可成立 如果,说明在 i 位置成立const int N=2e5+5; int n,m; int i,j,k; int a[N]; map<int,int> f,F; int main(){ ...

2021-03-10 20:00:17 25

原创 Manthan, Codefest 17 B. Marvolo Gaunt‘s Ring(线段树+思维)

有 n 个数,以及 p,q,r要求找到三个数 使得最大,其中由于题目具有后效性,开始没有注意到,枚举 i∈[1,n] 使得 a[i]*p,然后用线段树找到 j∈[i,n] 使得 a[j]*q,再找到 k∈[j,n] 使得 a[k]*r,但是这样的做法是不对的,只能过到 12 个样例因为每一步都是最优的,并不能代表整体最优如果枚举 j,在从区间 [1,j] 和 [j,n]分别找 i 和 k 的话这样是正确的,其余上述的做法不同的是,上述做法没有考虑后效性而缩小了区间范...

2021-03-08 19:59:59 29

原创 Codeforces Round #703 (Div. 2) C2 - Guessing the Greatest (hard version)(二分+思维)

有 n 个数构成一种排列,每次询问一个区间,可以给出区间中第二大数的位置,在 20 次询问中找到区间最大数的位置又是一道交互题,一眼二分一开始想的是对于区间询问其第二大数的位置 pos,然后再查询区间中的第二大数的位置,如果两者相同,那么一定在,否则在中,但是策略被卡,询问次数过多值得注意的是题目一开始就可以得到中的第二大数的位置,利用这个位置与 mid 就可以完成 logN 的复杂度但是中间需要注意区间中第二大数的位置 pos 是固定的,二分过程...

2021-02-20 21:58:43 33

原创 Educational Codeforces Round 103 (Rated for Div. 2) C. Longest Simple Cycle(思维)

有 n 条链,给出这 n 条链的长度 c[i]-1,从第二条链开始,a[i] 表示第 i 条链的头节点 1 链接前一条链的 a[i] 节点,b[i] 表示第 i 条链的尾节点链接前一条链的 b[i] 节点,在整张图中找到一个环,使得换的长度最大题目与图没有任何关系,我们可以发现 a[i]=b[i] 时,之前所形成的链一定要断,即此时的 a[i] 一定是环中度为 2 的节点如果 a[i]!=b[i] 那么就要判断是以之前的链继续,还是从 a[i] b[i] 开始重新建一条链(...

2021-01-31 10:23:06 39

原创 Educational Codeforces Round 100 (Rated for Div. 2) C. Busy Robot(模拟+思维)

给出 n 个操作,t[i] x[i] 表示在 t[i] 时刻开始移动至 x[i] 位置,如果机器人在某一时刻正在移动,那么他将不听当前操作,继续执行原来的操作,如果静止,那么执行当前操作,初始时静止由于题目将时间和空间相关联,思路比较绕;首先要明白如果机器人不动,其位置不改变但是时间一直改变设计四个量 pos,tag 为当前位置和目标位置,cur,next 为当前时间和移动结束时间,这样next=tag-pos+cur 等式成立,将时间和空间关联起来这样就比较容易想...

2021-01-26 15:59:20 62

原创 洛谷 P3072 [USACO13FEB]Perimeter S(dfs)

题目保证所有的草堆构成连通块,我们可以用 dfs 很简单的获得各个草堆的相对位置如上图所示,白色的方块为草堆的位置,那么他的外周长是绿色的方块个数,其中红色方块个数的贡献是二,也就是说绕着外周长的外面走一圈,看看当前方格挨着几个草堆,这样通过 dfs 就可以将问题解决了。遍历所有的绿色/红色方块一次且仅以此,搜索到白色那么 ans+1,此方块的任务结束const int N=2e5+5; int n,m; int i,j,k; //int a[N];...

2021-01-17 16:41:09 45

原创 Educational Codeforces Round 101 (Rated for Div. 2) C. Building a Fence(思维+贪心)

题目要求修建栅栏,第一块栅栏和最后一块栅栏必须放在地面上,第 i 个栅栏所处的地面为 h[i] ,那么该栅栏可以放在 [a[i],a[i]+k-1] 的位置,要求每一块栅栏都必须与前一块栅栏相重合至少 1 个单位格子,问是否可以修建这样的栅栏对于每一块栅栏我们可以维护改栅栏最低端所能处的位置,根据当前地形位置与前一个地形位置的关系,判断是否可以修建该栅栏const int N=2e5+5; int i,j,k; int n,m; int a[N];...

2021-01-14 14:57:03 74 1

原创 Educational Codeforces Round 99 (Rated for Div. 2) D. Sequence and Swaps(贪心+枚举)

给出 n 个数,以及数 x ,将这 n 个数变成递增的序列,如果 x 想要于其中的任何一个数 a[i] 交换,那么满足条件 a[i]>x ,问最小交换次数是多少题目数据范围小,可以暴力模拟,但在这里并没有模拟,但复杂度还是 O(n*n)将 x 与 a[i] 交换后,a[i] 之前全都是比 x 要小的数,i 之后没有比 x 大的数,且前面的数必须要单调递增,否则没法操作由于 a[i]>x ,那么经历多次交换之后,那么数组 a 中有一个比 x 大的数被换成 x而且每...

2020-12-24 09:29:49 35

原创 洛谷 P5889 跳树(线段树)

题目对于二叉树的知识点的考察直接拉满其实很容易发现对于只有 1,3 的序列是很容易维护的,但是同时要维护右儿子,需要清楚到底要维护什么设当前序列已经有 x 个有效的右儿子,(有效的意思是没有被访问父节点的操作抵消掉)那么其对答案的贡献值应该是剩下的就是找到有多少个有效的右儿子即可,由于这个序列会构成一棵树那么树的根,也就是深度最低的那个节点开始才记录有效的右儿子,不仅仅是右儿子,还有左儿子既然要维护树的根,不妨将维护这个序列转化为维护树的根,与树的右子树的深度...

2020-12-19 13:12:50 51 1

原创 洛谷 P5026 Lycanthropy(差分×2)

题目看上去用差分应该不难,一开始的时候打算开两个数组来维护差值的前缀和与后缀和,但是考虑的情况很多,经过化简之后,可以只维护前缀和题意要搞清楚,要考虑到所有点,我就是因为当数组越界的时候不管,一直找不出错来为了防止数组下标是负数,数组从 -3*v 作为原点差分过后,一遍前缀和是点 x 与 x-1 的差值,所以需要再跑一遍前缀和const int N=1e6+5; int i,j,k; int n,m; int a[N]; int d[N&l...

2020-12-03 11:40:03 116

原创 洛谷 P2672 推销员(线段树+贪心)

假设走过了 {pi,pj,pk} 家住户,那么疲劳时最大是 max{pi,pj,pk}(最远距离)+sum{pi,pj,pk}(每户人口积累的疲劳值)所以我们只要维护区间最大值与区间和即可,但是现在有一个问题,不知道维护哪一段区间,如果下一步能够想到贪心,这个题应该可以解决了按照 A 的大小降序排序,如果 A 大 S 大,那么毫无疑问 如果 A 小 S 大,如果 S 足够的话,也会被选择 如果 A 大S 小,只有可能被 2 这种情况取代const int N=1e...

2020-11-30 11:51:38 90

原创 洛谷 P2205 [USACO13JAN]Painting the Fence S(差分+思维)

可以利用差分的思想,在区间 [l,r] 的起点 l 处 col+1,在 r+1 处 col-1,这样再根据当前 col 的值与 k 值比较,可以发现当 col 刚刚被加至 =k 时,之后的区间才会对答案有贡献 当 col 刚刚被减至 <k 时,之前的区间会产生贡献 所有区间遍历完毕,col=0,即不会产生遍历完所有区间还有区间又贡献的情况最后要注意,题目中要求的涂块,而不是涂点const int N=1e5+5; int i,j,k; int n,m;...

2020-11-30 10:43:13 130

原创 Codeforces Round #340 (Div. 2) E. XOR and Favorite Number(莫队+前缀异或)

给出数 n,m,k ,现在有 n 个数,m 此询问,每次询问给出 l,r 代表区间,求任意满足条件的的 l <= i <= j <= r 的 i ,j 使得 a[i]^a[i+1]^……a[j]=k,求可以找出多少对 <i,j> 这样的二元组离线问题,我们采用莫队的方法来求解但是想要求得任意一个区间的异或值比较困难,由异或运算可得 a^b=k ---> k^b=a所以每一次更新莫队时,例如添加一个数时,因为他不是在左端点添加就是在右端点添加,所...

2020-11-22 20:09:53 44

原创 Codeforces Round #716 (Div. 2) B. AND 0, Sum Big(组合数学)

ll pow_mod(ll a,ll x){ ll ans=1; while(x){ if(x&1) ans=ans*a%mod; a=a*a%mod; x>>=1; } return ans;}int main(){ //IOS; rush(){ sdd(n,m); ll ans=pow_mod(n,m); pll(ans...

2021-04-20 08:18:50 40

原创 Codeforces Round #716 (Div. 2) D. Cut and Stick(主席树)

const int N=3e5+5; int n,m; int i,j,k; int a[N]; struct Node { int l,r; int sum; }T[N*40]; int root[N],tot=0;void update(int l,int r,int &x,int y,int pos){ T[++tot]=T[y]; T[tot].sum++; ...

2021-04-20 08:09:08 31

原创 洛谷 UVA10298 Power Strings(KMP)

const int N=1e6+5; int n,m; int i,j,k; char s[N]; int f[N];void getfail(char *s){ f[0]=f[1]=0; int len=strlen(s); for(int i=1;i<len;i++){ int j=f[i]; while(j && s[i]!=s[j]) j=f[j]; ...

2021-04-19 10:36:33 8

原创 HDU 6534 Chika and Friendly Pairs(莫队+离散化+树状数组)

const int N=3e4+5; int n,m,_; int i,j,k; int a[N*3]; int lo[N],up[N]; int b[N*3]; int ans[N]; int block=0,cur=0,now; int vis[3*N]; struct Query { int l,r; int id,bel; bool operator&lt...

2021-04-18 20:24:35 7

原创 训练总结

自从打了昆明的重现赛之后才发现自己究竟处在什么位置,虽然离目标还有很大的一段距离,但是我能感觉出来自己进步了;最近两周的省赛训练做的都不够理想,每次都有一道题,并不是思路不对,而是代码细节的问题,上一次是数论的知识点没有掌握牢固断送了整道题目,而这次是因为没有认清数据范围而一直 RE 的心态爆炸;自从过年前一场CF 切掉了 D 题之后,上一次参加的 CF 又出了 4 题,对于我这种发挥极不稳定的选手来说,当时肯定是很开心的,但是还是那句话,这还远远不够;目前想要真正的出一道数据结构的题目,看起.

2021-04-17 21:42:13 23

原创 洛谷 CF484E Sign on Fence(主席树+二分)

前置题目const int N=1e5+5; int n,m,_; int i,j,k; struct Step { int c,id; bool operator<(Step &o){ return c<o.c; } }a[N]; struct Node { int l,r,len; int sum,lsu...

2021-04-17 20:10:40 25

原创 HDU 6533 Build Tree(贪心)

const int N=1e6+5; int n,m,_; int i,j,k; ll a[N]; ll sum[N];int main(){ ll d,c; ll p; while(~sd(n)){ sll(d); sll(c); sll(p); for(int i=1;i<=n;i++) sll(a[i]),a[i]=a[i]; if(d==0 || c==0){ put...

2021-04-17 18:17:32 14

原创 Codeforces Round #457 (Div. 2) D. Jamie and To-do List(主席树×2)

const int N=2e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sz; }t[N<<6]; int root[N],arr[N],tot=0; map<string ,int > mp; int cnt=0;void update(int &x,in...

2021-04-16 16:14:35 11

原创 牛客练习赛34 F.little w and Discretization(主席树)

const int N=3e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sz,minn; void update(int x){ sz++; minn=x; } }t[N<<5]; int root[N],tot=0; int b[N],len;void push_up(in...

2021-04-15 17:22:19 5

原创 Educational Codeforces Round 107 (Rated for Div. 2) D. Min Cost String(构造)

const int N=3e5+5; int n,m,_; int i,j,k; char a[N];int main(){ while(~sdd(n,m)){ char ch='a'; int cur=0; for(int i=2*m-1;i>=1;i-=2){ a[++cur]=ch; char tmp=ch; for(int...

2021-04-13 16:02:20 15

原创 洛谷 SP3267 DQUERY - D-query(主席树)

const int N=1e6+5; int n,m,_; int i,j,k; int a[N]; int vis[N]; struct Node { int l,r; int sum; }t[N<<5]; int root[N],tot=0;void update(int &x,int y,int pos,int c,int l,int r){ x=++tot...

2021-04-12 15:44:54 10

原创 洛谷 P2839 [国家集训队]middle(可持久化线段树+二分)

const int N=2e4+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sum,lsum,rsum; void update(int x) { sum = lsum = rsum = x ; } Node (int l=0,int r=0,in...

2021-04-12 11:04:45 12

原创 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明) M.Stone Games(主席树)

const int N=1e6+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; ll sum; }t[N*40]; int root[N],tot=0,len; vector<int> v; int x,y;void update(int &x,int y,int pos,int l,int ...

2021-04-11 09:36:15 21

原创 HDU 6570 Wave(暴力)

const int N=1e6+5; int n,m,_; int i,j,k; int a[N]; vector<int> v[N];int go(int x,int y){ int cur=1,ans=0,last=0; int nx=v[x].size(),ny=v[y].size(); int cnt=nx+ny; int i=0,j=0; while(cnt --> 0){ ...

2021-04-10 18:54:43 16

原创 HDU 6576 Worker(最小公倍数)

const int N=1e6+5; int n,m,_; int i,j,k; ll a[N],b[N];ll gcd(ll a,ll b){ if(b==0) return a; else gcd(b,a%b); }ll lcm(int o,int p){ return o/gcd(o,p)*p;}int main(){ ll n,m; while(~sll(n)){ sll(m); ...

2021-04-10 18:39:49 17

原创 2019牛客国庆集训派对day2 C.Just h-index(主席树+二分)

const int N=3e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sz; }t[N<<5]; int root[N],tot=0;void update(int &x,int y,int pos,int l,int r){ x=++tot; t[x]=t[y]; t[...

2021-04-08 18:33:11 12

原创 计蒜客 攀登山峰(主席树)

const int N=1e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sz; }t[N<<5]; int root[N],tot=0; vector<int> v;void update(int &x,int y,int l,int r,int pos){ x...

2021-04-07 16:24:45 17

原创 HDU 4348 To the moon(可持久化线段树)

const int N=1e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; ll sum,lazy; }t[N<<5]; int root[N],tot=0;void push_up(int x){ t[x].sum=t[t[x].l].sum+t[t[x].r].sum;}void build...

2021-04-07 10:43:34 14

原创 HDU 6621 K-th Closest Distance(主席树+二分)

const int N=1e6+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sz; }t[N<<5]; int root[N],tot=0; vector<int> v;//int getid(int x){ return lower_bound(v.begin(),v.end(),x)-...

2021-04-07 08:50:42 14

原创 洛谷 P4602 [CTSC2018]混合果汁(主席树+二分)

const int N=1e5+5; int n,m,_; int i,j,k; //int a[N]; struct Node { int l,r; ll sum,p,v; }t[N<<5]; int root[N],tot=0; struct O { int p,l,d; bool operator<(O o){ ...

2021-04-03 19:20:42 21

原创 HDU 4417 Super Mario(主席树)

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <sstream>#include <queue>#include <vector>#define rush() int T;cin>>T;while(T--)#define ms(a,b) me...

2021-04-03 16:30:21 16

原创 计蒜客 The Preliminary Contest for ICPC Asia Xuzhou 2019 I. query(主席树)

const int N=1e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sz; }t[N*200]; int root[N*17],tot=0; vector<int> v[N]; int pos[N];void update(int &x,int y,int l,int r,in...

2021-04-03 14:40:29 22

原创 洛谷 P3792 由乃与大母神原型和偶像崇拜(线段树+思维)

const int N=5e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int minn,maxx; ll sum; #define lson id<<1 #define rson id<<1|1 void update(int x){ ...

2021-04-03 10:54:46 17

原创 洛谷 P4137 Rmq Problem / mex(主席树)

const int N=3e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sz; int minn; void update(int x){ sz++; minn=x; } }t[N<<5]; int root[N],tot=0;void push_up(int id){...

2021-04-02 18:44:43 33

原创 Codeforces Round #429 (Div. 1) D. Destiny(主席树)

const int N=3e5+5; int n,m,_; int i,j,k; int a[N]; struct Node { int l,r; int sz; void update(){ sz++; } }t[N<<5]; int root[N],tot=0;void update(int &x,int y,int pos,int l,int r){ ...

2021-04-02 16:43:40 12

原创 洛谷 P2468 [SDOI2010]粟粟的书架(主席树+二分)

//#pragma GCC optimize(2)//#include <bits/stdc++.h>#include <iostream>#include <cmath>#include <cstdio>#include <algorithm>#include <cstring>#include <queue>#include <vector>#include &lt...

2021-04-02 13:17:54 16

codeblocks17.12安装包.zip

适合新手使用的编译器,之后更新 百度网盘安装包: 链接:https://pan.baidu.com/s/1M1PGcirlC0He1WjOFrw8gQ 提取码:jfq5

2020-07-02

scanf运行完在缓存区留下回车,再用cin输入回车

发表于 2019-11-18 最后回复 2019-11-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除