小白月赛专题

牛客小白月赛100部分题解

比赛地址:牛客小白月赛100_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A.ACM中的A题 #include<bits/stdc++.h>using namespace std;#define ll long long#define ull = unsigned long longvoid solve() {ll a,b,c;cin>>a>>b>

牛客小白月赛100(A,B,C,D,E,F三元环计数)

比赛链接 官方讲解 这场比较简单,ABC都很签到,D是个不太裸需要预处理的 B F S BFS BFS 搜索,E是调和级数暴力枚举,F是三元环计数。三元环考的比较少,没见过可能会偏难。 A ACM中的A题 思路: 就是枚举每个边变成原来的两倍,然后看看两短边之和是否大于第三边即可。 不能只给最短边乘 2 2 2,比如 1 4 8 这组数据,也不能只给第二短边乘 2 2 2,比

牛客小白月赛99(A-F)

牛客小白月赛99_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A 签到题,不解释 #include<iostream>using namespace std;using ll = long long;int main(){int t; cin >> t;while(t--){ll a, b, x, y; cin >> a >> b >> x >> y

牛客小白月赛99(A~F)

文章目录 写在前面A 材料打印思路code B %%%思路code C 迷宫思路code D 又是一年毕业季思路code E 多米诺骨牌思路code F 自爆机器人思路code 牛客小白月赛99 写在前面 这次的小白月赛题目出的挺好,很多算法知识都有涉及到,E题这种题型我还是第一次遇到,也是学到了一些有用的算法知识 A 材料打印 思路 签到题,考虑2种情况: 彩印比黑

牛客小白月赛96 D 最小连通代价

题目在这里 题意: 加边是所有点连通,没有重边和自环,问最小代价 加边规则:两点权值奇偶性相同代价为a,否则为b − 100 ≤ a , b ≤ 100 -100\leq a,b \leq100 −100≤a,b≤100 分析: 这题就是一个分类讨论,先读进来统计奇数点和偶数点 记 n a na na为奇偶性相同的点的连边, n b nb nb为奇偶性不同的点的连边, j i ji ji为奇

牛客小白月赛96 解题报告 | 珂学家

前言 题解 A. 最少胜利题数 签到 n1 = len(set(input()))n2 = len(set(input()))if n1 < n2:n1, n2 = n2, n1print (-1 if n1 == 6 else n1 - n2 + 1) B. 最少操作次数 思路: 分类讨论 只有-1,0,1,2这四种结果 特判 0+1+, 1+0+ n

小白月赛91E Bingbong的字符串世界

