自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 acm - 搜索模板

acm搜索模板

2022-08-04 16:10:41 448 1

原创 acm - 图论模板

acm图论模板

2022-08-04 15:49:18 218

原创 acm - 数据结构模板

数据结构模板

2022-08-04 15:48:12 394

原创 acm - 动态规划模板

动态规划模板

2022-08-04 15:47:15 469

原创 2021.12.14

2021.12.14位运算[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZZvR6qJU-1639543248823)(C:\Users\ADguy\AppData\Roaming\Typora\typora-user-images\1639452312575.png)]题意:输出所有的二元组 <ai,aj><a_i,a_j><ai​,aj​> 的个数,使得 ai&aj≥ai⨁aja_i \& a_j \geq a_

2021-12-15 12:41:16 1541

原创 2021.12.13

2021.12.13思维构造+小算数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jTJrl643-1639543185683)(C:\Users\ADguy\AppData\Roaming\Typora\typora-user-images\1639412660425.png)]题意:给出一串长度为 nnn 的序列,可以进行总次数不超过 3n 的操作使得序列中的所有数都相等。每次操作选择三个数 i,j,xi,j,xi,j,x使得 ai−=x×i,aj+=x×ia

2021-12-15 12:40:33 507

原创 LCA(最近公共祖先)

LCA(最近公共祖先)在一个树形结构中给出两个点,求出与他们最接近的共同祖先。法一:向上标记法 时间复杂度 O(n)O(n)O(n)从点 111 往上走到根节点,走过的点都标记从点 222 往上走,碰到的第一个带标记的点就是最近公共祖先法二:倍增 预处理时间复杂度 O(nlogn)O(nlogn)O(nlogn) ,单次查询时间复杂度 O(logn)O(logn)O(logn)先声明几个数组:f[i][j]f[i][j]f[i][j] 表示从 iii 向上走 2j2^j2j 次步的节点的编

2021-11-21 20:46:16 556

原创 SPFA介绍及判负环的应用

