![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
半濠春水
这个作者很懒,什么都没留下…
展开
-
最大字串和
Description给定一个整数数组,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。Input有多组测试数据。 对于每组测试数据,第一行只有一个整数N,代表着数组的大小(1 <= N <= 100000)第二行有N个整数,(-100 <= N <= 100)Output每组测试数据仅输出一行,包括一个整数,表示最大子串和。Sample Input9-2 1 -3 4 -1 2 1 -5 4Sample Output6Hint参考.原创 2022-04-18 16:39:26 · 938 阅读 · 0 评论 -
01饭卡(01背包)
Description如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。Input多组数据。对于每组数据: 第一行为正整数n,表示菜的数量。n<=1000。第二行包括n个正整数,表示每种菜的价格。价格不超过50。 第三行包括一个正整数m,表示卡上的余额。m<=10.原创 2022-04-17 00:19:37 · 484 阅读 · 0 评论 -
矩阵链相乘的乘法次数
Description设 A1, A2, …, An 为矩阵序列,Ai 是阶为 Pi − 1 × Pi 的矩阵 i = 1, 2, …, n.试确定矩阵的乘法顺序,使得计算 A1 A2…An 过程中元素相乘的总次数最少.Input多组数据第一行一个整数 n(1≤n≤300) ,表示一共有 n 个矩阵.第二行 n + 1 个整数 P0, P1, …, Pn(1≤Pi≤100) ,第i个矩阵的行数为Pi − 1,列数为Pi.Output对于每组数据输出最少的元素乘法次数.Sample Inp.原创 2022-04-17 00:05:33 · 2808 阅读 · 0 评论 -
打家劫舍问题
Description你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统。 当两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组, 计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。Input每组测试案例有两行,第一行只有一个整数N,代表着有N间房屋(2 <= N <= 10000)第二行有N个整数,代表着每间房屋里的金额,金额范围[0, 1000]。.原创 2022-04-16 22:58:32 · 407 阅读 · 0 评论 -
Count Different Numbers II
DescriptionGiven a series of n numbers and q queries width w, find the total number of different numbers of all consecutive w numbers foreach query.For example: the numbers are {2, 2, 1, 3, 4, 4, 5} and w is 3. All the consecutive w numbers are:{2, 2,.原创 2022-03-24 14:50:08 · 260 阅读 · 0 评论 -
比k大的数
Description给出一个由n个整数组成的数列 a1, a2, a3, …, an 之后给出m个整数k。问:对于每一个k,数列中有多少个数比k大?Input输入共包括三行第一行是两个由空格隔开的正整数n和m第二行是由n个整数组成的数列 a1, a2, a3, …, an ,数与数之间由空格隔开。第三行有m个整数k,数与数之间由空格隔开。保证 0 < n ≤ 1 × 10^3; 0 < m ≤ 1 × 10 ^3; − 1 × 10 ^3 ≤ a1, a2, a3, …, .原创 2022-03-24 14:50:20 · 518 阅读 · 0 评论 -
查找【二分】
Description给出一串由N个自然数组成的数列a1, a2, a3, …, an,数列满足不递减,即数列中位置靠后的数一定大于或等于位置靠前的数。之后给出M次询问,每次询问包含一个数字Q。对于每次询问,求出数列中第一个大于或等于Q的数字的编号(数字在数列中的编号从1开始)Input输入仅有一组数据,共 M + 2行。第一行有两个用空格隔开的自然数 N 和 M,表示数列中共有N个数字,一共有 M 次询问。保证1 ≤ N ≤ 10 ^ 7, 1 ≤ M ≤ 1 × 10 ^ 6 第二行有 N 个.原创 2022-03-24 14:50:30 · 539 阅读 · 0 评论 -
区间和(前缀和)
Description给出一串由N个自然数组成的数列 a1, a2, a3, …, an,之后给出M次询问,每次询问包含两个数字L和R。对于每次询问,求出L和R之间所有数(包括L和R本身)之和。Input 输入仅有一组数据,共 M + 2行。第一行有两个用空格隔开的自然数 N 和 M,表示数列中共有N个数字,一共有 M 次询问。保证 1 ≤ N, M ≤ 1 × 106 第二行有 N 个用空格隔开的自然数 a1、a2、a3、…… 、aN,对于所有的i,都有 1 ≤ ai ≤ 1 × 106第三行到.原创 2022-03-24 14:51:32 · 902 阅读 · 0 评论 -
绝对值最小的和
Description给出一串由 N 个整数组成的数列 a1, a2, a3, …, aN,求问数列中哪两个不同元素的和的绝对值最小。Input输入共一组数据,共2行第一行一个数字 N ,表示数列中元素的个数第二行共 N 个数字,两两之间用空格分开,表示a1, a2, a3, …, aN输入保证 2 ≤ N ≤ 1 × 103, − 1 × 108 ≤ ai ≤ 1 × 108Output输出共1行,两个用空格隔开的数字 i 和 j ,表示 ai + aj 的绝对值最小。若两对元素的之.原创 2022-03-24 14:51:52 · 782 阅读 · 0 评论 -
数的划分(递推)
Description将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n = 7,k = 3,下面三种分法被认为是相同的。1 , 1 , 51 , 5 , 15 , 1 , 1问有多少种不同的分法。Inputn,k (6 < n ≤ 200,2 ≤ k ≤ 6)Output1 个整数,即不同的分法。Sample Input7 3Sample Output4Hint 对于样例的输入输出四种分法为:1 , 1 , 51 , 2 , 4.原创 2022-03-24 14:52:04 · 307 阅读 · 0 评论 -
数的计算(递推)
Description我们要求找出具有下列性质数的个数(包含输入的正整数 n)。先输入一个正整数 n(n≤1000),然后对此正整数按照如下方法进行处理:不作任何处理;在它的左边加上一个正整数,但该正整数不能超过上次加的数(第一次加则是原数)的一半;加上数后,继续按此规则进行处理,直到不能再加正整数为止。Input1 个正整数 n ( n ≤ 1000 )Output1 个整数,表示具有该性质数的个数。Sample Input6Sample Output6Hint满足条件的数.原创 2022-03-24 14:52:13 · 402 阅读 · 0 评论 -
台阶问题(递推)
Description有 N 级的台阶,你一开始在底部,每次可以向上迈最多 K 级台阶(最少 1 级),问到达第 N 级台阶有多少种不同方式。Input两个正整数N,K。1 ≤ N ≤ 106, 1 ≤ K ≤ 20Output一个正整数,为不同方式数,由于答案可能很大,你需要输出 ans mod 100003 后的结果。Sample Input5 2Sample Output8HintN级台阶的情况可以由 N-K ~ N-1 这些台阶的情况得到#include <bit.原创 2022-03-23 16:34:30 · 583 阅读 · 0 评论 -
动物的传染病
Description动物患传染病了。一个动物会每轮传染 x 个动物。试问 n 轮传染后有多少动物被传染?Input两个非负整数 x 和 n。Output一个整数,即被传染的动物数。Sample Input10 2Sample Output121Hint参考代码框架#include<stdio.h>#include<string.h>#include<stdlib.h>long long Solve(int x, int n){ .原创 2022-03-23 16:15:03 · 365 阅读 · 0 评论 -
括号的匹配
Description给一个长度不大于100的字符串,问该字符串里出现的括号是否合法。字符串只会出现三种括号,“[]”,“()”,“{}”,且形如“({[]})”为合法,形如“[(])”为不合法。Input单组数据。长度不大于100的字符串,字符串中不存在空格。Output如果该字符串中出现的所有括号都合法,输出“Yes”,否则输出“No”。Sample Input(a+b)!=cSample OutputYesHint#include <iostream>#in.原创 2022-03-23 16:02:27 · 644 阅读 · 0 评论 -
排队援救(队列的基本操作)
Description突发重大灾难,n个人陷入困境,有一个救援点需要人们排队准备接受救援,假设每个人有一个名望值,进队规则如下:第一个人直接进队;当队里已经有人时,新来的人发现队尾的人的名望值比自己大或者相等,他会选择离开去其他救援点;队伍最多5人,如果一个人要进队时,发现队伍已满,而且他的名望值比队尾的人大,他会选择把队首的人挤掉而继续排在队尾。问最后得到救援的人分别是谁。Input单组数据。第一行为n(1 ≤ n ≤ 100),n为正整数。第二行为n个人的名望值,第i个去排队的人的名.原创 2022-03-23 15:59:32 · 289 阅读 · 0 评论 -
模拟计算器
Description给出n个数,和n - 1个运算符(只含有加减乘号,不含除号,按顺序填入n个数之间),要求输出该式的答案。Input单组数据。第一行为n(2 ≤ n ≤ 100),且n为整数。第二行为n个数,每个数a保证1 ≤ a ≤ 10,且为整数。第三行为n - 1个运算符,运算符之间由空格隔开。Output如题。Sample Input4 1 2 3 4+ * -Sample Output3Hint1 + 2 * 3 - 4 = 3#include <io.原创 2022-03-23 15:51:26 · 465 阅读 · 0 评论 -
构造回文串
Description给你一个整型(int)数N,可以将其看成字符串,是否有可能在N前加入若干个0(也可以不加),使得该字符串为回文串。Input数字N0 ≤ N ≤ 109Output若可以则输出Yes,不可以则输出No,输出结束要换行。Sample Input1210Sample OutputYesHint#include <iostream>#include <algorithm>#include <string>using nam.原创 2022-03-23 15:35:59 · 686 阅读 · 0 评论 -
两面包夹芝士
Description给你两个长度为N的整型(int)数组A = (A1, A2, A3, …, AN) 和 B = (B1, B2, B3, …, BN)请你找出有多少整型(int)数字x,满足Ai ≤ x ≤ Bi,其中 1≤ i ≤ NInput第一行输入N,第二行输入N个数字Ai,第三行输入N个数字Bi1 ≤ N ≤ 1001 ≤ Ai ≤ Bi ≤ 1000所有输入均为intOutput输出有多少个符合题意的x,然后换行Sample Input33 2 56 9 8.原创 2022-03-23 15:28:05 · 350 阅读 · 0 评论 -
200和整数对之间的情缘
Description给你一个有N个整型数字的序列A,整数对(i, j)满足以下条件,请问能找到多少这样的整数对:1 ≤ i, j ≤ NAi−Aj 是200的整数倍Input第一行输入N,第二行输入N个整数分别A1 A2 … AN所有输入均为整型(int)2 ≤ N ≤ 2 × 10^51 ≤ Ai≤ 10^9Output输出答案并换行Sample Input6123 223 123 523 200 2000Sample Output4Hint#include <.原创 2022-03-23 11:36:29 · 393 阅读 · 0 评论 -
如何溜的最快
Description给你一个终点(x,y),从(0,0)出发,每步可以向任意方向沿直线走 恰好为R的距离,请你输出到达终点所需的最短步数。Input多组数据,每组数据输入R,x,y1 ≤ R ≤ 1050 ≤ x, y ≤ 105(x,y)≠(0,0)所有输入皆为int型Output输出结果并换行Sample Input3 4 42 1 12 2 2Sample Output222Hint距离不能恰好走到的情况,可以走折线到达#include <iostr.原创 2022-03-23 11:27:16 · 311 阅读 · 0 评论 -
log2(N)
Description给你一个数N,请你找出最大的的整数k,满足 2k ≤ NInput1 ≤ N ≤ 1019Output输出k并换行Sample Input6Sample Output2Hint注意精度问题//模拟逼近运算原创 2022-03-23 11:06:06 · 2388 阅读 · 0 评论