自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 1560:树的统计

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

2020-09-29 23:24:17 43

原创 A Simple Problem with Integers(区间修改+区间求和)

const int N=1e5+5; int n,m,t; int i,j,k; int a[N]; struct Node { int l, r; ll sum,lazy; void update(int x) { sum+=1ll*(r-l+1)*x; lazy+=x; } }node[N<<2]; ...

2020-09-29 22:32:02 27

原创 HDU 1698 Just a Hook(lazy)

const int N=1e5+5; int n,m,t; int i,j,k; //int a[N]; struct Node { int l,r; int lazy; void update(int x) { lazy=x; } }node[N<<2];void build(int l,int r,int id){ ...

2020-09-28 23:07:33 23

原创 HDU 1754 I Hate It(区间查询+单点修改)

const int N=2e5+5; int n,m,t; int i,j,k; int a[N]; struct Node { int l,r; int maxx; }node[N<<2];void push_up(int id){ node[id].maxx=max(node[id<<1].maxx,node[id<<1|1].maxx);}void bui...

2020-09-28 21:58:09 32

原创 训练周记

这周逐渐恢复了以前学习的状态,早上也可以起的来了,上课也不困了,生活也变得规律起来了。贴一下 利用倍增求 lca 的模板假设 x 的深度 > y 的深度,即 x 位于根的深部先将 x 跳到与 y 的深度相同的位置然后两个一块跳上去,直至调到公共的节点位置因为任意数都可以用二进制来表示,所以利用 ST 的思想 ,将数组 f[i][j] 表示为 i 节点向上跳 2^j 的节点标号首先初始化 lg 的值:const int lgN=20+5; ...

2020-09-26 23:03:55 33

原创 1552:点的距离(倍增求 lca)

const int lgN=20+3;const int N=2e5+5; int n,m,t; int i,j,k; //int a[N]; vector<int> G[N]; int dep[N]; int f[N][lgN]; void dfs(int u,int fa){ dep[u]=dep[fa]+1; for(int i=1;i<lgN;i++){ f[u][i]=f[f...

2020-09-26 09:37:58 41

原创 D2. Sage‘s Birthday (hard version)(构造+贪心)

现在有 n 个数,对 a[] 重新排序,使得好数最多好数的定义:在数组中比相邻的两个数都小,则称为好数,当然数组最左边和最右边的数不能称之为好数可以保证在数组 a 中,可能会有几个数相等题目一定是要进行插空的,偶数的位置放小数,但是 n 为偶数的时候,会有一个小数在最后的位置浪费掉,先将最后一个数用最大数填上,这样剩下奇数个位置贪心策略:因为要避免相同的数,所以 a 数组先在偶数位置处从小到大放置数据,再在奇数位置处,从小到大放置数据但 Wrong 了,因为最后两个位...

2020-09-22 17:17:24 110

原创 D1. Sage‘s Birthday (easy version)(构造+贪心)

