自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

B题:传送门:link题意:有n* m个口罩,需要要把它们装到一些箱子里面,要使箱子数尽可能少,并且满足两个条件,这些箱子可以分成m组,每组n个口罩,或者分成n组,每组m个口罩。思路:分配方案其实就是一个迭代的过程。为了使得箱子数最少,每个箱子就应该尽可能的多装。每次优先装min(n,m)个箱子,每个箱子装min(n,m)。装了这些之后,就还剩下(max(m,n)-min(n,m))*min(n,m)个,对于剩下的这些口罩我们可以继续重复上述操作。#include<bits/stdc++.h&g

2020-08-06 17:31:38 205

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

题目传送门:https://ac.nowcoder.com/acm/contest/5671/E题目大意:给出两个整数:n,k,存在一个p数组由[1-n]组成,使得存在一个长度为i的连续数组(i属于[1-n]),此数组中元素值的和除余n=k(说来惭愧,做题的时候题目意思没读懂,方向直接走偏了。。。。)。解题思路:因为i是可以等于n的,也就是说,1-n累加和%n=k,如果n为奇数,那么k一定为0(普通规律);如果n为偶数,带入等差数列求和公式:(n*(n+1)/2)%n=k ===>(n^2/2.

2020-07-27 21:23:07 116

原创 2020牛客暑期多校训练营(第三场)B

传送门:https://ac.nowcoder.com/acm/contest/5668/B解题思路:将字符串看成一个首尾相接的“圆形”即可很快求解!#include<iostream>#include<algorithm>using namespace std;typedef long long ll;string s;ll n;char a;ll num,tar;int main(){ ll l; cin>>s; cin>>n.

2020-07-22 22:22:05 134

原创 2020牛客暑期多校训练营(第三场)A

题目意思比较简单。解题思路:对于2和3的情况只需捕鱼。对于0情况,如果有饲料则捕鱼。对于1情况,我们开一个数组记录每个位置后面所剩的0,1情况个数,如果现有饲料个数已经超过此位置记录的个数,就捕鱼,否则就增加饲料。#include<cstdio>#include<algorithm>#include<iostream>using namespace std;char s[2000006];int k[2000006];int main(){ .

2020-07-21 16:59:09 137

原创 2020牛客暑期多校训练营(第四场)B

大致题意:解题思路:观察式子,得出最后的结果是c的次幂的形式,即为求c的x的质因子个数次幂。#include<string>#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int N=1e6+10;typedef long long ll;const ll mod=1000000007;int primes[N];ll f.

2020-07-21 16:39:25 133

原创 2020牛客暑期多校训练营(第二场)G

题意:给定两个数组A和B,在A中找到一个子数组C使得C i>=B i , ∀i∈[1,m]这样的子数组存在几个大概思路:对A和B数组降序排列,并存下它们原本的位置idans维护以每个位置为起点,如果可以全部si>bi,就为1那么从大到小枚举b,然后用一个bitset f,记录当前大于等于b的有哪些位,由于从大到小枚举,那么之前大于等于bi的,也大于等于b_{i+1},而对于第bi.id位,用ans&=f>>bi.id就可以把那些匹配bi.id位不行的起点的ans全.

2020-07-17 23:19:17 99

原创 2020牛客暑期多校训练营(第二场)B

题意:给了n个点,让你自己随便定义圆心(圆心不要求是n个点的其中一个)和半径,要求这n个点有尽可能多的点在圆上,并且该圆经过坐标原点(0,0)。求满足的圆上的点最多有多少个。思路:三点确定一个圆,且必须过原点,只需用n^2的复杂度遍历枚举,并存下结果,处理完后对结果进行排序即可求出答案代码如下:#include<bits/stdc++.h>using namespace std;double X, Y;struct Point{double x, y;}a[2005];.

2020-07-17 00:18:50 81

原创 kmp总结

kmp算法板子:#include<iostream>using namespace std;int m,n;char a[10000],b[10000]; int next[10000];void NEXT(){ next[0]=-1; if(m==1) return; else { next[1]=0; int j=1; int k=next[1]; while(j<n-1) { if(k==-1||b[j]==b[k]) next

