自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 博主个人介绍

博主坐标山东济南,就读于齐鲁工业大学,2020年入学,现为一名acmer,曾经是一个失败的oier,以通宵打codeforces为乐(还是青名菜鸡),乐于交友,QQ:942845546比赛名称成绩(名次)2020年天梯赛124分2020年ICPC南京站铁牌(两题 399/545)2020年ICPC昆明站铁牌(两题 460/763)............

2021-04-15 13:17:05 950 4

原创 Plan for ACM

1.每天补完一场Div22.刷完《算法竞赛进阶指南》3.刷ICPC、CCPC历年区域赛

2020-12-29 20:37:47 99

原创 ACM模板

1.快速幂(取模)ll qpow(ll a, ll b, ll k){ ll ans = 1; while(b){ if(b & 1) ans = (ans % k) * (a % k) % k; ans %= k; a = (a % k) * (a % k) % k; b >>= 1; } return ans %= k;}

2020-12-26 12:02:46 107

原创 AtCoder Beginner Contest 259 E F

题目题意:给定 nnn 个数字的分解完质因数的形式,nnn 轮,第 iii 轮将第 iii 个数转换为 111,然后再恢复,问一共会出现多少个不同的最小公倍数。思路:我们从最小公倍数最原始的定义出发,一堆数的最小公倍数肯定是先把这些数的质因数整理出来,每个质因数的次数肯定是这个质因数出现最大值。我们可以先将所有的质因数整理一下,然后对出现的次数从大到小排序,因为对最小公倍数有影响的肯定是最大的那一个。然后从 111 到 nnn 枚举,如果当前枚举的数的这个质因数是最大值,我们看一下这个质因数的次大值是不

2022-07-09 22:30:24 212 1

原创 Educational Codeforces Round 117 (Rated for Div. 2)A-E

A. Distance思路:通过观察可以看出数据范围很小,暴力枚举每一种可能并判断是否合法。代码:#include <bits/stdc++.h>#define fi first#define se second#define pb push_backusing namespace std;using ll = long long;using PII = pair <int, int>;using vi = vector <int>;const in

2021-11-23 20:25:53 420

原创 C. Shawarma Tent

题目链接思路:显然,答案的范围可以缩小到只有学校周围的四个点。代码:#include <bits/stdc++.h>#define fi first#define se second#define pb push_backusing namespace std;using ll = long long;using PII = pair <int, int>;using vi = vector <int>;const int N = 2e5 + 10;

2021-11-17 21:58:12 252

原创 Codeforces Round #655 (Div. 2) D. Omkar and Circle

链接题意:给一个奇数长度的数组,操作是选择一个位置,删除其相邻的数,并将该位置的数赋值为相邻数的和,求最终剩下的一个数字最大为多少思路:最简单的取值方式显然是取所有的下标为奇数的数字的和以及取所有下标为偶数加上下标1的和,但是这样的话这题似乎就太简单了,于是我们开始考虑能否通过一些手段构造出其余的取值方法。经过不断肉眼观察,我们可以发现,当利用最后一个数字为中间数时可以实现包含奇数和偶数的构造方法,形如1+3+5+6,1+3+4+6,1+2+4+6……,于是我们可以通过求出奇数项和偶数项的前缀和计算得出

2021-10-19 21:32:06 104

原创 CF1485D.Multiples and Power Differences

题目链接思路:这是一道构造题,构造的通常是通过挖掘这道题的某些性质来找一种通解。在这题中,有几个条件显得很突兀,1≤bij≤1061≤b_{ij}≤10^61≤bij​≤106,1≤aij≤161≤a_{ij}≤161≤aij​≤16,而这题中bijb_{ij}bij​还都是aija_{ij}aij​的倍数,很容易往最小公倍数上想,但是如果每两个数构造一次显然最终会远大于10610^6106。其实还有个条件也可以利用,这是个n∗mn*mn∗m的矩阵,关于矩阵的构造有时会利用到i∗ji*ji∗j的奇偶性,在

2021-08-17 23:47:36 108

原创 AtCoder Beginner Contest 189 D - Logical Expression

题目链接题目大意:给定NNN个字符串S1,…,SnS_1 ,…,S_nS1​,…,Sn​ ,每个字符串内容为 ANDANDAND 或 OROROR 。找到使yny_nyn​为111的序列(x0,…,xn)(x_0 ,…,x_n)(x0​,…,xn​)的数量。1.y0=x0y_0 = x_0y0​=x0​2.对于i≥1i ≥ 1i≥1 ,当SiSiSi 为ANDANDAND时,yi=yi−1∧xiy_i =y _{i-1} ∧x_iyi​=yi−1​∧xi​ ;当SiSiSi 为OROROR时,yi=y

2021-08-10 23:44:50 76