现在有 n 个数,对 a[] 重新排序,使得好数最多好数的定义:在数组中比相邻的两个数都小,则称为好数,当然数组最左边和最右边的数不能称之为好数const int N=1e5+5; int a[N],b[N]; int i,j,k; int n,m,t;void go(){ cout<<0<<endl; cout<<a[1]<<' '; if(a[2]) cout<<a[...

2020-09-22 09:09:10 736

原创 C. Killjoy

const int N=2e5+5; int n,m,t; int i,j,k; int a[N];int flag,sum,x;int go(){ if(flag==n) return 0; if(sum==x*n) return 1; if(flag) return 1; else return 2;}int main(){ //IOS; rush(){ sd(n); ...

2020-09-21 23:11:23 129

原创 1545:Balanced Lineup

const int N=5e4+5;const int lgN=15+5; int n,m,t; int i,j,k; int a[N]; int lg[N]; int f[N][lgN]; int g[N][lgN]; void init(){ lg[0]=-1; for(int i=1;i<=n;i++){ lg[i]=lg[i>>1]+1; f[i][0]=a[i...

2020-09-21 22:20:26 32

原创 CCPC 网络赛总结

下午这场比赛一开始就没有给自己太大的压力,本着把水题全部 AC 的意愿大学第一次网络赛就这样结束了,一开始跟着榜做,签到题很快就解决了,不过这次的比赛真的是刷新了我对题意的认识,各种数学公式交叉在一起,队内的翻译也翻译不过来,说白了,还是参加这种比赛的场次少,队伍之间配合不太行。有两道题真的是拼运气了,题目看了个大概,照着样例 AC 了,就这样做完了这 4 道题目之后就开始耗时间了,应该是 1002 那道题,知道怎么做,但是要求 1e10 以内的质数之和,实在没想出来,还有 1005 那道题,这是真

2020-09-20 18:31:11 200

原创 1544:天才的记忆

const int N=2e5+5;const int lgN=18+5; int n,m,t; int i,j,k; int a[N]; int lg[N]; int f[N][lgN]; void init(){ lg[0]=-1; for(int i=1;i<=n;i++){ lg[i]=lg[i>>1]+1; f[i][0]=a[i]; } for(in...

2020-09-20 09:39:03 61

原创 1551:维护序列(区间乘法+区间加法)

虽然感觉是模板题,但做起来很不容易啊在对区间进行乘法运算 (假设 *k )时,乘法的 lazy 标记需要变为 lazy*k区间之和 sum 也要变为 sum*k但是要注意区间的加法运算标记 lazy(add) 也要 *k因为现有的 lazy(add) 标记还未加到区间中还应该注意的是在 lazy 标记的 push_down 操作中,应该先下放 乘法运算的 lazy 标记,因为在上面已经将 lazy(add) 更改了const int ...

2020-09-20 09:13:30 41

原创 训练周记(树状数组+线段树+ST)

半个多月以来都在准备开学考试的事情,算法方面确实懈怠了,中间也有做过几道题目,都是心血来潮或者想换换脑子,其实目前想要解决的问题,是如何适应 acm 与平时课程的关系,晚上一熬夜,也不算很晚,到 11 点半,第二天一直提不起精神来,假期在家养身子把自己养废了目前打算每一周总结一下这周所学知识的模板,为将来做一下准备,更多的是借助博客来发泄一下自己的情绪树状数组:void update(int pos,int val,int *c) //单点更新{ for(int i=pos;..

2020-09-19 22:17:39 27

原创 1550:花神游历各国 (区间开方)

区间问题向 下放操作 上去考虑,当子节点全部都是 1 / 0 时,此时不需要操作更新const int N=1e6+5; int n,m,t; int i,j,k; int a[N]; struct Node { int l, r; ll sum; bool f; //所有子节点都 <=1 则为 1 ; }node[N<<2]; void push_up(int...

2020-09-19 11:13:47 20

原创 1548:A Simple Problem with Integers

const int N=1e6+5; int n,m,t; int i,j,k; int a[N]; struct Node { int l, r; ll sum,lazy; void update(int x) { sum+=1ll*(r-l+1)*x; lazy+=x; } }node[N<<2]; ...

2020-09-19 09:07:33 25

原创 C. Mere Array(排序)

有 n 个数都大于 0,如果有两个数的 GCD =(n 个数中的最小值),那么这两个数可以任意地交换,判断是否可以将这 n 个数变成单调递增的数组这 n 个数排完序之后 a[i] 所对应的数 b[i],要满足 b[i] 可以从任意位置过来,const int N=1e5+5; int n,m,t; int i,j,k; int a[N]; int b[N]; int main(){ IOS; rush(){ ...

2020-09-18 11:39:18 22

原创 1542:最敏捷的机器人

const int N=1e5+5;const int logN=17; int n,m,t; int i,j,k; int a[N]; int log[N]; int dp[N][logN+5][2]; //[0]最大值 [1]最小值void init(){ log[0]=-1; for(int i=1;i<=n;i++){ log[i]=log[i>>1]+1; dp[i][0]...

2020-09-17 22:50:46 26

原创 1541:数列区间最大值

const int N=1e6+5;const int logN=20; int n,m,t; int i,j,k; int a[N]; int log[N]; int f[N][logN+5];int main(){ //IOS; while(~sdd(n,m)){ for(i=1;i<=n;i++) sd(a[i]); log[0]=-1; for(i=1;i<=n;i...

2020-09-17 15:20:01 40

原创 1537:校门外的树

const int N=2e5+5; int n,m,t; int i,j,k; int L[N]; int R[N];void update(int pos,int val,int *c){ for(int i=pos;i<=N;i+=lowbit(i)){ c[i]+=val; }}int sum(int pos,int *c){ int ans=0; for(int i=pos;i;i-=lo...

2020-09-17 14:39:49 30

原创 1539:简单题

const int N=2e5+5; int n,m,t; int i,j,k; int L[N]; int R[N];void update(int pos,int val,int *c){ for(int i=pos;i<=N;i+=lowbit(i)){ c[i]+=val; }}int sum(int pos,int *c){ int ans=0; for(int i=pos;i;i-=lo...

2020-09-17 14:32:12 29

原创 1538:清点人数

const int N=2e5+5; int n,m,t; int i,j,k; int c[N];void update(int pos,int val){ for(int i=pos;i<=N;i+=lowbit(i)){ c[i]+=val; }}int sum(int pos){ int ans=0; for(int i=pos;i;i-=lowbit(i)){ ans+=c[i];...

2020-09-17 14:08:42 47

原创 1536:数星星 Stars

const int N=2e5+5; int n,m,t; int i,j,k; int c[N]; Pair p[N]; int ans[N];void update(int pos,int val){ for(int i=pos;i<=N;i+=lowbit(i)){ c[i]+=val; }}int sum(int pos){ int ans=0; for(int i=pos;i...

2020-09-17 13:59:56 24

原创 1459:friends

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

2020-09-16 08:46:51 31

原创 A. Buying Torches(手速)

初始有 1 根木棒,有两种操作:用 1 根木棒换 x 根木棒用 y 根木棒换一个煤炭需要造 k 个火把每个火把需 1 根木棒,1 个煤炭问以上两种操作最少需要进行多少次int main(){ IOS; rush(){ ll x,y,k; cin>>x>>y>>k; x--; ll num=k*y+k-1; ll ans=num/x; ...

2020-09-15 07:38:56 257

原创 B.Negative Prefixes(构造)

有两个数组 a ,b ,其中 b 数组的值为 1 时,所对应的 a 数组的值不可以随便移动现在可以将 a 数组可以移动的值相互交换使得 k 最小定义 k :在 a 数组中前 j个数之和小于 0 ,j[1,n],k 为最大的 j 的值输出使得 k 最小的排列后的数组将可以相互交换的 a 数组的值从大到小排序,插入即可const int N=2e5+5; int n,m,t; int i,j,k; int a[N]; Pair...

2020-09-15 07:35:39 401

原创 C. Mortal Kombat Tower(DP 走台阶问题)

有两个人玩游戏,a 先走,b 再走,每人最多走一步,最少走两步,给出数组 boss ,当 boss 的值为 1 时,a 需花费 1 金币才可以走,boss 为 0 时不用,b 随便走问最少花费多少金币const int N=2e5+5; int n,m,t; int i,j,k; int a[N]; int dp[N][2];int main(){ //IOS; rush(){ sd(n); ...

2020-09-15 07:26:50 407

原创 POJ 2752 && 1458:Seek the Name, Seek the Fame

const int N=1e6+5; int n,m,t; int i,j,k; //int a[N]; char s[N]; ull power[N]; ull h[N]; const int b=131;bool C(int x,ull val){ int p=n-x; if( h[n]-h[p]*power[x]==val ) return true; return false;}int main(...

2020-09-14 17:02:25 34

原创 POJ 2406 && 1457:Power Strings

const int N=1e6+5; int n,m,t; int i,j,k; //int a[N]; char s[N]; ull power[N]; ull h[N]; const int b=131;bool C(int len,ull val,int x){ for(int i=0;i<len;i+=x){ if(h[i+x]-h[i]*power[x]!=val) return false;...

2020-09-14 16:50:04 32

原创 1455:Oulipo(字符串 Hash)

const int N=1e6+5; int n,m,t; int i,j,k; //int a[N]; char s[N],s1[N]; ull power[N]; ull h[N];int main(){ IOS; power[0]=1; const int b=131; for(i=1;i<=1e6;i++){ power[i]=power[i-1]*b; } rus...

2020-09-14 15:52:49 29

原创 P3368 【模板】树状数组 2(区间修改+单点查询)

const int N=1e5+5; int n,m,t; int i,j,k; int a[N]; struct Node { int l,r; ll sum,lazy; void update(int x){ sum+=1ll*(r-l+1)*x; lazy+=x; } }node[N<<2];void push_up...

2020-09-14 09:09:51 31

原创 P3372 【模板】线段树 1(区间更新+区间求和)

const int N=1e5+5; int n,m,t; int i,j,k; int a[N]; struct Node { int l,r; ll sum,lazy; void update(int x){ //lazy 清空操作 sum+=1ll*(r-l+1)*x; lazy+=x; } }node[N<<2];...

2020-09-14 09:02:58 23

原创 B. Maximum Product(枚举)

给出 n 个数,从中任选 5 个数,这 n 个数中可能有正数有负数和 0 ,求这 5 个数的乘积最大是多少想让其乘积最大,将数组排序后选取最大值或最小值相乘即可得到答案一开始 5 个最小值乘积,然后 4 个最小值 1 给最大值,直至 5 给最大值相乘当然最后若为负数需判断是否含 0本题注意:ans 开始最小值为 -1e18 const int N=1e5+5; int n,m,t; int i,j,k; ll a[N]; vec...

2020-09-14 08:19:11 106

原创 C. Multiples of Length(思维+构造)

有 n 个数,现在有种操作:选取一个区间 [l,r] ,长度 len=r-l+1 , 对于数组 a : a[l]~a[r] 将每一个数都加或减去 len 的倍数这样的操作可以进行三次且必须进行三次,使得每个数都为 0对于每一个数我们都将其变成 n 的倍数,这样只需要一次操作就可以将他们都变成 0先将前 n-1 个数扩大 n-1 倍,再将最后一个数扩大 n-1 倍即可当然 n=1 时,需要进行特判const int N=1e5+5; int n,m,t; ...

2020-09-01 22:50:33 148

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的粉丝

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