知识点:系列自动机 刚开始想偏了,直接在字符串上操作,导致漏算了一些字符,ACCEPT前后都可以有字符串。 所以参考b站的讲解,要使用一个二维数组记录从i位开始第一次出现某字母的位置(某字母指26个大写字母),这样才会在不漏任何一个符合条件的字符串 从n开始的目的是为了排除从此位置开始那些没出现的字母 inline void count(){for(int i=n;i>=0;i--){

牛客小白月赛95

c相助 题目描述 此题为E题的easy版,只有aia_iai​的数据范围不同。 给你一个 nnn 个正整数组成的数组 a ,你每次操作可以选择一对 (i,j)( i, j )(i,j),满足 1≤i<j≤n1 \leq i < j \leq n1≤i<j≤n,且 ai=aja_{i} = a_{j}ai​=aj​ ,将 { ai,ai+1,...,aj−1,aja_{i} , a_{i+1}

牛客小白月赛94 解题报告 | 珂学家 | 茴字有36种写法

前言 很久没写题解了,有幸参加了94小白月赛内测,反馈是很nice,AK场。 争议的焦点在于哪题最难 D题E题(没有F题)F题(没有E题) 你选哪题呢? 题解 欢迎关注 珂朵莉 牛客周赛专栏 珂朵莉 牛客小白月赛专栏 A. 小苯的九宫格 思路: 映射 + 模拟 grid = []for _ in range(3):arr = input().spli

牛客小白月赛93

B交换数字 题目: 思路:我们可以知道,a*b% mod = (a%mod) * (b%mod) 代码: void solve(){int n;cin >> n;string a, b;cin >> a >> b;for(int i = 0;i < n;i ++)if(a[i] > b[i])swap(a[i], b[i]);int num1 = 0, num2 = 0;for(int i

牛客小白月赛92题解

A-获得木头_牛客小白月赛92 (nowcoder.com) void solve(){cin>>n;cout<<n*2*4<<endl;} B-采矿时间到!_牛客小白月赛92 (nowcoder.com) 思路:先把矿道两边的矿石挖走,在把里面的矿石挖走即可 void solve(){cin>>n>>m;for(int i=1;i<=5;i++)for(int j=1;j<=n;j

牛客小白月赛——图像存储(BFS+去重)

图像存储 这道题是学校训练赛遇到的,困扰了许久,最终在网上找到这一种较为简单且容易实现的。除了这一种解法还有其他的比如二维哈希,这里只讲BFS+去重的方法 其实因为其他的都不会 先上链接:图像存储 首先若是不考虑题中的第二个问题,图像中黑块的种类,单单只询问图中的黑块数目。是不是很简单,只需要循环寻找每一个黑点(即数字1)sum++。然后以此为起点跑一遍bfs寻找出所有和这一黑点连在一块的黑点,

小白月赛7 BFS (string 中find函数的用法)

链接:https://www.nowcoder.com/acm/contest/190/F 来源:牛客网 题目描述 Bob在学习了DFS后,自己又发明了一种新的搜(luan)索(gao)方法,叫做BFS(Bobby First Search)。 这种搜索被定义为:在一个字符串中,从前向后查找第一个子串"Bob"出现的位置。(不区分大小写) 输入描述: 输入一个不含空格的字符串S(可能含有大小

牛客小白月赛91 ----- Bingbong的回文路径 ---- 题解

Bingbong的回文路径: 题目描述: 思路解析: 现在有一棵树,树上每个结点上都有一个小写字母,那么如果唯一确定了x和y两个结点,那么就唯一确定了一个字符串路径(最短路径)。 -现在给出q次查询,问x和y这个路径是否是回文字符串。 一看到回文字符串就可以应当想到字符串hash。但是怎么快速查询这个路径上字符串的hash值变成为了关键,可以发现,根节点到到任意结点的路径是确定的,并且

牛客小白月赛7 J 方格填色(状压DP+矩阵快速幂)

题目链接:https://www.nowcoder.com/acm/contest/190/J   题目大意:给一个m*n的方格,每个格子可以是黑色或白色,要求左右相邻两格不能同时为白色,且相邻两列不能全为黑色,问可以有几种情况数。   题目思路:由于数据范围1<=m<=5,1<=n<=1e18,所以很容易看出是状压dp。由于他要求的都是对于两列之间,也就是说行之间没有要求,所以我们只要在

牛客小白月赛38 E-又一数区间问题

https://ac.nowcoder.com/acm/contest/11215/E 给定一个长为nn的数字串(只包含11到99的整数),求有多少个区间[l,r](l\leq r)l,r满足区间长度等于区间内所有数字的积。 输入描述: 第一行输入一个整数n代表数字串的长度 第二行给出该数字串,保证之中只含有1到9的数字。 输出描述: 输出一个整数,表示满足条件的区间个数。

牛客小白月赛90 小A的数字

题目描述 小A给定一个数字 n ,请你帮她找出从低位对齐后任意一位均与 n 对应数位不同的最小正整数。 对于本题题面描述中的从低位对齐后任意一位均与 n 对应数位不同,你需要保证你所输出的答案的位数小于 n 的位数时,即使在添加前导零至与 n 的位数相同后,也不应有任意一位的数字两两相同。 输入描述: 多组测试。 第一行一个正整数 T  (1≤T≤103),表示测试数据组数。 对于

牛客小白月赛5 H J I D G A F

https://www.nowcoder.com/acm/contest/135#question   以下题目都需要注意会不会爆long long 会不会c++输入输出超时以及 “   ~   ” H  求a和b的最小公倍数,a*b/gcd(a,b) #include<bits/stdc++.h>using namespace std;long long a[1111111];u

牛客小白月赛89(A,B,C,D,E,F)

比赛链接 官方视频讲解(个人觉得讲的还是不错的) 这把BC偏难,差点就不想做了,对小白杀伤力比较大。后面的题还算正常点。 A 伊甸之花 思路: 发现如果这个序列中最大值不为 k k k,我们可以把序列所有数都加 1 1 1,这样所有数一定不会超出范围,也就得到了一种可行解。同理,若序列中最小值不为 1 1 1,就可以给序列所有数减 1 1 1。 但是如果序列最小值顶到了

牛客小白月赛89----->太阳之华

这题有没有和我一样,四联通块理解错了的,我理解成了一个联通块至少有四个方格才能叫四连通块(现在想起来我是XXX)。 一,思路:像这题我可以举一个例子你大概就懂了,如下图: 这种已经是一种极端情况了,红色吃完之后 ,蓝色就只剩下中间那一个了,但是轮到蓝色使他又会像四个方向扩展,导致红色始终都无法将最中间的吃掉,然而蓝色也是无法获胜的,最终平局。所以要么一招制敌,要么就只能平局。还有特殊情况就

牛客小白月赛89(A~C)

小白赛怎么这么难打,是什么小白,我的世界小白吗。 A. 伊甸之花 给你一个数组 a,问你是否找出一个 不等于 a 的数组 b,满足 其中数值都要在 [1,m] 的范围内 直接在 a 数组上修改,可以发现如果改了 a[1],a[2],那么 a[3] 也要一起修改,所以考虑两个极限情况,一个是全体加一,还有一个是全体减一。 #include <bits/stdc++.h>//#de

【水题大记录】牛客小白月赛11 C-Rinne Loves Study

直接在牛客的编辑器上写了,练手感,没得意义。 可能给学C语言刚一个星期的人写就不轻松了,正所谓熟能生巧,也许只要努力,某天我也会像大佬一样做题跟做着玩一样! #include<bits/stdc++.h>using namespace std;map<int,int> lines;map<int,int> rows;int main(){int n,m,T;cin>>n>>m>>T;

牛客小白月赛86(D剪纸游戏)

题目链接:D-剪纸游戏_牛客小白月赛86 (nowcoder.com) 题目描述: 输入描述: 输入第一行包含两个空格分隔的整数分别代表 n 和 m。 接下来输入 n行,每行包含 m 个字符,代表残缺纸张。 保证: 1≤n,m≤10001  字符仅有 '.' 和 '*' 两种字符,其中 '.' 代表被剪去的部分,'*' 代表未被剪去的部分。 实例: 4 10 *.*.*...**

牛客小白月赛-D-游戏购买

仅记录做此题时出现的问题 1.审错题,一开始是想错了,想着连续到点购买,结果写成了正确的bfs,后面又把自己绕进去,以为是需要连续购买,没注意题目中说的一个,还是得注意审题啊 2.写的细节点错误太多 比如>x的x和下标x弄混,d和d_fat乱用 其实整体思路没问题,就是实现的时候把自己搞混,读题没读明白的问题 // Problem: 游戏购买!// Contest: NowCode

牛客小白月赛66-B-再交换

这题我只能说有点逆天,看着简单,实现的时候莫名麻烦,做的非常不舒服 写一下实现思路 在1 -> n - 1 中 (1) 出现a[i] > b[i]  直接输出换 下面的分类讨论有点不好想 如果一直是a[i] == b[i],也就是前n - 1个元素都相等,此时 (1) a[i] > b[i]  交换 n n (2) a[i] < b[i] 此时除n n外随便输出一个 如果存在a

牛客小白月赛88ABCD

牛客小白月赛88_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)  A import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc =new Scanner(System.in);int n=sc.n