自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

抬头仰望光辉岁月

D-competitor-ACking

  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 [题解]P2420

题目简述:见P2420题目分析:由于异或的性质: aaa^a=0a=0a=0,所以可以计算询问的两个点到根节点的路上的异或和进行异或即可。代码:#include<bits/stdc++.h>using namespace std;int n,u,v,val,m,d[100005];bool vis[100005];vector<pair<int,int> > e[100005];void dfs(int x){ vis[x]=true; for(

2022-01-25 09:17:51 436

原创 [题解]CF741B

题目简述:见洛谷CF741B题目分析:因为每个朋友组必须全选或选一人或不选,所以可以将一组中的每一个人和整个组的重量(体积)和beauty度(权值)加入一组中,进行分组背包DP即可。代码:#include<bits/stdc++.h>using namespace std;const int SYX=1005;//我的个人码风,可以理解成MAXN int n,m,v;//n,m如题意所述,v就是最大重量的限制 int w[SYX],b[SYX];//含义和题目相同 int f

2021-11-15 16:35:54 470

原创 [笔记]赛前宣言

祝Codeforces Round #754 (Div. 2) ++RP!!!

2021-11-12 22:28:43 263

原创 [专题]动态规划综合

1.引入动态规划:动态规划_百度百科2.例题整理综合:1.P1439内容:模板LCS代码:#include<iostream>#include<cstdio>using namespace std;int a[100001],b[100001],map[100001],f[100001];int main(){ int n; cin>>n; for(int i=1;i<=n;i++){scanf("%d",&a[i]);map[a

2021-11-11 20:36:51 93

原创 [题解]CF145E

题目简述:见某谷CF145E Lucky Queries题目分析:线段树。在树中我们维护四个东西:最长不下降子序列的长度,最长不上升子序列的长度,4的个数和7的个数。线段树最重要的是 pushuppushuppushup,也就是合并。显然4的个数和7的个数就直接加一下,没什么好说的。因为数列中不是4就是7,所以这个最长不下降子序列一定有一个4和7的分界点。如果这个分界点在左儿子里,那么父节点的最长不下降子序列的长度就是左儿子的最长不下降子序列长度加上右儿子的7的个数。如果这个分界点在右儿子

2021-11-10 20:40:55 210

原创 [题解]CF662D

题目描述:见CF662D大致思路:长度为1的后缀可以表示10个年份。。长度为2的后缀可以表示100个年份。。长度为k的后缀可以表示10k10k个年份。。 这样加起来到长度为k+1k+1的后缀的时候,已经有tot=101+102+103+…+10ktot=101+102+103+…+10k个年份被唯一表示过了。 所以长度为k+1k+1的后缀可以表示的年份在1989+tot1989+tot到1989+tot+10k+1−11989+tot+10k+1−1之间。这样便可以根据后缀的位数唯一表示出年份了

2021-11-10 20:02:08 101

原创 密码document

谁能让这个cpp文件跑出正常的语言,他就是CTSC级的大佬!代码:#include<bits/stdc++.h>#include<time.h>using namespace std;#define one 5#define two 7#define three 1#define four 2#define five 9#define six 4#define seven 3#define eight 6#define nine 8#define bomb

2021-11-09 19:20:05 196

原创 [题解]CF106C

题目来源:见CF106C思路:一个再简单不过的背包,过程不尽述。这题也是蓝题???代码:#include<cstdio>#define max(a,b) (a>b)?a:busing namespace std;int n,m,a,b,c,d,dp[1010],ans;inline int read(){ int x=0,f=1; char c=getchar(); while(c<'0'||c>'9'){if(c=='-') f=-

2021-11-09 18:58:12 225

原创 [题解]CF60B

题意简述:见CF60B思路:一个简单的广搜,只要设置方向为三维即可。代码:(注释很全)#include<cstdio>//建议不用万能头,提高效率 #include<queue>//广搜必备的数据结构 using namespace std;int n,m,k;//k层数,n长,m宽 int ans;int sx,sy;//输入的第一层的x,y坐标 int dx[6]={0,0,0,0,1,-1};//x方向 int dy[6]={0,0,1,-1,0,0};