原创 B - Maria Breaks the Self-isolation

题意:每个人有一个aia_iai​,只有当已经在场上的人大于aia_iai​时,这个人才能上场,需要注意的是场上初始时就有一个人。思路:显然,aia_iai​小的人会更早上场,所以我们可以先排一遍序,当iii大于aia_iai​时就意味前iii个人都可以上场。代码:#include <bits/stdc++.h>#define x first#define y secondusing namespace std;typedef long long ll;typedef pair

2021-08-05 21:33:08 86

原创 A - Sequence with Digits

题意:由递推式an+1=an+minDigit(an)⋅maxDigit(an)a_{n+1}=a_n+minDigit(a_n)⋅maxDigit(a_n)an+1​=an​+minDigit(an​)⋅maxDigit(an​),其中minDigit(an)minDigit(a_n)minDigit(an​),maxDigit(an)maxDigit(a_n)maxDigit(an​)分别为ana_nan​中最小的一位数和最大的一位数,求aka_kak​的值。做法:题目的数据范围非常大,显然直接暴力是

2021-08-03 23:28:18 116

原创 A - Sum of Consecutive Prime Numbers

题意:有多组数据,n在2到10000之间,求有多少组连续的质数的和等于n思路:由于n较小,暴力即可#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int prime[10010], cnt[10010];int main() { int m = 0; prime[++m] = 2; for(int i = 3; i <= 10000; i++

2021-07-27 21:16:17 91

原创 Codeforces Round #715 (Div. 2)

