自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 2020牛客暑期多校训练营(第八场)I.Interesting Computer Game(并查集)

题目链接思路:将题目转化为求连通子图的顶点数之和,若无环贡献为顶点数,否则为顶点数减1。(数字过大需要用到离散化优化)代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+10;const int M=2e4+5;const double eps=1e-8;const int mo

2020-08-04 01:25:40 10

原创 洛谷 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles

题目链接思路:从上往下跑,用原数组直接dp记录到达该位置的最大值。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1010;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7ff

2020-08-04 01:00:33 2

原创 洛谷 P1802 5倍经验日(DP)

题目链接思路:当i>=use时,可以选择打败或者不打败,dp[i]=max(dp[i]+lose,dp[i-use]+win)。当i<use时,无法战胜对方。dp[i]+=lose。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+5;const int M=2e4+5

2020-08-04 00:54:32 2

原创 Educational Codeforces Round 92 (Rated for Div. 2) B. Array Walk(贪心)

题目链接思路:在两个位置反复走,然后扫一遍取最值就行了。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7ffffff

2020-08-03 00:21:13 15

原创 Educational Codeforces Round 92 (Rated for Div. 2) C. Good String

题目链接思路:暴力枚举第一个字母和第二个字母。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+5;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7fffffff;co

2020-08-02 22:48:41 7

原创 2020牛客暑期多校训练营(第七场)B Mask Allocation(思维,构造)

题目链接思路:while(true) 保证n>m,每次输出m个m,然后n-=m,当m==1时,输出n个1。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;const int mod=1e

2020-08-02 22:19:08 6

原创 Codeforces Round #660 (Div. 2) A. Captain Flint and Crew Recruitment

题目链接思路:代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7fffffff;const double pi=3.1

2020-08-01 23:15:20 11

原创 2020牛客暑期多校训练营(第七场)H.Dividing

题目链接思路:只有在满足n=1,n是k的倍数,或者n-1是k的倍数时,(n,k)是传奇元组。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const

2020-08-01 22:02:05 27

原创 2020牛客暑期多校训练营(第七场)D.Fake News

题目链接思路:特判1和24即可。代码:#include<bits/stdc++.h>#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7fffffff;const double pi=3.1415926;usin

2020-08-01 21:13:27 26

原创 Codeforces Round #660 (Div. 2) B. Captain Flint and a Long Voyage

题目链接思路:最后要删除后n位,那肯定是越长越好,二进制里面只有9和8是四位数,而9(1001)比8(1000)更符合删除后的,所有尽可能取9。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;

2020-07-31 23:56:15 26

原创 【杭电多校2020】第四场1005.Equal Sentences(dp)

题目链接思路:我们可以第i个元素不交换,或者第i-1和第i个元素交换,如果交换的字符串相等就还是原来的值,不相等就dp[i]=dp[i]+dp[i-2],dp是为了避免重复计算。题意:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const

2020-07-31 21:32:36 25

原创 【杭电多校2020】第四场1011.Kindergarten Physics(思维,物理)

题目链接思路:一个理解题意的题,有两个重a,bkg的个,初始时候相距d距离,在只受重力影响的情况下,试问一段时间后他们之间的距离。根据初中知识,距离不变,所以我们只需要直接输出即可(这题就离谱,样例给的像个魔教中人)代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const

2020-07-31 19:38:20 27

原创 Educational Codeforces Round 92 (Rated for Div. 2) A.LCM Problem(思维)

题目链接思路:满足条件的情况下只需要使得求出来的Lcm是最小的即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7

2020-07-30 22:20:33 21

原创 【杭电多校2020】第四场1002.Blow up the Enemy

题目链接思路:暴力即可,注意减去第一次输出所需要的时间。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7ffffff

2020-07-30 22:13:14 3

原创 【杭电多校2020】第三场1005.Little W and Contest(并查集)

题目链接思路:首先求出所有的2和1的个数并求出他们一共可以结合成多少对,然后再输入关系对,用并查集维护关系,再一点一点减去相关联后减少的对数即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M=2e4+5;const double eps=1e-8;

2020-07-30 21:53:03 65

原创 洛谷-P1094 纪念品分组

题目链接思路:(原谅我第一眼把题目看成纪念品龙狙hhh)读入之后先用sort排序,然后用两个指针一起向中间走,每次选择都尽可能的让当前状态下最大的和最小的分在一组,如果不行就最大的单独分一组,这样贪心下来就是最少分的组了。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+5;co

