牛客专题

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

牛客小白月赛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,比

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码         递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打印组合。向上回退搜索其它组合。此题本身就是一个搜索的过程,找到所有的组合。 #include <iostream>#include <cmath>#in

牛客《剑指Offer》 -- 数值的整数次方

题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路 特别注意负数的情况,出现负数,将其转化为正数然后求倒数。 class Solution {public:double Power(double base, int exponent) {double total = 1;bool flag = false

牛客网《剑指Offer》 二进制中1的个数

题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路 负数用补码,其实就是求一个数据在计算机中是存储是怎么样子的。用位运算,就能很好实现。 class Solution {public:int NumberOf1(int n) {int count = 0;int flag = 1;while (flag != 0) {if ((n & f

牛客网《剑指Offer》 矩形覆盖

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? class Solution {public:int rectCover(int number) {if(number==0) return 0;if(number==1) return 1;if(number==2) return 2;retu

牛客《剑指Offer》 变态跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路 根据 普通的跳台阶可以总结出 f(n) = f(n-1) + f(n-2) +f(n-3) + 。。。。+ f(1) +1 不妨设 f(0) = 1 , 则易得 class Solution {public:int jumpFloorII(int n

牛客《剑指Offer》 跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路 递归思想,n阶梯子走法等于n-1 加上n-2的。 class Solution {public:int jumpFloor(int number) {if(number==1) return 1;if(number==2) return 2;return jumpFl

牛客《剑指Offer》 -- 斐波那契数列

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 思路 对于n=0,应返回0。 class Solution {public:int Fibonacci(int n) {if(n==0) return 0;if(n==1||n==2) return 1;int a=1,b=1,c;n= n-2;for(int i =0

牛客《剑指Offer》 旋转数组的最小数字

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路 非递减排序的数组旋转后生成的数组,若数组中存在前一个数大于后一个数,不再是非递减排序则后一

每日OJ_牛客_Emacs计算器(逆波兰表达式)

目录 牛客_Emacs计算器(逆波兰表达式) 解析代码 牛客_Emacs计算器(逆波兰表达式) Emacs计算器__牛客网 解析代码 逆波兰表达式(后缀表达式)求值,需要借助栈,思路: 循环输入,获取逆波兰表达式,然后进行以下补助,直到测试完所有的测试用例: 遇到数字字符串,将该数字字符串转化为数字然后入栈。遇到操作符时,从栈顶取两个数字,然后进行该运算符所对应运算

牛客周赛 Round 58(ABCDF)

目录 A.会赢吗? B.能做到的吧   C.会赢的! D.好好好数 F.随机化游戏时间 A.会赢吗? 思路: 签到题,比大小 void solve(){double a,b;cin>>a>>b;if(a>=b) cout<<"NO";else cout<<"YES";} B.能做到的吧  思路:只要能变大就行,那么我们就将字符串从大到小排序,如

牛客笔试,牛客.四个选项(dfs巨难)牛客.接雨水动态规划单调栈解法牛客.栈和排序牛客.加减

目录 牛客.四个选项(dfs巨难) 牛客.接雨水 动态规划 单调栈解法 牛客.栈和排序 牛客.加减 牛客.四个选项(dfs巨难)   刚开始我是想着用数学,Cxx去解决,但是他的还有其余条件,就没有办法解决,所以就枚举 ,递归的数据量不大时候,是推荐使用的 import java.util.*;// 注意类名必须为 Main, 不要有任何 packag

笔试,牛客.kotori和n皇后​,牛客.AOE还是单体

目录 牛客.kotori和n皇后​编辑 牛客.AOE还是单体 牛客.kotori和n皇后  想起来,我之前还写过n皇后的题,但是这个我开始只能想到暴力解法 判断是不是斜对角线,联想y=x+b和y=-x+b,假如在一条线上,那么他们的x和y会对应成比例,这个扫描+判断是一个O(n^2)的操作。 import java.util.*; import java.io.*;//

牛客(两个数组的交集)

NC313 两个数组的交集 题目题解(19)讨论(7)排行面经 new 简单  通过率:29.64%  时间限制:1秒  空间限制:256M 知识点二分哈希排序双指针 描述 给定两个整数数组分别为𝑛𝑢𝑚𝑠1nums1, 𝑛𝑢𝑚𝑠2nums2,找到它们的公共元素并按返回。 数据范围: 1≤𝑛𝑢𝑚𝑠1.𝑙𝑒𝑛𝑔𝑡ℎ,𝑛𝑢𝑚𝑠2.𝑙𝑒𝑛𝑔

【牛客网】创造新世界

/******************************************************************* 问题描述: 众所周知计算机代码底层计算都是0和1的计算,牛牛知道这点之后就想使用0和1创造一个新世界!牛牛现在手里有n个0和m个1,给出牛牛可以创造的x种物品,每种物品都由一个01串表示。牛牛想知道当前手中的0和1可以最多创造出多少种物品。  输入描述:

会赢的!(牛客)

题目描述          在一个无限大的二维网格内,阿龙和小歪正在玩一场游戏。我们使用 (i,j)(i,j)(i,j) 表示网格中从上往下数第 iii 行和从左往右数第 jjj 列的单元格。规则如下: 两人共同操作一个棋子,开始位置为 (0,0)(0,0)(0,0) ; 每个回合每人可以将棋子向下或向右移动一格,向下移动一格即抵达 (x+1,y)(x+1,y)(x+1,y) 、向右移动一格

【每日一题】【进制数】【思维】好好好数 牛客周赛 Round 58 D题 C++

牛客周赛 Round 58 D题 好好好数 题目背景 牛客周赛 Round 58 题目描述 样例 #1 样例输入 #1 260 3114 514 样例输出 #1 2114 做题思路 考虑到k-好数实际上是 k k k进制下取0/1的操作。 而且问题也是k-好数的和,其工作原理和算进制数一样。 例如 30 = 3 3 + 3 1 30 = 3^3+3^1 30

【每日一题】【博弈论】【思维】会赢的! 牛客周赛 Round 58 C题 C++

牛客周赛 Round 58 C题 会赢的! 题目背景 牛客周赛 Round 58 题目描述 样例 #1 样例输入 #1 31 11 0-1 -1 样例输出 #1 NOYESPING 做题思路 首先考虑到开始位置为 ( 0 , 0 ) (0,0) (0,0)并且只能使横纵坐标递增。所以如果终点的横纵坐标为负数的情况是不可能到达的。所以平局。 第一个点: x

C++ 计算 日期差值(牛客网)

点击链接即可查看题目:日期差值_牛客题霸_牛客网 一、 题目 描述 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入描述: 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD 输出描述: 每组数据输出一行,即日期差值 示例1 输入: 2011041220110422 输出: 11 二、 代码 #include <cst

每日OJ_牛客_mkdir(排序+模拟)

目录 牛客_mkdir(排序+模拟) 解析代码 牛客_mkdir(排序+模拟) mkdir__牛客网 解析代码 题解及代码:         只要按照题面,将前缀字符串路径和相同路径剔除,只mkdir -p最长或者唯一路径就可以解决这 个问题 循环接收每组用例,对于每组用户进行如下操作: 对改组用例按照字典顺序排序将改组用例中相等的或者前一个是后一个子串的路径剔

每日OJ_牛客_数据库连接池(简单模拟)

目录 牛客_数据库连接池(简单模拟) 解析代码 牛客_数据库连接池(简单模拟) 数据库连接池__牛客网 解析代码 题目解析: 服务器后台访问数据库时,需要先连上数据库,而为了连上数据库,需要连接方和数据库服务上各自都要维护链接,而链接本身的创建维护是有成本的。要减少开销,这里的解决方案就是将以前的mysql链接复用起来,从而节省了创建和销毁的时间成本,该题目就是想让你

算法的学习笔记—数字序列中的某一位数字(牛客JZ44)

😀前言 在编程面试中,遇到的问题往往需要我们高效处理大规模的数据或序列。今天我们要讨论的是一个典型的问题:如何在一个连续的数字序列中找到指定位置的数字。 🏠个人主页:尘觉主页 文章目录 😀数字序列中的某一位数字问题描述示例 😊解题思路🥰具体实现1. 找到目标所在的位数段2. 计算该段中具体的数字3. 提取数字的具体位置 代码解析 😄总结 😀数字序列中的

【牛客_c++_string】HJ1字符串最后一个单词的长度

文章目录 1.题目1.1 描述1.2 输入描述1.3 输出描述示例1 2.题解2.1 思路2.2 代码 1.题目 1.1 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 1.2 输入描述 输入一行,代表要计算的字符串,非空,长度小于5000。 1.3 输出描述 输出一个整数,表示输入字符串最后一个单词的长度