
刷题集
算法好蓝,我好难
这个作者很懒,什么都没留下…
展开
-
牛客寒假基础训练营1
文章目录前言九小时九个人九扇门炸鸡块君与FIFA22Baby's first attempt on CPU牛牛做数论炸鸡块君的高中回忆中位数切分ACM is all you need前言第一次参加牛客训练营,题目真的很有挑战性 (不会做) ,题目包含的知识面很广 (其实是我知识面太窄了) 补题就花了好长的时间 (其实是我摆烂,一天也就补个一两题) ,再加上正逢春节假期,当然要好好休息啦。于是这一场的补题,从去年拖到了今年。(不会吧不会吧,不会有人过年当晚、大年初一,初二还在学习吧)九小时九个人九扇门原创 2022-02-04 17:34:24 · 1167 阅读 · 2 评论 -
刷题——跳石头(二分)
链接:https://ac.nowcoder.com/acm/contest/22353/C来源:牛客网题目描述 一年一度的“跳石头”比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终 点。在起点和终点之间,有 N 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至原创 2022-01-14 11:30:12 · 320 阅读 · 0 评论 -
Codeforces Round #765 (Div. 2) B
链接:https://codeforces.com/contest/1625/problem/B思路:一开始想的是双指针找相同的数,然后根据下标得到最大子串长度。后来发现会超时,于是想到了用vector+pair,来存数与对应的下标,再将数排序,那么相等的数就会相邻,然后根据下标求子串长度,再维护个最大值就行。最大子串的长度就是,前面一个数的位置+n-后面一个数的位置。我的代码:#include<bits/stdc++.h>using namespace std;typedef pa原创 2022-01-14 11:03:51 · 210 阅读 · 0 评论 -
刷题——栈和排序
链接 :https://ac.nowcoder.com/acm/contest/22669/A来源:牛客网题目描述 给你一个1->n的排列和一个栈,入栈顺序给定你要在不打乱入栈顺序的情况下,对数组进行从大到小排序当无法完全排序时,请输出字典序最大的出栈序列输入描述:第一行一个数n第二行n个数,表示入栈的顺序,用空格隔开,结尾无空格输出描述:输出一行n个数表示答案,用空格隔开,结尾无空格示例1输入52 1 5 3 4输出5 4 3 1 2说明2入栈;1入栈;5入栈;5原创 2022-01-14 10:36:27 · 671 阅读 · 0 评论 -
二维费用的背包问题
板子题链接:https://www.acwing.com/problem/content/8/有 N 件物品和一个容量是 V 的背包,背包能承受的最大重量是 M。每件物品只能用一次。体积是 vi,重量是 mi,价值是 wi。求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。输出最大价值。输入格式第一行三个整数,N,V,M,用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量。接下来有 N 行,每行三个整数 vi,mi,wi原创 2021-12-01 14:55:29 · 997 阅读 · 2 评论 -
acwing3998. 变成1
链接:https://www.acwing.com/problem/content/4001/给定一个二进制数 x,在它变为 1 之前,不断对它进行如下操作:如果 x 为奇数,则将 x 加 1。如果 x 为偶数,则将 x 除以 2。请问,多少次操作后,x 会变为 1。输入格式共一行,一个 01 字符串,表示二进制数 x。输出格式一个整数,表示所需操作次数。数据范围前六个测试点满足,x 的位数不超过 11。所有测试点满足,x 的首位不为 0,且位数不超过 106。输入样例1:原创 2021-10-17 10:09:02 · 214 阅读 · 0 评论 -
数独(dfs+优化+位运算)
链接:https://www.acwing.com/problem/content/168/来源:《算法竞赛进阶指南》数独是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得图中每行、每列、每个 3×3 的九宫格内数字 1∼9 均恰好出现一次。请编写一个程序填写数独。输入格式输入包含多组测试用例。每个测试用例占一行,包含 81 个字符,代表数独的 81 个格内数据(顺序总体由上到下,同行由左到右)。每个字符都是一个数字(1−9)或一个 .(表示尚未填充)。您可以假设输入原创 2021-10-10 14:09:28 · 414 阅读 · 0 评论 -
最小的和(多路归并)
地址:https://www.acwing.com/problem/content/3998/来源:AcWing,第20场周赛给定两个长度为 n 的整数序列 a1,a2,…,an 和 b1,b2,…,bn。现在要对序列 a 进行恰好 k1 次操作,对序列 b 进行恰好 k2 次操作。每次操作具体流程为选取序列中的一个元素,并将其加 1 或减 1。要求所有操作进行完毕以后,∑i=1n(ai−bi)2 尽可能小。输入格式第一行包含三个整数 n,k1,k2。第二行包含 n 个整数 a1,原创 2021-10-09 23:58:22 · 233 阅读 · 0 评论 -
石子游戏(前缀和加枚举)
原题链接https://www.acwing.com/problem/content/3996/题目描述有 n 堆石子,石子数量分别为 a1,a2,…,an。现在,需要你通过取石子操作,使得所有堆石子的数量都相同。一轮取石子操作的具体流程为:设定一个石子数量上限 h。检查每堆石子,对于石子数量大于 h 的石子堆,取出多余石子,使其石子数量等于 h。要求,在一轮取石子操作中取走的石子数量不得超过 k。请计算并输出为了使得所有堆石子的数量都相同,最少需要进行多少轮取石子操作。输入格原创 2021-10-04 22:15:37 · 362 阅读 · 0 评论 -
逆序对——归并排序求解
---------------------------------琪露诺的排序---------------------------------------------描述笨蛋琪露诺喜欢用冰块搭积木。这天她用她的能力制造了N根冰柱作为材料,但这些冰柱显得参差不齐,不过好在她知道这些冰柱的高度。患有强迫症的小妖精琪露诺决定将这N根冰柱从小到大排列,不幸的是,琪露诺是个笨蛋,她只能将相邻的两根冰柱调换位置。现在她想知道她最少需要进行几次调换才能使这些冰柱变得有序。输入输入共两行。第一行N(原创 2021-08-18 16:21:58 · 109 阅读 · 0 评论 -
特殊构造的字符串
描述给定一个长度为n的字符串,如果满足以下的构造方法,则输出YES,否则输出NO。①:首先字符串s为空,即s = “”;②:在第i步,取在字母表中第 i 小的小写字母,记为c,将其添加到s的首部或者尾部,即s = s + c或者s = c + s③:重复进行第2步输入第一行包含一个整数t(1≤t≤104)-测试用例的数量。然后是测试用例。每个测试用例都写在包含一个字符串s的单独的行上。字符串s由拉丁字母的小写字母组成,长度在1到26之间(含26)。输出输出t行,每一行都必须包含对应测试用例原创 2021-07-31 09:38:30 · 271 阅读 · 0 评论 -
找两个变数最大公因数的最大值
老祖宗的游戏描述欢欢和晴晴玩游戏,游戏的规则是,欢欢给出两个正整数a,b ,然后晴晴可以按照如下规则进行操作:1.将a和b都增加1。2.将a和b都减少1。只有当a和b都大于0时才能执行此操作。3.操作次数为任意次现在欢欢让晴晴求出gcd(a,b)的最大值,如果gcd(a,b)无限大,那么输出"0"输入第一行输入包含一个整数t(1≤T≤5*10^{3})(1≤T≤5∗10 *3) 测试用例的数量。每个测试用例的第一行也是唯一 一行包含两个整数a和b(0≤a,b<=10e{1原创 2021-07-29 15:59:29 · 143 阅读 · 0 评论 -
一道有趣的题
奇怪的函数描述一天高数老师给出了一个奇怪的函数f(x),(x是一个正整数)如下:将x的十进制表示的所有数字从后往前写,然后去掉前导零。例如,f(321)=123,f(120)=21,f(1000000)=1,f(111)=111。让我们定义另一个函数g(x)=x/{f(f(x))} (x也是正整数),您的任务如下:对于给定的正整数n,计算所有数字x中g(x)的不同值的个数 , 1\leq x \leq n1≤x≤n输入第一行包含一个整数t(1≤t≤100)t(1≤t≤100)测试用例的数量。原创 2021-07-29 16:38:04 · 168 阅读 · 0 评论