2020-07-29 22:34:14 30

原创 【杭电多校2020】第三场1009.Parentheses Matching

题目链接思路:先将正常的括号入栈,如果左括号少,那就将最前面的星号边成左括号,如果最后还有多余的左括号,那就将最后面的星号变成右括号。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+5;const int M=2e4+5;const double eps=1e-8;const

2020-07-29 22:23:14 25

原创 【杭电多校2020】第三场1004.Tokitsukaze and Multiple

题目链接题意:给你一个长度为n的数组,将该数组分割成任意长度的区间使得区间和为p的倍数的区间数最大。思路:前缀和之后对p取模并用map标记取模后的值,如果出现过就将结果++,map.clear()即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int M

2020-07-29 21:46:55 31

原创 Codeforces Round #659 (Div. 2) B1. Koa and the Beach(DP)

题目链接思路:DP记录每秒的海域状态,看你能否到达对面。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e2+5,M=2e4+5;const double eps=1e-8;const int mod=1e9+7;const int inf

2020-07-28 22:07:20 27

原创 2020牛客暑期多校训练营(第六场)B.Binary Vector(思维,数学)

题目链接思路:理解题意然后推公式化简即可,数据很大,所以需要打表,中间用到逆元。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const double eps=1e-8;const int mod=1e9+7;const int

2020-07-28 21:47:26 18

原创 2020牛客暑期多校训练营(第六场)K.K-Bag(思维,离散化)

题目链接思路:首先判断每一位置之后有多少个不重复的数字,然后再枚举所有可能的第一个断点的位置,遍历判断从这个断点开始之后的每一个断点是否可以成为一个排列,因为k=1e9,所以我们要用到离散化。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+

2020-07-28 21:22:18 68

原创 洛谷-P5019 铺设道路

题目链接思路:假设现在有一个坑,但旁边又有一个坑,你肯定会选择把两个同时减1,那么小的坑肯定会被大的坑“带着”填掉。大的坑也会减少a[i]-a[i-1]的深度,可以说是白嫖减少了1,所以我们只需要遍历整个数组并加上a[i]与a[i-1]的差即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);co

2020-07-28 00:30:33 15

原创 2020牛客暑期多校训练营(第六场)C.Combination of Physics and Maths

题目链接思路:根据题意,我们可以很清晰的判断数组只需要选取竖着的长条即可,水平选取只会让结果更趋近于平均值,所以我们直接暴力跑每一个竖直位置并且让每一个位置都当一次底求出最大值即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;co

2020-07-28 00:11:42 13

原创 2020牛客暑期多校训练营(第六场)E.Easy Construction

题目链接思路:因为1~n所有长度的子数组都要满足sum%n==k,所以整个数组的和也一定满足该条件,那么如果n为奇数,整个数组的sum(区间和)就是(n+1)*n/2,而这个数%n一定是0,所以当n为奇数时,k必须是0,而当n为偶数时,((n+1)*n/2)%n一定是n/2,所以k必须是n/2。而判断n的奇偶并且k满足上述条件时我们只需要构造出一个满足题意的排列即可,具体构造方式请看代码。代码:#include<bits/stdc++.h>using namespace std;#d

2020-07-28 00:05:27 4

原创 2020牛客暑期多校训练营(第五场)D.Drop Voicing

题目链接思路:求循环链的最大上升子序列。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1010;const int M=4e5+8;const double eps=1e-8;const int mod=1e9+7;const int i

2020-07-27 00:55:18 26

原创 2020牛客暑期多校训练营(第五场)E.Bogo Sort

题目链接思路:所有环长度的 LCM。代码:(py)import mathdef dfs(i): global vis u=i ans=1 while(p[i]-1)!=u: ans+=1 vis[i]=1 i=p[i]-1 return ansvis=[0]*100005n,*p=map(int,open(0).read().split())ans=1for i in range(n): if

2020-07-27 00:48:52 34

原创 Codeforces Round #659 (Div. 2) C. String Transformation 1(字符串,思维)

题目链接题意:给你两个长度相同的字符串a,b。你每次可以选择a中一些有相同字符的位置,把这些字符改成另一个大于他的字符。问至少要经过多少次修改,才能使a变成b。思路:我们只需要找a中与b不同的字母是否小于b中的字母并且记录是哪一个字母即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cou

2020-07-27 00:07:38 14