2020-07-16 22:16:09 168

原创 2020牛客暑期多校训练营(第一场)J题

大概题意:根据相关式子求出积分结果,并求相应分数取模的结果。解题思路:1.求出积分式子的公式为2.由题意得p,q皆为有理数,根据逆元的定义与应用结合:(1)(p/q)%mod=(p%mod*inv(q)%mod)%mod=(p *inv(q))%mod(2)费马小定理:a^(p-1)≡1(mod p)=====>inv(a)=a^(p-2)(mod p)综上所述,代码如下:#include<iostream>#include<algorithm>using n.

2020-07-15 16:59:24 838 1

原创 2020牛客暑期多校训练营(第一场)F题

题目大意:有两串字符串,可以无限重复延长,比较他们的字典序大小。解题思路:利用字符串长度最长为1e5,直接循环字符串暴力解决即可(关键加if(nu1= =aa&&nu2= =bb))代码如下:#include<iostream>#include<algorithm>#include<string>#include<cstring>using namespace std;typedef long long ll;ll chec.

2020-07-15 16:47:41 201 1

原创 2020牛客暑期多校训练营(第二场)F题

2020牛客暑期多校训练营(第二场)F题大概题意:输入三个整数m, n, k构建一个m × n的矩阵A,A[m][n]所存的数为m,n的最大公倍数,求矩阵A中所有k × k的子矩阵中的最大值的和。解题思路:通过组长的分享了解到两次单调队列的解法,思路为先用一个一维队列找出每一行长度为k区间的最大值,在通过另一个二维的队列找出列的最大值,最后求和即为答案。#include<iostream>#include<math.h>#include<algorithm>

2020-07-14 21:58:29 264

原创 2020牛客寒假算法基础集训营3 A题

题解:本题使用动态规划,对时间和空间复杂度都是最优的。dp解析:因为一个格子只能从自己的上方和左方到达,所以从(1,1)到达(i,j)的方法数就是上方格子的方法数加上左方格子的方法数(前提是左方和右方的格子能够走到(i,j))代码如下:#include<iostream>#include<algorithm>#include<cstdio>#inc...

2020-02-11 11:46:38 124

原创 2020牛客寒假算法基础集训营3 F题

解析:本题暴力无解,通过查找规律发现,第i个1产生的link能量就是前i-1个1产生的能量*i-1个1到第i个1的距离,最后把每个1的能量是算出来后相加即可代码如下:#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod=1e9+7;ll n;char a[100005];...

2020-02-11 11:41:14 178

原创 2020寒假牛客算法基础集训营2 G题

初看本题我以为是大数相乘,当时就吓懵了,后来想到了快速幂和取模,代码基础如下:“判断两个数a,b是否相等,如果膜上10相等,膜上11相等。那么有a + k*110 = b。(110是10和11的最小公倍数),当取的是1e9+1,……1e9+100。那上面的110变成上面这一串数的最小公倍数。两个数不相等的概率就很小了。取模数更多,公倍数更大。”代码如下:#include<ios...

2020-02-08 11:47:47 115

原创 2020寒假牛客算法基础集训营2 E题

本题重在理解分析,抽解含义将题中等式两边平方后进行观察发现通俗来看其意义就是i*j为小于等于n的正整数同时i*j开方也为正整数只需要求出符合条件的i,j组合个数就行了理解到这一点我们也就可以开始解题了代码如下:#include<iostream>#include<algorithm>#include<cstdio>#include<...

2020-02-08 11:28:11 92

原创 2020牛客寒假算法基础集训营2 c题

解析:初看本题,便知用动态规划,但我认为首要难点就是求出每道题的错误率,这就需要读懂题意,即分数取模;举个例子:1.当正确率为0.5时通过取模计算,正确率为5e8+4,因为此时的正确率和错误率相等,所以错误率也为5e8+4;2.当正确率为1/3时,正确率为(1e9+8)/3,所以错误率为2*(1e9+8)/3;。。所以我们得出结论,错误率和正确率之和为1e9+8;于是就可解出本题...