SPFA介绍及判负环的应用SPFA(队列优化算法) 是求单源最短路径的一种算法,他还有一个重要的功能是判断负环。如果没必要判负环建议使用Dijkstra主要思想及方法:设一个数组用来存储源点到其他顶点的最短路径(过程中的当前最优解),初始化时,其他顶点为无穷。再设立一个 队列 ,读取队头顶点,并将队头顶点 nownownow 出队(记得消除标记),将与点 nownownow 相连的所有点 nextnextnext 进行松弛操作,如果能更新值(即 dis[next]>dis[now]+valu

2021-11-21 20:45:46 280

原创 差分约束例题

差分约束例题写在前面差分约束的题目最关键关键关键的就是把所有约束条件一个不落的转化成图中的边 。如果不能够保证通过某一个点能够到达 任何的边 ,我们还需要自己创立一个超级源点来构成一个连通图。往往题目中会给出一些在明处的约束条件,然而还会有许多藏在 暗处 的约束条件会被遗漏掉。例如 xi>0x_i>0xi​>0 ,xi−xi−1≤1x_i- x_{i-1}\leq1xi​−xi−1​≤1,xi≥xi−1x_i\geq x_ {i-1}xi​≥xi−1​ 这种。建图前一定要三思而后行。

2021-11-21 20:44:55 384

原创 差分约束算法

差分约束差分约束的引入假设现在有一组不等式方程组,求 x3−x0x_3 - x_0x3​−x0​ 的最大值$x_1-x_0 \leq 2 $ (1)x2−x0≤7x_2-x_0 \leq 7x2​−x0​≤7 (2)x3−x0≤8x_3-x_0 \leq 8x3​−x0​≤8 (3)x2−x1≤3x_2-x_1 \leq 3x2​−x1​≤3 (4)x3−x2≤2x_3-x_2 \leq 2x3​−x2​≤2 (5)可整理到以下三个不等式:x3−x0≤8x_3-x

2021-11-21 20:44:30 207

原创 强连通分量例题

强连通分量例题带明星题意:每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果 A 喜欢 BB,B 喜欢 C,那么 A 也喜欢 C。牛栏里共有 N 头奶牛,给定一些奶牛之间的爱慕关系,请你算出有多少头奶牛可以当明星。输入:第一行:两个用空格分开的整数:N 和 M。接下来 M 行:每行两个用空格分开的整数:A 和 B,表示 A 喜欢 B。$ 1≤N≤10^4, 1≤M≤5×10^4 $输出:一

2021-11-21 20:43:22 709

原创 无向图的双连通分量

无向图的双连通分量一些定义和性质:对于一张连通的无向图,如果删除图中的某条边之后原先的图不能成为连通图,那么这条边就被称为 桥极大的不包含桥的连通块,被称为 边双连通分量(e-dcc)对于边双连通分量,不管删除哪条边,图依旧是连通的。类似于桥,如果删除图中的某个点与和他连的边之后原先的图不能成为连通图,那么这个点就被称为割点极大的不包含割点的连通块,被称为 点双连通分量(v-dcc)对于一个连通块 uuu ,如果不存在另一个连通块 vvv ,使得 vvv 包含 uuu 中所有的元素并且 vv

2021-11-21 20:42:56 291

原创 最小环问题

最小环问题无向图的最小环用Floyd算法可以处理最小环问题。准确的说是顺便算出最小环。Floyd算法能够求出无向图的多源最短路。能够保证最外层循环到k是所有顶点间已求得 0...k−10...k-10...k−1 为中间点的最短路径。一个环至少有三个顶点。 我们假设存在一个环,假设这个环中最大的节点是 kkk , iii 和 jjj 都是与 kkk 相邻的点。则最大编号为 kkk 的最小环长度即为 mp[i][k]+mp[j][k]+dis[i][j]mp[i][k]+mp[j][k]+dis[i][

2021-11-21 20:41:48 919

原创 拓扑排序例题

拓扑排序例题:模板题1:P4017 传送题意:给你一个食物网,你要求出这个食物网中最大食物链的数量。(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者。)Delia 非常急,所以你只有 111 秒的时间。由于这个结果可能过大,你只需要输出总数模上 801120028011200280112002 的结果。输入:第一行,两个正整数 n,mn,mn,m,表示生物种类 nnn 和吃与被吃的关系数 mmm 。接下来 mmm 行

2021-10-28 14:41:11 2514

原创 强连通分量(Tarjan算法)和缩点

强连通分量(Tarjan算法)和缩点一些定义给定一张有向图,对于图中任意两个节点 xxx 和 yyy ,存在从 xxx 到 yyy 的路径,也存在从 yyy 到 xxx 的路径,则称该有向图为强连通图。有向图的强连通子图被称为强连通分量SCC显然,环一定是强连通图。因为如果在有向图中存在 xxx 到 yyy 的路径,且存在 yyy 到 xxx 的路径,那么 x,yx,yx,y 一定在同一个环中。对于一个有向图,如果从 rootrootroot 可以到达图中所有的点,则称其为“流图”,而 rootr

2021-10-28 14:40:04 274

原创 10.05 练习赛总结

比赛链接:点击这里传送(赛中已过)A 题目链接:点击这里传送题意:给出两个数n和k,表示需要到达的人头数和总共有的钱。一开始now为0。每天可以花x元买x人(∑i=1mxi<k\sum_{i=1}^mx_i<k∑i=1m​xi​<k)。每天晚上会自动增加一些人头量,增加的量的公式为min(now,n−now2)min(now,\frac{n-now}{2})min(now,2n−now​)。问最少需要多少天人头量能达到要求。思路:就第一天买1个人,然后让他每天晚上自己涨。涨到

2021-10-07 22:40:17 76

原创 10.01练习赛总结

2021上海省赛 比赛链接:点击这里传送A 题目链接:点击这里传送思路:输入两个向量,求出他们的叉乘。#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); int x,y,z,xx,yy,zz; cin>>x>>y>>z; cin>>xx

2021-10-05 01:29:06 357

原创 Codeforces Round #738 (Div. 2) (A~D1) 题解

比赛链接:点击这里传送官方题解链接:点击这里传送1559A Mocha and Math 题目链接:点击这里传送题意:有一串长度为n的序列a1,a2,a3,a4,a5a_1,a_2,a_3,a_4,a_5a1​,a2​,a3​,a4​,a5​……。选定一段区间[l,r]\left[l,r\right][l,r],使得里面的元素对称的替换为al+ia_{l+i}al+i​&ar−ia_{r-i}ar−i​,i>=0。要求使这个新的序列的最大值尽可能小,输出这个最小值。思路:思维

2021-09-22 16:23:46 126

原创 Educational Codeforces Round 114 (Rated for Div. 2) (A~D) 题解

写完题后胡思乱想了整个晚上,早上眼睛没合写出来的文章,可能有很多错误请谅解,写完就赶着睡觉去了比赛链接:点击这里传送1574A Regular Bracket Sequences 题目链接:点击这里传送题意:输入一个数n,输出n个不同的由n个左括号和n个右括号组成的合法括号序列思路:观察给的数n和下面给出的一组变换。最开始为((()))最开始为((()))最开始为((()))((()))经过了swap(a3,a5)变成了(())()((()))经过了swap(a_3,a_5)变成了(()

2021-09-21 08:59:48 103

原创 Codeforces Round #739 (Div. 3) 题解

比赛链接:点击这里传送官方题解链接:点击这里传送1560A Dislike of Threes 题目链接:点击这里传送题意:一个序列中的元素不能包含3或者被3整除。求这个序列第k个数。思路:无,他咋说就咋做#include<bits/stdc++.h>using namespace std;int t, n;vector <int> v;int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.

2021-09-20 19:58:58 125

原创 Codeforces Round #743 (Div. 2) (A~C) 题解

比赛链接:点击这里传送官方题解链接:点击这里传送1573A Countdown 题目链接:点击这里传送题意:有一串序列,你要将他全部变成0.可以进行下述两个操作,交换两个位置的元素,是最后一位的元素减一。求完成要求的最小操作数量思路:有前导零的存在,先找出第一个不为0的位置。然后对接下来的数字进行模拟,分最后一位和不是最后一位以及0和非0的情况。#include<bits/stdc++.h>using namespace std;string s;int t, n;in

2021-09-20 16:05:44 481

原创 Codeforces Round #740 (Div. 2, based on VK Cup 2021 - Final (Engine)) (A~D1)题解

比赛链接官方题解链接1561A Simply Strange Sort 题目链接:点击这里传送题意:现给出一串序列,要将其变成升序。关于一趟排序的定义是for (int i = 1; i <= n-2; i += 2){ if (a[i] > a[i + 1]) swap(a[i], a[i + 1]);}或者for (int i = 2; i <= n-1 ; i += 2){ if (a[i] > a[i + 1]) swap(a[i], a[i +

2021-09-18 15:07:00 214

原创 Codeforces Round #741 (Div. 2) (A~D2)题解

比赛链接:点击这里传送官方题解链接:点击这里传送1562A The Miracle and the Sleeper 题目链接:点击这里传送题意:给定一个范围[l,r]\left[{l},{r}\right][l,r],在这个范围内任意选两个数a和b,使得b mod a最大思路:如果l>r/2,直接输出r-l。否则输出(r-1)/2。因为理论上模数最大时除数为1,此时模数最大为(r-1)/2.#include<bits/stdc++.h>using namespace

2021-09-18 09:32:05 115

原创 Deltix Round, Summer 2021 (open for everyone, rated, Div. 1 + Div. 2) (A~D)题解

比赛链接:点击这里传送官方题解链接:点击这里传送1556A A Variety of Operations 题目链接:点击这里传送题意:一开始a和b都为0。一共有三种操作,a和b都加上k,a-k并且b+k,a+k并且b-k。通过这三种操作方式将a和b变成指定的x和y,并且操作次数要尽可能少。输出操作的次数,如果不行输出-1.思路:如果A和B一开始就是x和y,输出0.如果他们的差值是偶数,先一起加到中间值,然后一个减(x-y)/2一个加(x-y)/2,输出2.如果x和y相同,输出1.否则输出-

2021-09-16 16:19:46 297

原创 Educational Codeforces Round 113 Div.2 (A~C)题解

比赛链接:点击这里传送官方题解链接:点击这里传送1569A Balanced Substring 题目链接:点击这里传送题意:定义Balanced Substring中a字符和b字符数目相同。现在给出一个字符串s,要求输出[l,r],表示其连续子串的上下界,使得这个连续子串为Balanced Substring。如果没有,输出-1 -1。思路:维护两个前缀和,表示a字符和b字符,之后二层循环遍历l和r,若该连续子串满足Balanced Substring的定义,就结束程序。#include

2021-09-16 00:15:15 87

原创 Codeforces Round #742 Div.2 (A~E)题解

比赛链接:点击这里传送官方题解链接:点击这里传送Codeforces 1567A 题目链接:点击这里传送题意:给出n个1 ×\times× 2大小的多米诺骨牌组成2×\times×n的矩形。现输入第一行的多米诺骨牌的方向,根据上图的格式输出排列方法。思路:上下左右四个方向都取其对立面输出就行。#include<bits/stdc++.h>using namespace std;int t, n;string s;string ans;int main(){ ios

2021-09-15 11:56:59 335

原创 Codeforces Global Round 16 题解(A~D2)

比赛场次链接:点击这里传送官方题解链接:点击这里传送Codeforces 1566A 题目链接:点击这里传送题意:给出一个组序列所有数的个数和他们的和,要求你构造出一个非递减序列,使得这个序列的中位数尽可能大并输出这个中位数。思路:中位数前面的数全设为0,后面的数取平均值(向下取整)。#include<bits/stdc++.h>using namespace std;int t, n, sum;//7 3//8 3int main(){ ios::sync_wi

2021-09-13 20:28:23 168

原创 8.11个人训练总结

洛谷 P2678 题目链接:点击这里传送思路:对最短距离的最大值进行二分答案,具体看代码注释#include<bits/stdc++.h>using namespace std;long long maxl, n, m, ans;//距离,岩石数,至多移走的岩石数long long a[500005];//记录n块岩石与起点的距离bool flag(long long dis){ long long step = 0; long long f = 0; for (long

2021-08-12 10:59:09 85

原创 8.9个人训练总结

今晚CF鸽了,陪跑完AB就睡大觉去,傻逼学校那服务器我真服了,电费分几次交交不上的,直接没空调过了一晚。Codeforces 1202A 题目链接:点击这里传送题意:给定两个二进制下的数字A和B,要求另A+B×\times×2k2^k2k的结果倒置后最小。求这时的k。思路:B×\times×2k2^k2k就类似于十进制的$\times$10,就是往后面加0。找到B串最后一次出现1的位置,通过加0的方式让B串这位上的1尽快和A串的1匹配上。(未匹配时为1,匹配后1+1=0,成功减小了字典序)输出

2021-08-10 12:39:26 70

原创 8.5~8.7个人训练总结

Codeforces 1550B 题目链接:点击这里传送题意:你每次可以删除一个子串,他的元素必须为同一个数。这样删除一次的得分是 a×\times×len+b。现输出删光所有元素后最大的得分总和。思路:不用管a,因为都得删光。对于b,如果是负数,那么就让删的次数尽可能少,如果是正数,就一个个删。#include<bits/stdc++.h>using namespace std;int t,n,cnt;string s;int a, b;int ansa, ansb;i

2021-08-08 16:58:58 85

原创 8.4个人训练总结

学了ST表,一天没刷多少题,下次干回来。Codeforces 1550A 题目链接: 点击这里传送题意:对于任意在一个序列中的元素a[i],如果a[i]-1或a[i]-2出现在序列中,那么这个序列就是合法的。现给出一个数字代表序列元素的和,求构造这个序列元素所需最小的个数。思路:最小是 (n−1)2(n-1)^2(n−1)2最大是n2n^2n2,中间的数类似于二进制那种感觉都可以构造出来#include<bits/stdc++.h>using namespace std;int

2021-08-05 11:05:33 70

原创 Codeforces Round #736 (Div. 2) (A~D)题解

Codeforces 1549A 题目链接:点击这里传送题意:给出一个质数,要求你构造出两个数使这个质数与这两个数的模相同思路:质数必定是奇数,那么一个为2一个为n-1,模必然为1#include<bits/stdc++.h>using namespace std;int t,n;map <int,int> mp;int main(){ ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); ci

2021-08-04 10:21:24 180

原创 8.3个人训练总结

红酒哥比赛A题:题目链接:点击这里传送题意:给出n个非递减的数字,要求你改变某一个数字的某一位,使其不构成非递减序列。如果不能输出Impossible思路:就模拟,枚举相邻的两个数,如果前一个数的第一位变成9或者后一个数的第一位变成1(个位数变成0)仍然合法,继续枚举直到遍历完所有数字。#include<bits/stdc++.h>using namespace std;#define MAXN 105#define ll long longint n;ll a[MAXN]

2021-08-04 10:07:20 104

原创 7.31个人训练总结

写这篇文章的时候是在8.3 0:20分。。。别问我为什么拖这么久,开始两天放假在打游戏没心情写这个屑报告,2号白天要补题和罚坐,晚上有事出去吃小龙虾。Codeforces 1555A 题目链接:点击这里传送题意:你要买n个披萨,但是披萨店只能花15分钟烤6个披萨,20分钟烤8个披萨,25分钟烤10个披萨,你只能选择上述的三种形式。思路:仔细观察就能发现,无论哪种方式,烤披萨的时间都是2.5分钟1个。就转变成了类似于出租车计费的问题,起步价是15,后面每烤2个披萨(向上取整)再加5。#inclu

2021-08-03 00:39:32 80

原创 Educational Codeforces Round 112 Div.2 A~E题解

官方题解链接:点击这里传送Codeforces 1555A 题目链接:点击这里传送题意:你要买n个披萨,但是披萨店只能花15分钟烤6个披萨,20分钟烤8个披萨,25分钟烤10个披萨,你只能选择上述的三种形式。思路:仔细观察就能发现,无论哪种方式,烤披萨的时间都是2.5分钟1个。就转变成了类似于出租车计费的问题,起步价是15,后面每烤2个披萨(向上取整)再加5。#include<bits/stdc++.h>using namespace std;#define ll long l

2021-08-03 00:12:00 133

原创 7.30个人训练总结

Codeforces 1554C 题目链接:点击这里传送题意:给定n和m,要求构造一个序列为 n ⨁\bigoplus⨁ 0, n ⨁\bigoplus⨁ 1, n ⨁\bigoplus⨁ 2 … n ⨁\bigoplus⨁ m。求未在这个序列中出现的最小自然数。思路:关键公式: n⨁\bigoplus⨁k =m ⇐\Leftarrow⇐⇒\Rightarrow⇒ n⨁\bigoplus⨁m=k∵\because∵ n⨁\bigoplus⨁i=k ,i∈\in∈[0,m]∴\therefo

2021-07-31 09:41:16 77

原创 Codeforces Round #735 (Div.2) (A~D)题解

比赛链接:点击这里传送官方题解链接:点击这里传送不得不说这次的题目出得真是有思考量,打比赛的时候猪脑过载,打完后看完琢磨了官方题解就顿悟了神评论:Codeforces 1551A 题目链接:点击这里传送题意:任意选定一个区间,定义f(l,r)是区间内的最大值乘区间内的最小值的结果,输出这个结果的最大值。思路:先说结论,就是一轮遍历下来 a[i]乘a[i-1]的最大值 。假设先任意选取一对相邻的数,如果我们添加一个附近的数能改变f(i,j)的值,那么实际上这个值就是f(i-1,i)的值

2021-07-30 13:37:05 85

原创 7.29个人训练总结

下午有事去了趟医院,只能把红酒哥那边比赛的签到题写完了。现在又没补题又没题解的,两道没法做是真难受codeforce 1551 B2 题目链接:点击这里传送题意:给出n个元素以及他们的编号,还有颜料的种类个数,要求你尽可能多的给他们上色1. 同一编号的元素不能涂有相同的颜色2. 每种颜色的数量必须一样多(未上色的不算)3. 颜色的种类不能超出给定的个数思路:构造一个结构体,记录他们的颜色,编号及种类(自己定义)首先统计每个种类的数量,对于小于等于k的,他们的种类就是颜色的编号,对于大于k的他

2021-07-30 09:50:59 94

原创 7.28个人训练总结

牛客18454I 题目链接 :点击这里传送题意:给出三种类型的拼图块的数量角(与外界有两块接触)边(与外界有一块接触) 肚皮(与外界没有接触)求这样有没有可能组成一幅完整的拼图,如果可能输出这个拼图的长和宽分析:题目已保证是个矩形且不会有一字长龙的情况出现(这样角与外界接触的面就是3了)那么在确保角的个数为4的情况下遍历长和宽使得长×宽=肚皮的个数即可需注意的是输出时 长>宽且 对于肚皮个数为0的情况的处理(遍历时从0开始)或特判#include...

2021-07-29 00:40:36 307

空空如也

空空如也

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

TA关注的人

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