![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
acwing-牛客
文章平均质量分 72
acwing-牛客
yuzhang_zy
现在的我不是最好的我,未来的我才是最好的我,每一篇博客都记录着我的成长
展开
-
快速排序模板(java-python)
快速排序的基本思想:在数组中找到一个元素n,通过交换元素使得左边元素都小于等于n,右边元素都大于等于n,然后对这个元素的左边与右边进行同样的操作直到整个数组是有序的,快速排序使用到了递归中分治的思想,算法的时间复杂度为O(nlog2n),下面是java和python实现的快速排序的模板,可以记熟,测试网址java代码:import java.util.Random;import java.util.Scanner;public class Main { public static void原创 2021-05-09 22:51:05 · 289 阅读 · 0 评论 -
104 货仓选址(绝对值不等式)
1. 问题描述:在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数 N。第二行 N 个整数 A1∼AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000,0≤Ai≤40000输入样例:46 2 9 1输出样例:12来源:https://www.acwing.com/problem/c原创 2021-05-07 15:06:08 · 381 阅读 · 0 评论 -
数字游戏(数位dp)
1. 问题描述:科协里最近很流行数字游戏。某人命名了一种不降数,这种数字必须满足从左到右各位数字成大于等于的关系,如123,446。现在大家决定玩一个游戏,指定一个整数闭区间[a,b],问这个区间内有多少个不降数。输入格式:题目有多组测试数据。每组只含2个数字a, b (1 <= a, b <= 2^31)。输出格式每行给出一个测试数据的答案,即[a, b]之间有多少阶梯数。样例输入1 91 19样例输出918来源:https://www.acwing.com/activ.原创 2021-05-05 22:14:11 · 698 阅读 · 2 评论 -
度的数量(数位dp)
1. 问题描述:求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和。例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:17=2^4+2^018=2^4+2^120=2^4+2^2输入格式第一行包含两个整数 X 和 Y,接下来两行包含整数 K 和 B。输出格式只包含一个整数,表示满足条件的数的个数。数据范围1≤X≤Y≤2^31−1,1≤K≤20,2≤B≤10输入样例:15 2022输出样例:3来原创 2021-05-05 16:16:30 · 557 阅读 · 0 评论 -
摆花(动态规划)
1. 问题描述:小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m 盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n 种花,从1 到n 标号。为了在门口展出更多种花,规定第i 种花不能超过ai 盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案。输入描述:第一行包含两个正整数n和m,中间用一个空格隔开。第二行有n个整数,每两个整数之间用一个空格隔开,依次表示a1、a2、……an。输出描述:输出只有一行,一个整数,表示原创 2021-05-04 15:38:12 · 1617 阅读 · 0 评论 -
最短路径spfa算法
1. 问题描述:给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible。数据保证不存在负权回路。输入格式第一行包含整数 n 和 m。接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。输出格式输出一个整数,表示 1 号点到 n 号点的最短距离。如果路径不存在,则输出 impossible。数据范围1≤n,m原创 2021-05-03 22:20:29 · 470 阅读 · 0 评论 -
炮兵阵地(状压dp)
1. 问题描述:司令部的将军们打算在N×M的网格地图上部署他们的炮兵部队。一个N×M的地图由N行M列组成,地图的每一格可能是山地(用H表示),也可能是平原(用P表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。图上其它白色网格均攻击不到。从图上可见炮兵的攻击范围不受地形的影响。现在原创 2021-05-03 10:00:24 · 1165 阅读 · 0 评论 -
手机号码(数位dp-dfs)
1. 问题描述:人们选择手机号码时都希望号码好记、吉利。比如号码中含有几位相邻的相同数字、不含谐音不吉利的数字等。手机运营商在发行新号码时也会考虑这些因素,从号段中选取含有某些特征的号 码单独出售。为了便于前期规划,运营商希望开发一个工具来自动统计号段中满足特征的号码数 量。工具需要检测的号码特征有两个:号码中要出现至少3个相邻的相同数字,号码中不能同时出现8和4。号码必须同时包含两个特征才满足条件。满足条件的号码例如:13000988721、 23333333333、14444101000。而不满足原创 2021-04-30 23:05:03 · 388 阅读 · 1 评论 -
明七暗七(数位dp-二分查找 + dfs)
1. 问题描述:今天是个特殊的日子,CSL和他的小伙伴们围坐在一张桌子上玩起了明七暗七的游戏。游戏规则是这样的:一个人报出一个起始数,接下来按照逆时针的顺序轮流报数,如果碰到数是7的倍数或含有7,则拍手,下一个人接着报数。直到有一个人报错了数字或者没有及时拍手为止。玩游戏嘛,当然得有惩罚。这么简单的游戏对CSL的学霸小伙伴而言实在是太无脑了,轻轻松松数到上万根本不在话下。但是对于数学是体育老师教的CSL来说,实在是太难了。快帮他算算什么时候应该拍手吧。输入描述:输入两个整数m和n。(1 ≤ m,原创 2021-04-30 16:01:51 · 1400 阅读 · 1 评论 -
邮票面值设置(dfs + 动态规划减枝)
1. 问题描述:给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1至MAX之间的每一个邮资值都能得到。例如,N=3,K=2,如果面值分别为1分、4分,则在1分~6分之间的每一个邮资值都能得到(当然还有8分、9分和 12分);如果面值分别为1分、3分,则在1分~7分之间的每一个邮资值都能得到。可以验证当N=3,K=2时,7分就是可以得到的连续的邮资最大值,所以 MAX=7,面值分别为1分、3分。原创 2021-04-27 09:56:55 · 832 阅读 · 0 评论 -
数的划分(dfs)
1. 问题描述:将整数n分成k份,且每份不能为空,任意两个方案不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1;问有多少种不同的分法。输入:n,k ( 6 < n ≤ 200,2 ≤ k ≤ 6 )输出:一个整数,即不同的分法。输入描述:两个整数 n,k ( 6 < n ≤ 200, 2 ≤ k ≤ 6 )输出描述:1个整数,即不同的分法。示例1输入7 3输出4链接:https://ac.now..原创 2021-04-24 23:16:10 · 1324 阅读 · 1 评论 -
美丽序列(四维动态规划)
1. 问题描述:牛牛喜欢整数序列,他认为一个序列美丽的定义是1:每个数都在0到40之间2:每个数都小于等于之前的数的平均值具体地说:for each i, 1 <= i < N, A[i] <= (A[0] + A[1] + ... + A[i-1]) / i.3:没有三个连续的递减的数现在给你一个序列,每个元素是-1到40,你可以将序列中的-1修改成任意的数,你可以得到多少个美丽序列,答案对1e9+7取模输入描述:第一行输入一个整数n (1 ≤ n ≤ 40)第..原创 2021-04-23 22:11:29 · 589 阅读 · 0 评论 -
codeforces(排序 + 01背包)
1. 问题描述:牛牛正在打一场CF,比赛时间为T分钟,有N道题,可以在比赛时间内的任意时间提交代码,第i道题的分数为maxPoints[i],题目的分数随着比赛的进行,每分钟减少pointsPerMinute[i],这是一场比较dark的Cf,分数可能减成负数,已知第i道题需要花费 requiredTime[i] 的时间解决,请问最多可以得到多少分?输入描述:第一行输入两个整数N,T (1 ≤ N ≤ 50, 1 ≤ T ≤ 100000)第二行输入n个整数maxPoints[i]第三行输入n原创 2021-04-23 09:44:38 · 474 阅读 · 0 评论 -
被3整除的子序列(动态规划)
1. 问题描述:给你一个长度为50的数字串,问你有多少个子序列构成的数字可以被3整除,答案对1e9+7取模输入描述:输入一个字符串,由数字构成,长度小于等于50输出描述:输出一个整数示例1输入复制132输出3示例2输入9输出1示例3输入333输出7示例4输入123456输出23示例5输入00输出3链接:https://ac.nowcoder.com/acm/problem/21302来源:牛客网2. 思路分析:对于子序列的相关问题我们都可原创 2021-04-21 09:17:01 · 851 阅读 · 0 评论 -
数列重组(递归生成重复元素的全排列)
1. 问题描述:小明同学最近喜欢上了排列组合,但是现在有这样的一道题把他难住了,已知有一组数字(2,5,3,6,3,6,7,3,7,8)共10个,对于这组数字进行排列后,可以将排列好的数字分为三个部分,且三个部分都是分别有序的(升序或逆序),小明想知道能够有满足条件的多少种排列方式?输入描述:无输出描述:无备注:例如对于重新排列后的一种序列(2, 3, 3, 3, 5, 6, 6, 7, 7, 8)可以分为(2)(3,3,3)(5,6,6,7,7,8)三组或(2,3,3)(3,5,6,6)原创 2021-04-14 22:56:49 · 455 阅读 · 0 评论 -
三角形个数(找规律)
1. 问题描述:坤坤给你一个边长为n的等边三角形图形,请你查出图形内等边三角形的个数。因为数据过大,所以要求答案对1e9+7取模。如图是n=2的三角形阵列。我们可以看出有5个三角形。请输出n为20210411时的三角形的个数。输入描述:无输入输出描述:直接输出备注:请直接打印答案即可。链接:https://ac.nowcoder.com/acm/contest/13493/E来源:牛客网2. 思路分析:对于这种计算集合图形的个数一般是通过观察图形中的分布找出其中的规律,原创 2021-04-14 12:11:57 · 12713 阅读 · 0 评论 -
小明的作业(使用栈匹配字符串)
1. 问题描述:小明同学正在学习一种新的语言。在该语言中,如果出现了一次wa或者一次aw,则代表出现了一个警告。如果出现了连续的wa或者连续的aw,则代表出现了一个错误。小明由于学习比较粗心,所以他想要知道自己刚刚写完的作业中一共出现了多少处警告和错误。下面是小明刚刚写完的作业,请你帮助小明找到他一共出现了多少次警告和多少次错误。abcwaawawawa中出现了一次警告(wa)和一次错误(awawaw)abcdefg中没有出现一次警告和错误waawwaawwawa中出现了四次警告(两次wa和两次a原创 2021-04-14 10:01:59 · 212 阅读 · 0 评论 -
斐波那契数列(最大公约数)
1. 问题描述:小明最近痴迷于斐波那契数列(1,1,2,3,5……),但是最近他又有了新的奇思妙想,就是对于斐波那契数列的相邻的两个数相乘取倒数然后将每一项进行相加,由于小明只喜欢思考不喜欢动手,所以现在他想让你帮他算下这样一个新的数列的前13项的和为多少?(结果用分数表示,且保留最简分数)输入描述:无输出描述:无备注:例如前三项:1/(1*1)+1/(1*2)+1/(2*3)=5/32. 思路分析:① 分析题目可以知道我们需要求解出前面十四项斐波那契数列,然后计算出相邻原创 2021-04-14 09:24:13 · 1010 阅读 · 0 评论 -
6的个数(模拟)
1. 问题描述:今年是2021年,请问数字1到数字2021中,出现了多少个数字6。来源:https://ac.nowcoder.com/acm/contest/13493/A2. 思路分析:分析题目可以知道我们在循环中遍历1~2021,因为使用的是python语言所以直接将数字转换为字符串之后那么就可以使用count函数对字符6进行计数,或者是求解出当前遍历数字各个位置上的数字,对数字6进行计数3. 代码如下:if __name__ == '__main__': res =原创 2021-04-14 08:50:01 · 286 阅读 · 0 评论 -
小猫爬山(排序、递归)
1. 题目描述:Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。输入描述:Freda和rainbow只好花钱让它们坐索道下山。索道上的缆车最大承重量为W,而N只小猫的重量分别是C1,C2…CN。当然,每辆缆车上的小猫的重量之和不能超过W。每租用一辆缆车,Freda和rainbow就要付1美元,所以他们想知道,最少需要付多少美元才能把这N只小猫都运送下山?输出描述:第一行包.原创 2021-02-08 09:52:06 · 750 阅读 · 1 评论 -
牛客网11746竞赛简单题
1. 上进的凡凡题目描述:凡凡是一个上进的人,他的人生没有下坡路,他也讨厌带有”下坡路“的东西。所以,对于凡凡来说,只有非降序的数组才是nice的(如:1,2,2,3,4,5,5);若数组元素个数为1,也满足非降序,也是nice的。现在有一个长度为n的数组,凡凡想知道它的子数组中有多少个数组是nice的。你能帮帮他吗?对于子数组的定义,如果可以通过从开头和从结束分别删除若干个(可以为零或全部,前后删除个数不必相同)元素来从数组b获得数组a,则称数组a是数组b的子数组。(子数组包含原数组,但不包含空串)原创 2021-02-05 10:07:12 · 659 阅读 · 0 评论