2020-02-08 10:29:38 102

原创 2020牛客寒假算法基础集训营1H题 nozomi和字符串

题目描述:nozomi看到eli在字符串的“花园”里迷路了,决定也去研究字符串问题。她想到了这样一个问题:对于一个 \mathit{“01”}“01”串而言,每次操作可以把 \mathit00 字符改为 \mathit11 字符,或者把 \mathit11 字符改为 \mathit00 字符。所谓\mathit{“01”}“01”串,即只含字符 \mathit00 和字符 \mathit11...

2020-02-06 10:57:06 181

原创 2020牛客寒假算法基础集训营1 G题 eli和字符串

eli拿到了一个仅由小写字母组成的字符串。她想截取一段连续子串,这个子串包含至少 个相同的某个字母。她想知道,子串的长度最小值是多少?注:所谓连续子串,指字符串删除头部和尾部的部分字符(也可以不删除)剩下的字符串。例如:对于字符串“arcaea”而言,“arc”、“rcae”都是其子串。而“car”、“aa”则不是它的子串。分析:这是一道字符串的题目,求的是一串子串中拥有至少k个相同字...

2020-02-06 10:09:03 766

原创 poj1190 生日蛋糕(dfs应用)

poj1190 生日蛋糕(dfs应用)要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱。当i < M时,要求Ri > Ri+1且Hi > Hi+1。由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。令Q = Sπ请编程对给...

2020-01-27 16:44:08 239

原创 归并排序(递归)C语言版

归并排序是一种稳定的排序算法,其时间复杂度为:O(nlogn)本图片来源:https://blog.csdn.net/Silence_R/article/details/86524975代码如下:#include<stdio.h>#define M 1000int a[M],b[M];void merge(int left,int mid,int right){ in...

2019-12-05 16:47:06 422

原创 快速排序 C语言版

普通的排序方法有:冒泡排序法,顺序比较法,选择排序法 等等,这些排序大同小异,思维简单,容易上手,但是他们共同的缺点是:时间复杂度过高,皆为O(n*n),容易超时,在这种情况之下,快速排序应运而生:在相同数据量的情况下,快速排序的平均时间复杂度为O(NlogN)先上代码:#include<stdio.h>#define m 5 int a[m+1];void quickso...

2019-12-05 14:56:57 367

原创 新生赛时间排序sort函数用法总结

题目描述如下:出题组的小Y有突然有一天心血来潮想要整理出题组写过的代码,但是他发现这群人写过太多的代码啦,分类整理的时候弄得他很头秃,所以他一不做二不休的选择了——放弃!是不可能的放弃的, 这里个个都是人才,说话又好听,超喜欢这里的,所以他是不会放弃帮大家整理代码的!所以他选择了最划水的一种方式, 用时间排序!他整理出来了每一个代码的最后修改时间, 打算将它们从小到大进行排序时间的格式...

2019-12-05 13:57:54 410

原创 位运算总结 C语言

位运算基础:位运算的所有过程均为二进制数参与。十进制转换为二进制的方法:用 2 整除十进制数,得到商和余数;再用 2 整除商,得到新的商和余数;重复第一步和第二部,直到商为零;从后往前,每步得到的数为二进制数的高位到低位。如21/2=10余110/2=5余05/2=2余12/2=1余01/2=0余1所以 21转换为二进制数为10101.位运算符有6种:&...

2019-11-28 17:07:37 131

原创 快速幂算法-C语言

快速幂算法快速幂(即快速幂取模)。人们在计算较大数字的较大次方时,通常会因为数据过大而溢出,为了减小运算的复杂度和增加运算的精确度,产生了快速幂算法。本算法的基础是:ab mod c=(a mod c)b mod c。快速幂算法时间复杂度:当时间复杂度为O(n)时,使用快速幂,可以将复杂度减为O(log(n))。代码如下int quickpow(int a,int b,int c)...

2019-11-28 16:06:33 1329 2

空空如也

空空如也

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

TA关注的人

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