
牛客
牛客
_昨日不可追
这个作者很懒,什么都没留下…
展开
-
牛客练习赛61 C.四个选项(并查集 DFS)
传送门题意:思路:先把答案必须一样的用并查集放在一起然后用cnt数组记录一下整合的每一堆的个数然后dfs,判断所有情况即可(每次判断的是四个选项我可不可以选这个)代码:#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#inc...原创 2020-04-11 14:11:58 · 252 阅读 · 0 评论 -
牛客练习赛61 B.吃水果(贪心)
传送门题意:思路:假设n是较小的如果n乘以2还小于m,那让n一直乘2直到乘2可以大于m(这样之后一定会有解且保证最小,因为如果还继续往上乘结果肯定会变大)然后如果m是奇数的话,先让他们同时减1,因为最后要让m是n的2倍然后两个数每次减2直到m是n的2倍break即可代码:#include <iostream>#include <stdio.h>#inc...原创 2020-04-11 14:02:41 · 181 阅读 · 0 评论 -
B:树上子链 (dfs,树上dp)点权
传送门题意:给定一棵树 T ,树 T 上每个点都有一个权值。定义一颗树的子链的大小为:这个子链上所有结点的权值和 。请在树 T 中找出一条最大的子链并输出。就是求树上的最长路径dp[x]代表到x的子树中的路径的最大值代码:#include <iostream>#include <stdio.h>#include <algorithm>#...原创 2020-02-24 13:23:50 · 361 阅读 · 0 评论 -
I:建通道 (思维,位运算)
2020牛客寒假算法基础集训营2传送门题意:分析:如果两个数相等那么他们的异或值为0,所以直接把他们连起来即可考虑所有不同的数(cnt个):因为花费的值为 x 二进制最低位 1 对应的值,那么在越低的位把他们异或得到1,花费越小,那么所有的数中只要在第k位,既有0又有1,那么就把是0的和是1的相连,把是1的和是0的相连,需要花费(1<<k)*(cnt-1)我们使k(0&...原创 2020-02-07 15:53:40 · 512 阅读 · 0 评论 -
H:施魔法 (dp,维护前缀最小值)
传送门题意:分析:先把所有元素排序,设dp[i]dp[i]dp[i]为取到第iii个位置时的最小值,因为至少要取kkk个,所有前面k−1k-1k−1个是不能直接取到的,所以前i−1i-1i−1个的dpdpdp值为infinfinf然后分析i>=ki>=ki>=k的o(n)o(n)o(n),然后输出dp[n]dp[n]dp[n]即可代码:#include <...原创 2020-02-07 13:55:28 · 382 阅读 · 0 评论 -
F:拿物品 (贪心)
传送门题意:分析:就是贪心,不太好解释看一下出题人题解总归意思就是对于每个人,既想自己取大的,又要想着让对方取不到大的,就是自己取到大的,尽量也能把对方的大的取找就是把a+b排序,轮流输出位置即可代码:#include <iostream>#include <stdio.h>#include <algorithm>#include <...原创 2020-02-06 22:00:25 · 200 阅读 · 0 评论 -
E:做计数 (因子的个数)
传送门题意:分析:先把原式转换一下然后发现4ij应该是完全平分数,因为要求i∗j<=ni*j<=ni∗j<=n然后就考虑小于4n的完全平分数,我是把完全平方数除4处理的,都一样,然后枚举他的因子就可以了,有一个需要注意的是(i,j,k)和(j,i,k)j!=i算两个#include <iostream>#include <stdio.h>...原创 2020-02-06 21:47:25 · 801 阅读 · 0 评论 -
D:数三角 (暴力枚举,判断钝角三角形)
传送门题意:n个点,问任意选三个点组成的三角形,有多少个是钝角三角形分析:n<=500,数据小,直接暴力枚举即可判断是钝角三角形的条件设三角形三边为a,b,c,c为最长边,如果a^2 +b^2< c^2,则为钝角三角形代码:#include <iostream>#include <stdio.h>#include <algorithm&...原创 2020-02-06 21:32:40 · 527 阅读 · 0 评论 -
C:算概率(概率dp)
传送门题意:思路:概率dp,用dp[i][j]表示做前i道题,做对j道考虑状态转移方程:如果前i-1道题做对j道,那么第i道题应该做错了,如果前i-1道题做对j-1道,那么第i道题应该做对了dp[i][j]=(dp[i-1][j]*(1-p[i]+mod)%mod+dp[i-1][j-1]*p[i]%mod)%mod;代码:#include <iostream>#in...原创 2020-02-06 21:27:37 · 684 阅读 · 0 评论 -
B: 排数字(签到题)
传送门题意:分析:要想最多应该这样排列6161616…然后讨论6和1字符的个数即可代码:#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#include <vector>#include <math.h>...原创 2020-02-06 21:21:59 · 208 阅读 · 0 评论 -
A: 做游戏(签到题)
传送门题意:坑点:用long long代码:#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#include <vector>#include <math.h>#include <map>...原创 2020-02-06 21:17:05 · 284 阅读 · 0 评论 -
C:umi和弓道(计算几何)
2020牛客寒假算法基础集训营1传送门题意:思路:和(x0,y0)(x0,y0)(x0,y0),在同一象限的无法挡住要射中kkk个,只用挡住n−kn-kn−k个即可1,对于每个靶子与(x0,y0)(x0,y0)(x0,y0)的连线交于yyy轴时,把这一点当住即挡住了一个靶子,把所有交在yyy轴的点统计排序,找到最近的n−kn-kn−k个点,即最小长度2,每个靶子与(x0,y0)(x...原创 2020-02-27 23:52:36 · 217 阅读 · 0 评论 -
F:maki和tree( 树上dp dfs )
2020牛客寒假算法基础集训营1题意:思路:只用找到每个黑点,对于每个黑点来说看他的每个子树白色点的个数路径有两种情况1,黑点直接到白色点子树的路径2,从白色点子树到黑点再到另一个白色子树的路径代码:两种写法树上dp#include <iostream>#include <stdio.h>#include <algorithm>#...原创 2020-02-22 15:18:13 · 271 阅读 · 0 评论 -
I:nico和niconiconi(dp)
2020牛客寒假算法基础集训营1传送门题意:思路:dp,dp[i]记录当前记录的最大值,每次遇到符合a,b,c字符串时,更新最大值即可代码:#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#include <vector...原创 2020-02-05 18:45:15 · 293 阅读 · 0 评论 -
J:u's的影响力(矩阵快速幂)
传送门题意:思路:写几项,推导x,y,a^b的系数即可,然后找好和项数对应的关系x,y都是斐波那契的某一项,然后正常看的话,a^b的系数应该是前两项之和加1,仔细观察发现,它的系数也是斐波那契的某一项减1即可用矩阵快速幂算系数,因为数据大,然后还有就是用欧拉降幂1e9+7是素数,它的欧拉函数值是1e9+6我的推导过程代码:#include <iostream>#...原创 2020-02-05 16:35:23 · 259 阅读 · 0 评论 -
H:nozomi和字符串
传送门题意:nozomi看到eli在字符串的“花园”里迷路了,决定也去研究字符串问题。她想到了这样一个问题:对于一个“01”串而言,每次操作可以把0 字符改为1 字符,或者把 1 字符改为 0 字符。所谓“01”串,即只含字符0 和字符 1 的字符串。nozomi有最多 k次操作的机会。她想在操作之后找出一个尽可能长的连续子串,这个子串上的所有字符都相同。nozomi想问问聪明的你,这...原创 2020-02-04 21:04:06 · 468 阅读 · 0 评论 -
G:eli和字符串
传送门题意:eli拿到了一个仅由小写字母组成的字符串。她想截取一段连续子串,这个子串包含至少 个相同的某个字母。她想知道,子串的长度最小值是多少?注:所谓连续子串,指字符串删除头部和尾部的部分字符(也可以不删除)剩下的字符串。例如:对于字符串“arcaea”\mathit{“arcaea”}“arcaea”而言,“arc”\mathit{“arc”}“arc”、“rcae”\mathi...原创 2020-02-04 20:45:41 · 329 阅读 · 0 评论 -
E:rin和快速迭代
传送门题意:思路:直接o(sqrt(n))求因子的个数,结束的标志就是遇到了素数,因为素数的因子只有两个代码:#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#include <vector>#include &l...原创 2020-02-04 20:37:50 · 274 阅读 · 0 评论 -
D:hanayo和米饭
传送门题意:hanayo很喜欢吃米饭。有一天,她拿出了 n个碗,第一个碗装了 1 粒米饭,第二个碗装了 2粒米饭,以此类推,第 n碗装了 n粒米饭。然而,爱搞恶作剧的rin把所有的碗的顺序打乱,并拿走了一个碗。hanayo想知道,rin拿走的碗里有多少粒米饭?分析:解法很多,我用了异或的性质,x^x=0,直接看代码吧…代码:#include <iostream>...原创 2020-02-04 20:32:49 · 220 阅读 · 0 评论 -
B:kotori和bangdream(签到题)
传送门题意:有一天,kotori发现了一个和lovelive相似的游戏:bangdream。令她惊讶的是,这个游戏和lovelive居然是同一个公司出的!kotori经过一段时间的练习后已经变得非常触,每个音符x% 的概率perfect,获得 a分, (100−x)% 概率great,获得 b分。已知一首歌有 n个音符。kotori想知道,不考虑连击加成的话,一首歌得分的期望是多少?分...原创 2020-02-04 20:21:51 · 476 阅读 · 0 评论 -
A: honoka和格点三角形(思维)
传送门题意:honoka最近在研究三角形计数问题。她认为,满足以下三个条件的三角形是“好三角形”。1.三角形的三个顶点均为格点,即横坐标和纵坐标均为整数。2.三角形的面积为 1。3.三角形至少有一条边和 x轴或 y轴平行。honoka想知道,在平面中选取一个大小为n∗mn*mn∗m的矩形格点阵,可以找到多少个不同的“好三角形”?由于答案可能过大,请对1000000007取模。思...原创 2020-02-04 20:10:19 · 1007 阅读 · 0 评论 -
2019牛客暑期多校训练营(第四场)K number(思维)
传送门300iq loves numbers who are multiple of 300.One day he got a string consisted of numbers. He wants to know how many substrings in the string are multiples of 300 when considered as decimal intege...原创 2020-03-12 15:35:09 · 257 阅读 · 0 评论 -
牛客练习赛58 E-最大GCD(gcd)
传送门题意:思路:要想让[l,r],选出来个区间的gcd值最大,最优是,只有在[l,r]区间找一个值使得gcd(x,a[i])最大即可,x一定是a[i]的因子要想让[l,r],选出来个区间的gcd值最大,最优是,只有在[l,r]区间找一个值使得gcd(x,a[i])最大即可,x一定是a[i]的因子要想让[l,r],选出来个区间的gcd值最大,最优是,只有在[l,r]区间找一个值使得gcd(...原创 2020-02-29 15:51:30 · 511 阅读 · 0 评论 -
牛客练习赛58 C-矩阵消除游戏(二进制枚举)
传送门题意:思路:数据只有15,直接枚举所有情况即可通过二进制枚举行,每次枚举的意义是枚举几行以及枚举的哪几行假设该次枚举cnt行,那么剩下的肯定都选的是列,只用找到枚举完行之后,剩余每列之和的前k-cnt大的加在总和里即可__builtin_popcount(i)计算i的二进制中1的个数一些__builtin_函数为什么不能贪心,每次找行或列的最大值因为选列行或列之和,对列或...原创 2020-02-29 21:43:43 · 411 阅读 · 0 评论 -
I:牛牛的汉诺塔
传送门题意:分析:暴力发现的规律,然后打表即可,下面有打表代码代码:#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#include <vector>#include <math.h>#include...原创 2020-02-08 20:32:09 · 257 阅读 · 0 评论 -
H:牛牛的k合因子数(数论)
传送门题意:分析:我写的有点麻烦…先求1e5内的素数,然后就可以搞除1e5内的合数然后就可以求1e5内每个数的合因子的个数发现最大的合因子个数也不超过122然后做个二维数组pk[i][j]pk[i][j]pk[i][j]存小于j且合因子个数为i的数的个数访问的时候直接输出pk[k][n]pk[k][n]pk[k][n]即可应该有更简单的写法,到时候会添加代码:#includ...原创 2020-02-08 20:21:58 · 340 阅读 · 0 评论 -
F:牛牛的Link Power I
传送门题意:分析:先把字符为1的位置放到一个p数组里p1,p2,p3......pcntp_1,p_2,p_3......p_{cnt}p1,p2,p3......pcnt然后我们发现数组的Link值为:pcnt−pcnt−1+pcnt−pcnt−2+pcnt−pcnt−3+......+pcnt−p1+pcnt−1−pcnt−2+......+pcnt−1−p1+.........原创 2020-02-08 20:12:34 · 175 阅读 · 0 评论 -
D:牛牛与二叉树的数组存储
传送门题意:当一颗二叉树是满二叉树时,可以用如下的规则储存:1.数组0下标不使用2.节点i的左子节点在位置为(2i);3.节点i的右子节点在位置为(2i+1);4.节点i的父节点在位置为(i/2);5.根节点被保存到数组下标为1的位置。如果数不为满二叉树,把空的位置补成-1然后询问一下,每个节点的父亲节点、左孩子、右孩子分析:直接按题意求出,然后输出即可,数组开2倍代码:...原创 2020-02-08 20:00:33 · 219 阅读 · 0 评论 -
A: 牛牛的DRB迷宫I (dp)
传送门题意:分析:对于每个位置,看能不能从上,或者从左边到达,如果可以那就加上前面的方案数即可代码:#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#include <vector>#include <mat...原创 2020-02-08 19:47:28 · 262 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2
A 做游戏原创 2020-02-06 21:13:33 · 286 阅读 · 0 评论 -
2020牛客寒假算法基础集训营1
A:原创 2020-02-04 19:57:31 · 638 阅读 · 0 评论