牛客nowcoder
牛客nowcoder
Fiveneves
这个作者很懒,什么都没留下…
展开
-
2020牛客暑期多校训练营(第七场)D.Fake News
D.Fake News题目链接-D.Fake News题目大意判断12+22+…+n21^2+2^2+…+n^212+22+…+n2的和是否是一个平方数解题思路通过打表得出只有n=1n=1n=1或n=24n=24n=24的时候,12+22+…+n21^2+2^2+…+n^212+22+…+n2的和才是平方数附上代码#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>#define原创 2020-08-03 00:08:06 · 166 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)G.Grid Coloring
G.Grid Coloring题目链接-G.Grid Coloring题目大意请你绘制一个尺寸为nnn的网格图。她可以用一个1~k1~k1~k对每个边都着色一次,要求如下:所有颜色的出现次数应该相同图形不应包含任何单色环图形的每一整条水平或垂直线应至少包含两种颜色解题思路我们首先判断没有解的情况,当n==1时一定一整条垂直线和平行线都只能有一种颜色,不满足要求333,当k==1时,肯定会存在单色环,不满足要求222,当(2*n*(n+1))%k!=0时,说明颜色不能平均分配,不满原创 2020-08-01 04:00:42 · 204 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)K.K-Bag
K.K-Bag题目链接-K.K-Bag题目大意解题思路附上代码原创 2020-07-30 20:22:20 · 143 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)B.Binary Vector
B.Binary Vector题目链接-B.Binary Vector题目大意每天RoundgodRoundgodRoundgod从维度为n,每一位由01组成的所有向量的集合中随机选择一个二进制向量,现在他想知道nnn天中选取nnn个线性独立向量的概率,答案如果是PQ(P,Q互质)\frac{P}{Q}(P,Q互质)QP(P,Q互质),就输出P⋅Q−1(mod 109+7)P \cdot Q^{-1} (\textrm{mod}\ 10^9+7 )P⋅Q−1(mod 109+原创 2020-07-30 02:41:28 · 229 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)C.Combination of Physics and Maths
C.Combination of Physics and Maths题目链接-C.Combination of Physics and Maths题目大意一个矩阵的底面积SSS 定义为最后一行的数的和,重量FFF定义为所有数的和。现给你一个正整数矩阵,找一个p=FSp=\frac{F}{S}p=SF最大的可非连续子矩阵,输出ppp的最大值解题思路贪心贪心贪心假设ab>cd\frac{a}{b}>\frac{c}{d}ba>dc,那么ab−cd>0⇨ad−bcb原创 2020-07-29 18:53:15 · 146 阅读 · 0 评论 -
2020牛客暑期多校训练营(第五场)D.Drop Voicing
D.Drop Voicing题目链接-D.Drop Voicing题目大意给定一个1−n1-n1−n的排列ppp,有两种操作:将倒数第二个数放到开头将第一个数放到最后如果是连续的第一种操作,则只花费1,第二种操作不花费,求最少的花费使得ppp变成一个升序的排列解题思路LISLISLIS连续的操作111我们可以看成是前n−1n-1n−1个元素执行若干个循环移位,而连续的操作222我们可以看成是整个数组执行若干次循环移位因为第二种操作是免费的,所以我们可以把排列ppp看成一个环,原创 2020-07-29 02:38:47 · 129 阅读 · 0 评论 -
2020牛客暑期多校训练营(第五场)I.Hard Math Problem
I.Hard Math Problem题目链接-I.Hard Math Problem题目大意原创 2020-07-28 23:04:47 · 252 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)E.Easy Construction
E.Easy Construction题目链接-E.Easy Construction题目大意构造一个长度为nnn的排列PPP,使得对于1−n1-n1−n中的每个iii,PPP都存在一个长为iii的连续子序列,而每个子序列的和模nnn都余kkk,如果有解就输出排列PPP,无解则输出−1-1−1解题思路首先sum1−n% n=(n(n+1)/2)%n≠ksum_{1-n}\%\ n=(n(n+1)/2)\%n≠ksum1−n% n=(n(n+1)/2)%n=k时,肯定原创 2020-07-28 03:17:04 · 190 阅读 · 0 评论 -
2020牛客暑期多校训练营(第五场)F.DPS
F.DPS题目链接-F.DPS题目大意请你编写一个程序,输出显示对敌人造成伤害的直方图,其中空格的长度为si=50dimaxi dis_i=50\frac{d_i}{max_i\ d_i}si=50maxi didi(向上取整),必须通过将最后一个空格替换为‘∗’‘*’‘∗’来标记对敌人造成最大伤害的玩家,如果有多个最大值,则将其全部标记解题思路按照题目模拟,注意sis_isi向上取整,再特判一下输出*的情况即可,具体操作见代码附上代码#pragma GCC原创 2020-07-26 03:31:31 · 245 阅读 · 0 评论 -
2020牛客暑期多校训练营(第四场)F.Finding the Order
F.Finding the Order题目链接-F.Finding the Order题目大意有两条平行的线ABABAB和CDCDCD,给出ACACAC,ADADAD, BCBCBC, BDBDBD 的长度,分别为a,b,c,da, b, c, da,b,c,d。问是AB//CDAB//CDAB//CD,还是AB//DCAB//DCAB//DC解题思路如上图左侧图形,我们根据三角形两边之和大于第三边可得:OA+OC>AC,OB+OD>BDOA+OC>AC,OB+OD>原创 2020-07-26 03:07:38 · 168 阅读 · 0 评论 -
2020牛客暑期多校训练营(第四场)B.Basic Gcd Problem
B.Basic Gcd Problem题目链接-B.Basic Gcd Problem题目大意解题思路附上代码原创 2020-07-26 02:17:34 · 162 阅读 · 0 评论 -
2020牛客暑期多校训练营(第四场)H.Harder Gcd Problem
H.Harder Gcd Problem题目链接-H.Harder Gcd Problem题目大意集合AAA和BBB都是集合{1,2,.....,n}\{1,2,.....,n\}{1,2,.....,n}的子集,且A∩B≠∅A∩B≠∅A∩B=∅。问AAA和BBB最多有多少对数满足gcd(Ai,Bj)>1gcd(A_i,B_j)>1gcd(Ai,Bj)>1解题思路所有gcd>1gcd>1gcd>1的两个数肯定是倍数关系,最小也就是222倍,所以大于原创 2020-07-25 03:39:06 · 138 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)E.Two Matchings
E.Two Matchings题目链接-E.Two Matchings题目大意定义序列 ppp,满足如下要求:是长度为nnn的排列满足ppi=i且pi≠ip_{p_i}=i且p_i≠ippi=i且pi=i定义一个字符串的费用为(p=∑n=1Nabs(ai−api))/2(p = \sum\limits_{n=1}^Nabs(a_i-a_{pi}))/2(p=n=1∑Nabs(ai−api))/2,aaa为给出的权值数组现求两个满足上述描述的序列p,qp,qp,q ,同时原创 2020-07-24 22:30:55 · 166 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)C.Operation Love
C.Operation Love题目链接-C.Operation Love题目大意上图给出爱丽丝的右手,由二十个点组成,已知她的左手和右手对称,现给出二十个点,给你判断这些点组成的手是左手还是右手解题思路叉积叉积叉积我们知道可以利用叉积判断点和线的关系,逆正顺负所以可以计算长度为666和999这两个向量的叉积,如果相乘为正数,则为逆时针,为右手,反之是左手或者计算长度为888和999这两个向量的叉积,如果相乘为负数,则为逆时针,为右手,反之是左手具体操作见代码附上代码#pragm原创 2020-07-24 17:52:34 · 153 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)A.Clam and Fish
A.Clam and Fish题目链接-A.Clam and Fish题目大意一个游戏包含nnn个阶段,每个阶段有四种类型:类型000:没有鱼也没有蛤。类型111:只有一只蛤。类型222:只有一条鱼。类型333:有一条鱼和一只蛤在每个阶段都可以执行四种操作之一:用一只蛤换一包鱼饵。如果有一条鱼,可以无需鱼饵抓到这条鱼。无论在此阶段有没有鱼,都可以使用一包鱼饵捕获一条鱼。跳过该阶段请你求出每局游戏中能抓到鱼的最大条数解题思路贪心贪心贪心用ans记录抓到鱼的个数,cn原创 2020-07-24 03:02:30 · 278 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)B.Classical String Problem
B.Classical String Problem题目链接-B.Classical String Problem题目大意给你一个字符串sss,有qqq次操作,输入MMM xxx,表示将字符串最左边的xxx个字符移动到字符串最右边,MMM −x-x−x,表示将字符串最右边的xxx个字符移动到最左边。AAA xxx,表示询问当前字符串第xxx个位置的字符解题思路设置一个头指针head=0h原创 2020-07-24 01:08:54 · 151 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)L.Problem L is the Only Lovely Problem
L.Problem L is the Only Lovely Problem题目链接-L.Problem L is the Only Lovely Problem题目大意当且仅当字符串sss以单词lovelylovelylovely开头时(不区分大小写),认为这个字符串sss是可爱的,请你判断字符串sss是否可爱解题思路因为不区分lovelylovelylovely的大小写,所以我们可以先用tolower()函数把前六个字符化为小写字母,然后再判断s.substr(0,6)是否 为lovely原创 2020-07-23 16:56:47 · 141 阅读 · 0 评论 -
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 E.美味的序列
E.美味的序列题目链接-E.美味的序列解题思路不难得出吃的顺序对答案没有影响因为每经过 1秒,所有还没有被吃的部分的美味度会下降 1,所以最后减去n×(n−1)/2n×(n-1)/2n×(n−1)/2即可即ans=sum−∑i=1n(n−i)ans=sum-\sum_{i=1}^n (n-i)ans=sum−∑i=1n(n−i)附上代码//#pragma GCC optim...原创 2020-04-19 18:47:02 · 187 阅读 · 0 评论 -
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 C.最长非公共子序列
C.最长非公共子序列题目链接-C.最长非公共子序列解题思路贪心贪心贪心因为要求最长非公共子序列,所以若两个字符串一样输出-1,否则就输出两个串中长度最长的长度即可附上代码//#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>#define int long long...原创 2020-04-19 18:46:40 · 334 阅读 · 0 评论 -
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 D.最大字符集
D.最大字符集题目链接-D.最大字符集解题思路需特判一下n=1n=1n=1和n=2n=2n=2的情况,n=1n=1n=1时,集合可以是{1}或{0},n=2n=2n=2时,集合可以是{0,11}或{1,00}n>2n>2n>2时,集合中元素都应100…001的结构,即{11,101,1001,…}具体操作见代码附上代码//#pragma GCC optim...原创 2020-04-19 18:46:04 · 322 阅读 · 0 评论 -
2020牛客寒假算法基础集训营3 D.牛牛与二叉树的数组存储
D.牛牛与二叉树的数组存储题目链接-D.牛牛与二叉树的数组存储上图是一颗满二叉树,对于每个节点i,i2是它的左子树,i2+1是它的右子树,i/2则是它的父亲节点。当然了,当树不为满二叉树的时候其实也能储存上图是树不为满二叉树的情况,我们先用一些虚点将其补充成一颗满二叉树。根节点还是被储存到数组的第1个位置。然后对于下标为i的节点,他的左孩子的下标为i* 2,它的右孩子的下标为i*2+...原创 2020-02-18 01:09:06 · 158 阅读 · 0 评论 -
2020牛客寒假算法基础集训营6 J.签到题
J.签到题题目链接-J.签到题解题思路附上代码#include<bits/stdc++.h>using namespace std;const int N=1e5+5;const int M=1e9+7;const int INF=0x3f3f3f3f;const double PI=acos(-1.0);typedef long long ll;typede...原创 2020-02-17 22:04:18 · 262 阅读 · 0 评论 -
2020牛客寒假算法基础集训营6 A.配对
A.配对题目链接-A.配对解题思路附上代码#include<bits/stdc++.h>using namespace std;const int N=1e5+5;const int M=1e9+7;const int INF=0x3f3f3f3f;const double PI=acos(-1.0);typedef long long ll;typedef ...原创 2020-02-17 21:26:28 · 258 阅读 · 0 评论 -
2020牛客寒假算法基础集训营6 F.十字阵列
F.十字阵列题目链接-F.十字阵列解题思路附上代码#include<bits/stdc++.h>using namespace std;const int N=1e5+5;const int M=1e9+7;const int INF=0x3f3f3f3f;const double PI=acos(-1.0);typedef long long ll;type...原创 2020-02-17 21:08:18 · 194 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5 A.模板
A.模板题目链接-模板解题思路因为只能修改或在尾部做添加和删除操作,所以只要前面的修改,不够的再添加,就是最少步数了附上代码#include<bits/stdc++.h>#define int long longusing namespace std;const int INF=0x3f3f3f3f;const int N=1e5+5;const int M=1...原创 2020-02-15 00:29:44 · 96 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5 B.牛牛战队的比赛地
B.牛牛战队的比赛地题目链接-牛牛战队的比赛地解题思路思路1:二分答案对于每个训练基地而言,如果同比赛场地距离为d,那么比赛场地一定在以它为圆心半径为d的圆上,因为题上说比赛场地在x轴上,所以比赛场地就在圆与x轴的(两个)交点,判断就是对每个点算出在这个半径下能够到达的x轴上的最左点和最右点,所有最右点的最小值大于所有最左点的最大值就表示可以,记得计算距离d之前特判一下是否x<...原创 2020-02-15 00:19:55 · 197 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5 D.牛牛与牛妹的约会
D.牛牛与牛妹的约会题目链接-牛牛与牛妹的约会解题思路贪心,用牛牛现位置和牛妹的坐标计算距离,再用闪现后的坐标计算几个距离,所以直接判断闪现快还是走路快,如果如果前者减去后者大于1.0,说明闪现快,否则说明闪现慢了,小心闪现过头往回走的情况,模拟即可cbrt() 函数返回 x 的立方根值,这个函数不会失败,因为任何可表示的实数总有一个可表示的立方根函数原理:double cbrt(...原创 2020-02-14 17:52:44 · 247 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5 H.Hash
H.Hash题目链接-Hash解题思路对字符串hash不熟悉的可以去看下这个题AcWing 841. 字符串哈希(板子题)附上代码#include<bits/stdc++.h>#define int long longusing namespace std;const int INF=0x3f3f3f3f;const int N=1e5+5;const int ...原创 2020-02-14 15:52:20 · 136 阅读 · 0 评论 -
2020牛客寒假算法基础集训营5 J. 牛牛战队的秀场
J.牛牛战队的秀场题目链接-牛牛战队的秀场解题思路数学题,求半径为r的圆内接正n边形边长即可,记得算距离时要考虑顺时针走和逆时针走两种情况哪种最短sin(),cos()函数里面的参数都是弧度!!!不是角度!!!sin(),cos()函数里面的参数都是弧度!!!不是角度!!!sin(),cos()函数里面的参数都是弧度!!!不是角度!!!重要的事情说三遍!!!附上代码#incl...原创 2020-02-13 23:13:18 · 176 阅读 · 0 评论 -
2020牛客寒假算法基础集训营4 A.子段乘积
A.子段乘积题目链接-子段乘积解题思路维护当前区间中有几个0,同时维护不是0的数字的前缀积因为长度为 k 的连续子段的乘积取模=(sum[i]/sum[i-k])%M当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的 情况,所以需变除法为乘法,即用到逆元:关于费马小引理和逆元的解释当M为质数时可以用快速幂求逆元当M不是质数时,可以用扩展欧几里得算法求逆元因...原创 2020-02-12 17:41:38 · 227 阅读 · 0 评论 -
2020牛客寒假算法基础集训营4 A.欧几里得
A.欧几里得题目链接-欧几里得解题思路打表找规律,斐波那契数列n01234a12358b01235附上代码#include<bits/stdc++.h>#define int long longusing namespace std;const int INF=0x3f3f3f3f;const int ...原创 2020-02-12 16:13:39 · 480 阅读 · 0 评论 -
2020牛客寒假算法基础集训营4 D.子段异或
D.子段异或题目链接-子段异或解题思路a⊕b,如果a、b两个值相同,异或结果为0,所以有a ⊕ b ⊕ a = b,所以维护前缀异或值然后找到相同的计入答案就可以了,用map存一下每次异或出来的结果,如果结果和之前的有重复的,就加上重复的次数附上代码#include<bits/stdc++.h>#define int long longusing namespace ...原创 2020-02-12 15:47:46 · 121 阅读 · 0 评论 -
2020牛客寒假算法基础集训营4 B.括号序列
B.括号序列题目链接-括号序列解题思路栈的经典题如果是左括号,就入栈,如果是右括号,那么就要看这个右括号和栈顶的括号是否匹配,如果匹配,就弹出栈顶的括号,继续下一个括号,若不匹配则说明不合法,最后,如果栈为空,说明此括号序列合法,否则不合法附上代码#include<bits/stdc++.h>//#define int long longusing namespac...原创 2020-02-12 15:13:47 · 194 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2 C.算概率
C.算概率题目链接-算概率解题思路比赛的时候没有想到状态转移方程,太菜了概率DP,dp[i][j]表示前i道题做对j道的概率由于i-1时对了j题,所以第i题做错了;由于i-1时对了j-1题,所以第i题对了;所以可得到状态转移方程:dp[i][j] = dp[i-1][j] * p[i] + dp[i-1][j] * (1-p[i])注意取模为负的情况,所以可将(1-p[i])...原创 2020-02-10 17:42:02 · 163 阅读 · 0 评论 -
2020牛客寒假算法基础集训营3 A.牛牛的DRB迷宫I
A.牛牛的DRB迷宫I题目链接-牛牛的DRB迷宫I解题思路棋盘型DP,从起点(1,1)开始for循环遍历,如果是D就往下累加,如果是R就往右累加,如果是B就同时累加附上代码递推(比赛的时候写了好久,卑微蒟蒻)#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f;const int M...原创 2020-02-09 01:07:27 · 125 阅读 · 0 评论 -
2020牛客寒假算法基础集训营3 H.牛牛的k合因子数
H.牛牛的k合因子数题目链接-牛牛的k合因子数解题思路埃式筛法筛出素数,再枚举合数的因子,判断因子中有几个合数,最后桶排即可埃式筛法板子void sieve(){ for(int i=0;i<=maxn;i++) isprime[i]=true;//先全部置为真 isprime[0]=isprime[1]=false;//0和1不是素数 f...原创 2020-02-08 23:19:45 · 150 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2 H.施魔法
H.施魔法题目链接-施魔法解题思路DP,dp[i]表示用掉前 i 个元素的最小代价;先将元素按照能量值从小到大排序因为至少要取k 个,所以前面k−1 个是不能直接取到的,所以 前i−1个的dp值为INF当我们计算第i个元素的时候,它肯定是最大元素,第i-1个元素就不是最大的了,所以维护min{dp[j]−a[j+1]}(j∈[0,i−k])即可,可得到状态转移方程dp[i...原创 2020-02-08 22:58:56 · 144 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2 F.拿物品
F.拿物品题目链接-拿物品解题思路贪心,最优的策略就是自己多拿且让对方少拿假设牛牛最后得分为N,牛可乐为M如果 牛牛的一个物品与 牛可乐的一个物品交换,则 m=N−a1+a2,m=M+b1−b2对于牛牛目标是最大化n-m,所以当n-m>N-M时会更优可列不等式N-a1+a2-(M+b1-b2)>N-M,解得a2+b2>b1+b2对于牛可乐也一样,所以...原创 2020-02-08 00:12:06 · 123 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2 E.做计数
做计数题目链接-做计数解题思路对等式两边同时平方 : i + j + 2 * sqrt( i * j) =k,这样我们发现 i * j必须是完全平方数且不大于n的时候才可以,因此我们枚举完全平方数,再加上该平方数因子数即可附上代码#include<bits/stdc++.h>using namespace std;#define ll long longconst ...原创 2020-02-07 21:48:47 · 120 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2 B.排数字
**排数字 **题目链接-排数字解题思路要让616子串最多一定是 61616…这种,即一个6后面若干个16循环,所以易得616字串数目num=min(num6-1,num1);附上代码#include<bits/stdc++.h>using namespace std;#define ll long longconst int INF=0x3f3f3f;const...原创 2020-02-07 20:44:50 · 111 阅读 · 0 评论