2021-11-07 22:10:32 71

原创 [题解]CF438D

要义:此题为一题多解的题目,旨在拓宽我们的思维。题目:见CF438D思路:线段树解法:注意到取模运算的性质:xxx modmodmod ppp <<< x2{x\over 2}2x​ (p<x)(p<x)(p<x)所以取模也最多是 log⁡x\log xlogx 次,我们不妨记录区间最大值,如果最大值 <p<p<p 直接返回,就可以通过此题。代码:#include<iostream>#include<cstdio&

2021-11-05 20:05:07 140

原创 [题解]P1471

题目背景:见2021-11-03发表的我又回来了记得支持我!题目来源:见P1471思路:方差公式还有另一种形式,就是所有数的平方和的算术平均数减去这些数的算数平均数的平方。写出来就是:所以用线段树维护区间和和区间平方和就可以了。代码也非常简单。但是,在更新数据时,必须先更新区间平方和,再更新区间和,不然会出错。原因是:这就是原因所在。综上,这真是一道优秀的模板题。代码:#include<bits/stdc++.h>using namespace std;con

2021-11-03 20:48:23 92

原创 我又回来了

经过10.25~11.2共9天的停更,我又复活了!接下来好篇不断!记得关注哦!!!

2021-11-03 20:37:40 81

原创 2021-10-23csp-j组成绩报告

题面:暂略,见:P7909P7910P7911P7912代码:candy:数学方法,时间复杂度为常数,100ptsptspts代码:#include<bits/stdc++.h>using namespace std;int n,l,r;int main(){ freopen("candy.in","r",stdin); freopen("candy.out","w",stdout); scanf("%d%d%d",&n,&l,&r);

2021-10-24 13:21:13 305

原创 2021-10-23csp-s组成绩报告

题面:暂略,见:P7913P7914P7915P7916代码:airport:我直接暴力,n3n^3n3的时间复杂度,20ptsptspts也太逊了。代码:#include<bits/stdc++.h>using namespace std;int n,m1,m2,ans;struct de{ int a,b;}d[100005];struct inter{ int a,b;}in[100005];bool cmp1(de x,de y){ return

2021-10-24 13:08:56 711

原创 [模板]单调队列

(题目不难,只有例题)例题:例题1 滑动窗口:题目来源:P1886代码:见题解P1886例题2:calc:代码:#include<bits/stdc++.h>using namespace std;long long ans=0;deque<int> q;int n;long long v[1000005];int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lld",&a

2021-10-20 22:07:59 81

原创 [模板]图结构

从存储到简单算法(最短路、最小生成树)

2021-10-18 23:49:25 126

原创 [模板]线段树

线段树的例题n道,持续更新例题中,敬请期待

2021-10-17 22:08:58 145 1

原创 [题解]P1111

题目描述:P1111思路:最小生成树(MST),详情见[模板] MSTAC代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct p{ int x,y,t;}e[200000];int f[200000],n,m;int cmp(const p &a,const p &b)

2021-10-17 15:57:34 127

原创 [题解]P3957 [NOIP2017 普及组] 跳房子

前情预告:本题算法标签:动态规划、二分答案、单调队列。题目描述P3957 [NOIP2017 普及组] 跳房子思路:首先,从文章内容来看,“现在小 RRR 希望获得至少 kkk 分”这句话,很明显是在暗示我们使用二分答案的(不然你无法知道状态转移方程的转移量是多少)。可以将l设为0,r设为最右边的点的坐标(虽然可以再小一点,不过没必要),并且若最后连l都不成立,则无解,输出-1。接下来就是如何判断是否成立的问题了。显然使用动态规划(也是感觉问题)。dp[i]dp[i]dp[i] 表示跳到第

2021-10-17 15:19:29 484

原创 [题解]P2574

题目描述:P2574 XOR 的艺术思路:线段树维护区间1的值的个数。(用到了懒标记)。代码:#include<bits/stdc++.h>using namespace std;#define maxn 200005int a[maxn],n,m;string s;struct stree{ int l,r; int sum; int add;}t[4*maxn];void build(int p,int l,int r){ t[p].l=l,t[p].r=r

