暑假牛客比赛
文章平均质量分 65
椰椰奶董
这个作者很懒,什么都没留下…
展开
-
2021牛客多校4(CFIJ)题解
F Just a joke题意:就是有两个操作,可以删除一条表或者删除一个联通分量。思路:很神奇,我们当时比赛时用并查集来判断感觉水过去了,跟官方题解完全不沾边又有点差不多的意思看一下这个神奇的办法,就是判断有几个联通分量,然后又几个点,点的个数+联通分量的个数,然后判断奇偶。官方题解是不管哪个操作,点加边的个数都是减掉奇数个,然后我们可以判断奇偶来看谁赢了。代码:#include<bits/stdc++.h>using namespace std;typedef long原创 2021-07-29 10:12:57 · 363 阅读 · 0 评论 -
2021牛客暑假多校第二场部分题解
C-Draw Grids题意:给你一个n*m的点矩阵,每次可以连相邻两个点的一条边,直到连完无法操作的时候就输了,前提是不能连成一个多边形。问你第一个人能不能赢思路:就是按照竖直的线走到头,然后拐回去,直到最后连玩取余2看是谁走最后一步了。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int main (){ ll n,m;cin>>n>>m; l原创 2021-07-20 20:38:47 · 452 阅读 · 2 评论 -
牛客暑假多校训练营(第十场)E- Game-思维
题意:给你每一列的小木块的高度,如果小木块的右边,没有木块,可以向左推动,直到最右边第一个,就不能再往左推动啦。求所有列中最小化的最大的的列高度。思路:前缀和来求前i列的所有木块的和,sum [ i ] / i ,向上取整,然后来看最大值,因为每次来看当前的最大高度,就是平均下来。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e6+9;ll sum[N];i...原创 2020-08-12 09:27:21 · 145 阅读 · 0 评论 -
牛客暑假多校训练营(第十场)A- Permutation-dfs,构造,规律
题意:给定一个素数p,用1,2,。。。p-1,进行排序,排序的序列必须符合第(x+1)位=第x位2%p,或者第(x+1)位=第x位3%p,请你构造这样一个序列。思路:(1)dfs递归来找,因为第一位肯定是1,之后的2~p-1位,有两种情况,2或者3,所以分别来找,然后回溯。递归出口一个是两种情况都不满足,所以往回来回溯,另一个是,计数达到了p-1位的时候,就证明已经达到的一个序列,然后退出。#include<bits/stdc++.h>using namespace std;con..原创 2020-08-11 16:19:51 · 195 阅读 · 0 评论 -
牛客暑假多校训练营(第五场)I- Hard Math Problem-思维
题意:矩形中放,H,G,E,一个H周围至少有1个H和1个G,刚矩形接近无穷的时候,H所占比是多少。思路:说实话,我画了画图,猜了一下2/3,结果蒙对了。题解给的是:GHGHGHGHHEHEHEHEGHGHGHGHHEHEHEHEGHGHGHGHHEHEHEHE斜线的放G,E交叉,然后斜线上下放H,所以接近无穷的时候,H所占比为2/3。代码:#include<bits/stdc++.h>using namespace std;int main (){ ios:..原创 2020-07-29 09:57:05 · 170 阅读 · 0 评论 -
牛客暑假多校训练营(第四场)F-Finding the Order-思维,数学常识
题意:有两条平行线,ab与cd,通过ac,ad,bc,bd的长度来判断到底是ab//cd,还是ab//dc,c与d的位置判断。思路:这题太搞我了,直觉告诉我是这样的规律,证明不出来,没敢打。还是规规矩矩来证一下吧,假如是cd的位置,因为abcd构成了一个梯形,根据梯形的性质,ac+bd<ad+bc,所以如果是ac+bd<=ad+bc,就是ab//cd,否则ac+bd>ad+bc,就是ab//dc。代码:#include<bits/stdc++.h>using n...原创 2020-07-29 09:40:52 · 170 阅读 · 0 评论 -
牛客暑假多校训练营(第四场)B-Basic Gcd Problem-递归,素数,gcd
题意:有一个构造的函数给出n,c,求出fc(i)的值取余1e9+7的答案。思路:我们对n和c进行操作,因为求max c*fc(gcd(i,x))的最大值,gcd最大值的话,如果x是素数,那么就是1,如果不是素数,那么就是循环找出第一个能被整除的数,x/这个数就是最大的i,然后进行递归继续找,直到x=1的时候返回1。答案在进行的时候要一直对mod取余。代码:#include<bits/stdc++.h>typedef long long ll;using namespace std..原创 2020-07-29 09:28:03 · 155 阅读 · 0 评论 -
牛客暑假多校训练营(第六场)E-Easy Construction-思维,构造
题意:构造一个1n的排序P,P中所有数字都是在1n之中,对于每一个p中的整数 i,都有一个长度为i的连续子数组的和%n==k,如果不存在这样的p,输出-1.思路:先看i有一种情况肯定是n,所以就是1~n原串的和就是n*(n-1)/ 2,所以吸纳判断一下1~n的和是否成立。成立的话,就代表k是一个不变的定值,且与n有关,所以k=n*(n-1)/2%n的值。如果n为奇数,sum就是一个常数*n%n就是0了,所以k=0,。如果n为偶数,就展开可得k=n/2,...原创 2020-07-28 20:08:28 · 130 阅读 · 0 评论 -
牛客暑假多校训练营(第六场)Combination of Physics and Maths-思维
题意:有一个数组,压强满足一个公式:p=F/S,F是压缩力,(所有项之和),S为底面面积(最后一行项之和),求子矩阵的最强压强。思路:这题写的时候,队友就吐槽被下面那个样例给迷惑了,其实是可以发现,单列的压强一定大于多列的,所以我们只要求一个每一列的前缀和,然后遍历来找压强最大值,即可。代码:#include<bits/stdc++.h>using namespace std;int main (){ ios::sync_with_stdio(false); i...原创 2020-07-28 16:04:29 · 201 阅读 · 0 评论 -
牛客暑假多校训练营(第三场)B-Classical String Problem-字符串
题意:s字符串小写字母组成,执行q个操作,有两个类型的操作。(1)M-修改:如果x为正,字符串最左边的x个移到字符串的右边。如果x为负,字符串最右边的|x|个移到字符串左边。(2)A-回答:回到当前字符串第x个字符是什么。思路:(1)标程思路:通过画图我们能够得出,我们设定一个指针,刚开始让它指0,因为字符串是从0开始的,所以x为正,指针向右移动x的长度,指针增加x,但注意一下字符串的长度问题,所以我们要及时取余,x为负数时,就是指针往左移动x,就是指针减少x,因为可能涉及到负数的问题不太...原创 2020-07-23 21:16:08 · 171 阅读 · 0 评论 -
牛客暑假多校训练营(第三场)A-Clam and Fish-贪心
题意:有n个阶段,有4个类型分别是:(1)0-没有鱼,没有蛤蜊。(2)1-没有鱼,只有一只蛤蜊。(3)2-只有一条鱼,没有蛤蜊。(4)3-有一条鱼,有一只蛤蜊。(强调了一下,3类型时,抓鱼和挖鱼饵只能选一种)每个阶段下可以执行四个操作中的任意一个:(1)如果舞台上有蛤蜊,你可以用这个蛤蜊做一包鱼饵,而你增加的鱼饵包数增加了一包,你可以在这一阶段结束后用这包鱼饵。(2)如果有一条鱼在舞台上,你可以抓住这条鱼不需要任何鱼饵。这一阶段结束后,鱼饵包的数量就不会改变了。(3)如果你至少有一包...原创 2020-07-23 08:58:21 · 202 阅读 · 0 评论 -
牛客暑假多校训练营(第一场)J-Easy Integration-积分,逆元
因为复制过来就散了,就截图了题意:求这个积分然后进行取模的判断,得出答案。思路:这题题意很好懂,但是我们折在了求积分上面了,这个应该是一个分部积分,完了,放个假上学期学的都给忘了,具体过程就不在这推导了,应该是[(n!)^2 ] / (2n+1)!。先打一个阶乘表后面调用,所以这题的重点放在了pq^-1上面,因为取余的998244353是素数,所以根据逆元的道理 pq-1=p*qp-2(mod)998244353。逆元:ax=1(mod p)的解出的x为a关于p的逆元,一般让你mod的这个数原创 2020-07-15 10:16:50 · 178 阅读 · 1 评论 -
牛客暑假多校训练营(第一场)F-Infinite String Comparision-字符串
因为复制过来就散了,就截图发了题意:一个字符串可以无限复制,那么比较a,b字符串无限复制后,谁比较大。思路:这题一直被T,大概思路想到了,但是结束条件没有控制好,所以导致一直超时,这题应该是结束条件应该是最长的字符串的两倍就可以判断出来,找最小的循环节,但是lcm(两个字符串长度会超时),所以根据周期性引理,t1+t2-gcd(t1,t2)<2max(t1,t2),所以判断最长的长度2。否则就输出大小,至于比较的话,我们从0开始,通过取余的方式来判断它到哪一位了,因为我们是比较的步数相同,原创 2020-07-14 22:38:59 · 171 阅读 · 0 评论