A. Average Height题意:构造数组使相邻两个数相除是整数的数量最多。思路:奇数挨在一起,偶数挨在一起。第一次第一分钟过A题(好耶!)代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5 + 10;int t;int n, a[N], m;string s;int main() { scanf("%d", &t); while(t

2021-04-17 16:23:12 133

原创 CodeForces - 940C Phone Numbers

传送题意:可以将字符串中的每一个字符修改成字符串中出现的字符,使修改后的字符串的字典序是大于原字符串的字典序的中最小的。思路:从字符串最后往前找不是该字符串最大字符的字符,修改成大于这个字符的第一个字符,让后把后面的字符都修改成该字符串最小的字符。注意k与n的比较!代码:#include <bits/stdc++.h>using namespace std;int n, k;bool l[30];string s;int main() { scanf("%d%d", &am

2021-04-16 14:41:00 104

原创 CodeForces - 1082B Vova and Trophies

传送题意:一个只包含G和S的字符串,一次交换能使连续的G最长为多少。思路:想要使只包含G的子串最长,显然贪心地将两个子串中间的S与一个不在子串的G交换再与最大值比较就可以了,要注意除了这两个子串外还有没有多余的G可供交换。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;int n;int tmp[100010];string s;int main() { scanf("%d", &am

2021-04-16 13:50:10 106

原创 C - Line-line Intersection

传送思路:这道题的要求是求出有多少组边存在交点(两直线重叠也算存在交点),经过短暂的思考后可以发现只有斜率相等并且截距不同的一组边不存在交点,然后这就成为一道带点容斥的计数题了,我们可以先假设每一组边都是存在交点的,一共有n*(n-1)组,再找出有多少斜率相等的边,减去这些边可以组成的组数,但是这样又多减去斜率相等并且截距相同的组,那么再加上这些边可以组成的组数就可以了。斜率相同的边和斜率相同且截距相同的边可以用map存储。#include <bits/stdc++.h>using na

2021-04-12 22:01:22 522 1

原创 单词记录(实时更新)

prefix n. 前缀

2021-04-06 15:28:40 74

原创 CodeForces 678C Joty and Chocolate

链接:CodeForces 678C思路:一道比较常见的数学题,用到一点点容斥原理的知识。显然,n里面a的倍数有n/a个,b的倍数有n/b个,但是有某些数可能既是a的倍数,同时也是b的倍数,这些数应该是加p还是加q呢?很明显加大的那个数可以使最大值更大。那么问题又来了,n里面有多少数既是a的倍数也是b的倍数呢?这是本题最关键的一点。学过基础数论的话,都知道有n/lcm(a,b)个数既是a的倍数也是b的倍数,所以只要再对这n/lcm(a,b)个数进行特殊处理加上max(p,q),同时不要忘记减去多加的那一部

2021-04-02 13:25:50 143

原创 CodeForces - 732A

CodeForces - 732A思路:题目中告诉我们这个人有无数张价值为10的纸币和一张价值为r的纸币,所以只要当总共的钱数对10取余为0或为r时成立,记录当前的cnt即可。#include <bits/stdc++.h>using namespace std;int k, r;int main(){ scanf("%d%d", &k, &r); k = k % 10; int temp = k; int cnt = 1; while(temp % 10

2021-03-26 18:58:36 144

原创 CodeForces 876C Classroom Watch

题面:https://codeforces.com/problemset/problem/876/C思路:这是一道典型的cf题。n最大时1e9,当每一位数都为9时,各数位上的数之和最大为81,所以只需要从n-81到n循环一遍有多少符合条件的,并将其用一个数组保存。代码:#include <bits/stdc++.h>using namespace std;int n, a[100010];int main(){ scanf("%d", &n); int cnt = 0;

2021-03-18 22:41:08 105

原创 Codeforces Round #150 (Div. 2) C - The Brand New Function

C - The Brand New FunctionPolycarpus has a sequence, consisting of n non-negative integers: a1, a2, …, an.Let’s define function f(l, r) (l, r are integer, 1 ≤ l ≤ r ≤ n) for sequence a as an operation of bitwise OR of all the sequence elements with index

2021-03-12 20:03:27 117

原创 牛客练习赛77 A-C

A.小G的sum题目描述给定一个n, 定义mind(n)为n最小的约数,maxd(n)为n最大的约数求sum i=1…n mind(i) + sum i=1…n maxd(i)思路:显然,每个数最小的约数是1,最大的约数是这个数本身。答案就是n + n * (n + 1) / 2。#include <bits/stdc++.h>#define ll long longusing namespace std;ll n;int main(){ scanf("%lld", &amp

2021-02-27 01:32:51 139

原创 QLU Regular Contest 003 C. Youmu with musical sequence(最长不下降子序列)

DescriptionAfter going downstairs of the literally Tower of White Jade, Youmu is on her way to the Human Village of Gensoukyo. When she came out of the Netherworld, she met the Phantom Ensemble who are on their way to have a music performance in the Nethe

2021-02-08 18:05:50 147 3

原创 2015 ICPC亚洲区域赛 长春站

寒假开始的第一场训练赛,一共过掉了4题。

2021-01-21 22:32:11 1137 6

原创 Educational Codeforces Round 102 (Rated for Div. 2)

放假回家了,终于能开着灯打一场紧张刺激的cf了…这一场四十几分钟过了三道题,第四题差一点。有想一起打CF的朋友可以加我qq:942845546,共同进步,共同上分,欢迎骚扰(传统艺能)。比赛地址:Educational Codeforces Round 102 (Rated for Div. 2)A - Replacing Elements解题思路:读完题可以发现有两种情况是符合的,1.所有的数字都小于等于d2.最小的两个数相加小于等于d,就可以将所有大于d的数字替换所以先排序,当最大的数小

2021-01-15 01:37:11 264 3

原创 Educational Codeforces Round 100 (Rated for Div. 2)A-C

第100场Edu,挺有纪念意义战况:rating+79还是个pupil(挠头)有想一起打CF的朋友可以加我qq:942845546,共同进步,共同上分,欢迎骚扰(手动滑稽)。这一场在A,B上浪费了不少时间,还加了三十分钟罚时(笑哭),导致C题看出解法最后没打完,说到底还是码力不行,水平太菜。题面太长,请点击Educational Codeforces Round 100 (Rated for Div. 2)A.Dungeon思路:当满足a+b+c>=9并且a+b+c的和为9的倍数且(

2020-12-19 00:43:30 1153 4

原创 Codeforces Round #690 (Div. 3)A-E2

题面过长,在博客暂且略过。。若需要体面,请点击Codeforces Round #690 (Div. 3)由于作者实力有限,就先写A-E1题的题解吧。A.Favorite Sequence思路:显然,我们需要把给出的序列每次输出前列的一个和后列的一个,需要特判下n的奇偶性。#include <bits/stdc++.h>using namespace std;int t, n;int a[10000010];int main(){ scanf("%d", &t);

2020-12-16 22:02:45 158 3

原创 Codeforces Round #686 (Div. 3)

A. Special Permutationtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given one integer n (n>1).Recall that a permutation of length n is an array consisting of n distinct integers from 1

2020-11-26 11:12:14 88

原创 P1551 亲戚(并查集模板题)

题目背景若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。题目描述规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。输入格式第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示Mi和Mj具

2020-10-23 19:28:42 395

原创 树状数组模板

#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;int n, m, t, x, y;int c[2000010];int lowbit(int x){ return x & (-x);}void add(int i, int k){ whi

2020-10-22 22:46:21 58

原创 快速排序模板

在这里插入代码片#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;int n, a[1000001];void qsort(int l, int r){ int mid = a[(l + r) / 2]; int i = l; int j = r; w

2020-10-22 22:44:34 56

原创 P1303 A*B Problem

#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>using namespace std;char a1[50001], b1[50001];int a[50001], b[50001], c[50001];int main(){ scanf("%s", a1); scanf("%s", b1

2020-10-01 23:48:47 60

空空如也

空空如也

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

TA关注的人

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