2021-10-17 12:47:06 111 1

原创 [模板]高精度+[题解]P1932

输入两个高精度数,输出和、差、积、除、模的值。代码:#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int MAXN=1e5;const int siz=8;const long long MOD=1e8;//MOD=10^sizchar ch1[MAXN],ch2[MAXN];bool f1

2021-10-17 11:53:45 136 2

原创 [题解]P1280

题目描述:P1280思路:(本时刻无任务)f[i]=f[i+1]+1;//继承上一个时刻的最大空闲时间后+1(本时刻有任务)f[i]=max(f[i],f[i+a[sum])//a[sum]表示在这个时刻的任务的持续时间,找出选择哪一个本时刻任务使空闲时间最大化很简单的事了,用vector防爆。代码:本代码自带快读。#include <bits/stdc++.h>using namespace std;inline int read(){ int x=0,f=1;char

2021-10-16 21:57:38 72 1

原创 划水的题解

题目:支持gzx20210226支持以太以北(不要忘记三连+评论)答案:#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int ans[11];void check(){ int a[6]; memset(a,0,sizeof(a)); for(int i=1;i<=10;i++) { for(int j=1;j<=5;j++)

2021-10-16 21:40:01 189 1

转载 古老的智力题

请回答下面10 个问题,各题都恰有一个答案是正确的:1、第一个答案是b的问题是哪一个?(a)2 (b)3 (c)4 (d)5 (e)62、恰好有两个连续问题的答案是一样的,它们是:(a)2,3 (b)3,4 (c)4,5 (d)5,6 (e)6,73、本题目答案和哪一个问题的答案相同?(a)1 (b)2 (c)4 (d)7 (e)64、答案是a的问题的个数是:(a)0 (b)1 (c)2 (d)3 (e)45、本题目的答案和哪一个问题的答案相同?(a)10 (b)9 (c)8 (d)7

2021-10-16 21:36:31 108 2

原创 [题解]CF1051D

题目描述:CF1051D思路代码中有,不详细讲解了。#include<bits/stdc++.h>using namespace std;/*一个网格2行和n列,此网格的每个单元格应为黑色或白色。如果两个单元具有共同的边界并且共享相同的颜色,则它们被认为是邻居。 如果存在属于与B相同的组件的邻居A,则两个小区A和B属于一个联通。如果它具有正好的k个连通,那么我们称之为一个双色块。计算构成k个双色块的方案数。答案模998244353f[i][j][type] 第i列,已经有j

2021-10-16 21:34:48 92 1

原创 [题解]连通图(POJ1737/AcWing307)

前情预告:由于作者lan(双关),代码预计在11月1日前上传。题目描述:求 N 个节点的无向连通图有多少个,节点有标号,编号为 1∼N(N<=50)。例如下列图示,三个节点的无向连通图共 4 个。题解:状态转移方程:解释:考虑连通图数=总数-非连通图数,易得结论。代码:此题需高精度,日后姐答。...

2021-10-16 21:14:08 135 1

原创 [模板]快读

快读算(n+1)的平方的值:#include<bits/stdc++.h>using namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); if(!isdigit(ch)){if(ch==45)f=-1;ch=getchar();} while(isdigit(ch)){x=x*10+ch-48;ch=getchar();} return x*f;}int n;int main(){ n=read()

2021-10-16 20:37:07 56 1

原创 [模板]高精度

高精度加减乘除代码

2021-10-16 12:23:36 75 1

原创 [题解] zelda

题目见zelda代码:#include<bits/stdc++.h>using namespace std;char x;int n,s[200005];int f[1<<26]; int main(){ scanf("%d",&n); scanf("%c",&x); for(int i=1;i<=n;i++){ scanf("%c",&x); s[i]=s[i-1]^(1<<(x-97)); } memse

2021-10-14 17:56:15 104 2

原创 问题待求助

题目描述:可能思路:dp

2021-10-10 16:36:15 115 1

原创 一个小技巧