原创 2020牛客暑期多校训练营(第五场)I.Hard Math Problem(思维)

题目链接思路:(a little water…咳咳咳…just a little\手动滑稽)。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=55;const int M=4e5+8;const double eps=1e-8;const i

2020-07-25 22:56:01 103

原创 2020牛客暑期多校训练营(第五场)F.DPS(构造)

题目链接思路:构造即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=55;const int M=4e5+8;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7ffff

2020-07-25 22:40:11 13

原创 Codeforces Round #659 (Div. 2) A. Common Prefixes(字符串,思维)

题目链接题意:给你一个长度为n的数组,让你构造出n+1个字符串,使得s[i]和s[i+1]之间的最长前缀和等于a[i]。思路:首先构造一个长度为60字母全为a的字符串,然后按照输入的a[i]遍历字符串,到达需要改变的位置时,如果该位置是a则变成b,后续有b的情况是b则变成a即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(f

2020-07-25 10:21:04 42

原创 Codeforces Round #658 (Div. 2) B. Sequential Nim(博弈)

题目链接思路:简单的博弈论,如果全是1那就看奇偶,如果开头有1那就看最后谁能先拿到不为1谁就赢,因为他能控制下一个人。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const double eps=1e-8;const int m

2020-07-24 22:28:22 29

原创 【杭电多校2020】第二场1001.Total Eclipse(并查集)

题目链接思路:按照权值从大到小排序,然后依次加入,并把全场的权值都减到当前权值。用并查集维护连通块的总个数即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const int M=4e5+8;const double eps=1

2020-07-24 22:18:01 46

原创 【杭电多校2020】第二场1006.The Oculus

题目链接思路:既然能直接自然溢出了那我寻思这题不就预处理斐波那契数列之后,再直接暴力跑出abc的值,然后再暴力跑出斐波那契数列中 a*b-c的位置不就行了嘛。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6;const double eps

2020-07-24 21:25:24 40

原创 Codeforces Round #658 (Div. 2) C1+C2(字符串,思维)

题目链接C1题目链接C2思路:先从头到尾将字符串a变为全为0的字符串,再从尾到头将这个全为0的字符串一点一点的变为全部符合字符串b的情况。代码:(C1+C2一样代码)#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const doubl

2020-07-23 22:03:12 23

原创 【杭电多校2020】第二场1010.Lead of Wisdom

题目链接思路:暴…暴力?代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=105;const double eps=1e-8;const int mod=1e9+7;const int inf=0x7fffffff;const double

2020-07-23 21:51:15 46

原创 Codeforces Round #658 (Div. 2) D. Unmerge(dp,01背包)

题目链接思路:将每个数和他之后的比他小的数都分为一组,对分好的组进行01背包,看能否将组的总和变为n。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const double eps=1e-8;const int mod=1e9+7

2020-07-22 22:29:46 38

原创 【杭电多校2020】第一场1004.Distinct Sub-palindromes(思维)

题目链接思路:当n为1时字符串为任意字母,最少回文子串数为1;当n为2时字符串为任意两个字母,最少回文子串数为2;当n为3时字符串为任意三个字母,最少回文子串数为3;当n>=4时字符串为任意三个不相同字母的循环,最少回文子串数为3;代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cou

2020-07-22 22:08:28 17

原创 Codeforces Round #657 (Div. 2) C-Choosing flowers(贪心)

题目链接思路:首先找比最大的b[i]大的a[i],再找剩下的数中买剩下个数的花的最大值即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+7;const double eps=1e-8;const int mod=1e9+7;con

2020-07-21 20:52:29 35

原创 2020牛客暑期多校训练营(第四场) F-Finding the Order(思维)

题目链接思路:又是一道思维拉胯题,感觉我自己写的代码和题解这个代码相比起来就是坨*,思路是根据三角形两边之和大于第三边的性质,交叉的线之大于两边的线,所以我们只需要判断ac+bd和ad+bc哪两个才是两边的线即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const

2020-07-21 20:37:18 40

原创 2020牛客暑期多校训练营(第四场) H-Harder Gcd Problem

题目链接思路:用埃氏筛从3开始,从小到大选因子,最小质因子相同的两两配对,如果最小质因子相同的数的个数为奇数时,就将质因子的二倍拿出,最后将所有拿出的质因子再次配对即可(拿出的数之间的gcd至少为2)。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N

2020-07-21 19:59:12 39

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