我们可以用#define int long long来防止爆int,当然,要将%d定义为%lld。ps: 要用signed main()代替int main()。例子:#include<bits/stdc++.h>using namespace std;#define int long long#define d lldint n;signed main(){ scanf("%d",&n); printf("%d",n*(n+1)/2); return 0;}

2021-10-09 22:12:23 57 2

原创 [模板] MST

#include<bits/stdc++.h>using namespace std;struct rec{ int x; int y; int z;}edge[200005];int n,m,ans,tot=0;int fa[5005];bool cmp(rec a,rec b){ return a.z<b.z;}int get(int x){ if(fa[x]==x) return x; else return fa[x]=get(fa[x]);}int

2021-10-09 22:06:35 75 2

原创 [模板] LCA

#include<bits/stdc++.h>using namespace std;const int SIZE=500005;int head[SIZE],nxt[SIZE*2],ver[SIZE*2],tot=0;int n,m,s,t,d[SIZE],f[SIZE][20];queue<int> q;void add(int x,int y){ ver[++tot]=y,nxt[tot]=head[x],head[x]=tot;}void bfs(){ q

2021-10-09 22:04:53 58 1

原创 [模板]单源最短路径

#include<bits/stdc++.h>using namespace std;const int N=100005;const int M=500005;int head[M],edge[M],ver[M],nxt[M],tot=0;bool v[N];int d[N];long long n,m,s;priority_queue< pair<int,int> > q;void add(int x,int y,int z){ ver[++tot

2021-10-09 22:01:24 57 1

原创 [题解]CF1581A CQXYM Count Permutations

CF1581A CQXYM Count Permutations英文题,不要怕

2021-10-09 21:13:42 93 1

原创 [题解]CF10D LCIS

题目描述:CF10D LCIS思路:DP,算法进阶P226有,我也不仔细介绍了。ps:可以用类似背包的思想,优化空间(代码注释里都有)。贴AC代码:#include<bits/stdc++.h>using namespace std; int n,m,p,a[502],b[502],f[502],g[502];//g是记录路径(选择)的数组/*分析状态转移方程可知f[i][j]都是由f[i-1][j]得来的,因此可以优化空间,设f[i]代表的是a序列前i个元素与b序列的LCI

2021-10-06 21:03:58 142 2

原创 [题解]CF33C Wonderful Randomized Sum

题目描述:CF33C Wonderful Randomized Sum思路:当变化的前缀和后缀相同时,中间重叠的部分相当于没有变化。设前缀为A,后缀为B,中间重叠部分为C,总合为S,则答案为-(A+B)+C,即2C-S的最大值。ps:于是乎,这题配不上绿题。这道橙题,一言以蔽之,就是最大子段和。P1115 最大子段和贴AC代码:#include<bits/stdc++.h>using namespace std;int n,a[100005],s,maxs,sum;i

2021-10-06 20:37:53 203 3

原创 [模板]ST表(洛谷P3865)

/*#include<cstdio>#include<cmath>#include<algorithm>*/#include<bits/stdc++.h>using namespace std;const int MAXN=1e6+10;inline int read(){//自带快读 char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){if(c=='-')f=-1;c=

2021-10-04 21:59:01 57 1

原创 [模板]堆(洛谷P3378)

#include<bits/stdc++.h>using namespace std;int n,len,op;long long heap[1000005],x;void put(int x){ heap[++len]=x; int p=len; while(p!=1&&heap[p]<heap[p/2]){ swap(heap[p],heap[p/2]); p/=2; } return ;}void pop(){ swap(heap[1]

2021-10-04 21:51:11 70 1

原创 P1290 欧几里德的游戏

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录题目内容:来源:题目描述内容输入格式输出格式输入输出样例输入 #1输出 #1说明/提示思路:代码:总结:题目内容:来源:P1290 欧几里德的游戏题目描述内容欧几里德的两个后代 Stan 和 Ollie 正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的。给定两个正整数 MM 和 NN,从 Stan 开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数不能小于 00。然后是 Ollie,对刚才得到的数,

2021-10-04 19:26:28 640 1

airport.cpp

airport.cpp

2021-10-23

NOI大纲重点解读.doc

NOI比赛所有考点都在里面的

2021-10-04

空空如也

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

TA关注的人

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