算法题
羰基绳命
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【无标题】10.货币系统
题目描述: 在网友的国度中共有 n 种不同面额的货币,第 i 种货币的面额为 a[i],你可以 假设每一种货币都有无穷多张。为了方便,我们把货币种数为 n、 面额数组为 a[1..n] 的货币系统记作 (n,a)。 在一个完善的货币系统中,每一个非负整数的金额 x 都应该可以被表示出,即对 每一个非负整数 x,都存在 n 个非负整数 t[i] 满足 a[i]× t[i] 的和为 x。然而, 在网友的国度中,货币系统可能是不完善的,即可能存在金额 x 不能被该货币系统表 示出。例如在货币系统 n=3, a.原创 2023-02-22 08:23:25 · 550 阅读 · 0 评论 -
【】23 选课
题目描述 原题来自:CTSC 1997 大学实行学分制。每门课程都有一定的学分,学生只要选修了这门课并通过考核就能获得相应学分。学生最后的学分是他选修各门课的学分总和。 每个学生都要选择规定数量的课程。有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其他的一些课程基础上才能选修。例如《数据结构》必须在选修了《高级语言程序设计》后才能选修。我们称《高级语言程序设计》是《数据结构》的先修课。每门课的直接先修课最多只有一门。两门课也可能存在相同的先修课。为便于表述,每门课都有一个课号,课号依次为原创 2022-02-10 22:39:04 · 202 阅读 · 0 评论 -
【动态规划】22.石子合并
问题描述:在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法。 选择一种合并石子的方案,使得做 n-1次合并得分总和最大。 选择一种合并石子的方案,使得做 n−1 次合并得分总和最小。 算法设计:对于给定n堆石子,计算合并成一堆的最小得分和最大得分。 数据输入: 第一行是正整数n(1<=n<=200),表示有n堆石子。 第2行有n个数,分别表示每堆石子的个数。 输出.原创 2022-02-09 18:52:03 · 9952 阅读 · 2 评论 -
【快速幂】16.动物园
题目描述 动物园里饲养了很多动物,饲养员小 A 会根据饲养动物的情况,按照《饲养指南》购买不同种类的饲料,并将购买清单发给采购员小 B。 具体而言,动物世界里存在 2k 种不同的动物,它们被编号为 0 … 2k − 1。动物园里饲养了其中的 n 种,其中第 i 种动物的编号为 ai。 《饲养指南》中共有 m 条要求,第 j 条要求形如“如果动物园中饲养着某种动物,满足其编号的二进制表示的第 pj 位为 1,则必须购买第 qj 种饲料”。其中饲料共有 c 种,它们从 1…c 编号。本题中我们将动物编号的二原创 2022-01-31 00:00:17 · 248 阅读 · 0 评论 -
【二分法】14.跳石头
题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N 块岩石(不含起点和终 点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达 终点。 为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳 跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 M 块岩石(不能 移走起点和终点的岩石)。 输入输出格式 输入格式原创 2022-01-30 22:02:08 · 226 阅读 · 0 评论 -
11.单源最短路径
题目描述 给一个 n(1≤n≤2500) 个点 m(1≤m≤6200) 条边的无向图,求 s 到 t 的最短路。 输入格式 第一行四个由空格隔开的整数n、m、s、t。 之后的m行,每行三个正整数s_i、t_i、w_i(1≤wi≤10^9),表示一条从s_i到t_i长度为w_i的边。 输出格式 一个整数表示从 s到 t 的最短路长度。数据保证至少存在一条道路。 样例 输入数据 1 7 11 5 4 2 4 2 1 4 3 7 2 2 3 4 3 5 7 5 7 3 3...原创 2023-02-22 08:23:23 · 264 阅读 · 0 评论 -
【dfs】9.奶酪
题目描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z=0,奶酪的上表面为z = h。 现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐 标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别 地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞;如果 一个空洞与上表面相切或是相交,Jerry原创 2022-01-30 21:21:28 · 131 阅读 · 0 评论 -
【】8.积木大赛
春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第n块积木的最终高度需要是hi。 在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间[L,R],然后将第L块到第R块之间(含第 L 块和第 R 块)所有积木的高度分别增加1。 小M是个聪明的小朋友,她很快想出了建造大厦的最佳策略,使得建造所需的操作次数最少。但她不是一个勤于动手的孩子,所以想请你帮忙实现这个策略,并求出最少的操作次数。原创 2022-01-30 19:20:53 · 263 阅读 · 0 评论 -
【dp背包】7.扫雷
【问题描述】 相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字表示和它8连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷, 由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案。 输入格式 第一行为N,第二行有N个数,依次为第二列的格子中的数。 输出格式 一个..原创 2022-01-30 19:11:55 · 180 阅读 · 0 评论 -
【】6.数的划分
题目描述 将整数n分成k份,且每份不能为空,问有多少种不同的分法。 当n=7,k=3时,下面三种分法被认为是相同的:1,1,5; 1,5,1; 5,1,1 输入描述: 一行两个数n,k。 输出描述: 一行一个整数,即不同的分法数。 #include<iostream> using namespace std; int n,k; int dp[205][10];//n个1 分成k份 int main() { ios::sync_with_stdio; cin>&g原创 2022-01-29 17:17:38 · 430 阅读 · 0 评论 -
【】5.取石子
【题目描述】 有一种有趣的游戏,玩法如下: 玩家2 人; 道具N 颗石子; 规则: 1、游戏双方轮流取石子; 2、每人每次取走若干颗石子(最少取 1 颗,最多取 K 颗); 3、石子取光,则游戏结束; 4、最后取石子的一方为胜。 假如参与游戏的玩家都非常聪明,问最后谁会获胜? 【输入样例】 输入仅一行两个整数N和K 。 【输出】 输出仅一行,一个整数,若先手获胜输出 1,后手获胜输出 2。 【输入样例】 23 3 【输出样例】 1 代码; #include<iostream原创 2022-01-29 15:43:01 · 372 阅读 · 0 评论 -
【次小生成树】4.秘密的牛奶运输
题目描述 Farmer John 要把他的牛奶运输到各个销售点。运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点。 运输的总距离越小,运输的成本也就越低。 Farmer John 期望低成本的运输,但他并不想让他的竞争对手知道他具体的运输方案, 所以他希望采用费用第二小的运输方案而不是最小的。现在请你帮忙找到该运输方案。 输入格式 第一行是两个整数 N,M,表示顶点数和边数; 接下来 M 行每行 3 个整数,x,y,z,表示一条路的两端 x,y 和距离 z。 输出格式原创 2022-01-29 15:34:40 · 5601 阅读 · 0 评论 -
【POJ 2406】Power Strings
给定若干个长度 ≤ 1000000 的字符串,询问每个字符串最多是由多少个相同的子字符串重复连接而成的。[循环节] 如:ababab 则最多有 3 个 ab 连接而成。 输入格式: 输入若干行,每行有一个字符串。特别的,字符串可能为 . 即一个半角句号,此时输入结束。 样例: 输入: abcd aaaa ababab . 输出: 1 4 3 数据范围与提示 字符串长度 <= 10^6。 KMP #include<iostream> #include<cst.原创 2022-01-29 11:49:34 · 922 阅读 · 0 评论 -
【NOI2014】15.起床困难综合症【二进制】
题目描述: drd的防御战线由n扇防御门组成。每扇防御门包括一个运算op和一个参数t,其中运算一定是OR,XOR,AND中的一种,参数则一定为非负整数。如果还未通过防御门时攻击力为x,则其通过这扇防御门后攻击力将变为x op t。最终drd受到的伤害为对方初始攻击力x依次经过所有n扇防御门后转变得到的攻击力。由于atm水平有限,他的初始攻击力只能为0到m之间的一个整数(即他的初始攻击力只能在 0, 1, … , m中任选,但在通过防御门之后的攻击力不受m的限制)。为了节省体力,他希望通过选择合适的初始攻原创 2022-01-22 17:07:50 · 233 阅读 · 0 评论 -
【ST稀疏表】20. 数列区间最大值
题目描述 输入一串数字,给你 M个询问,每次询问就给你两个数字X,Y ,要求你说出 X 到 Y 这段区间内的最大数。 输入格式 第一行两个整数n,m 表示数字的个数和要询问的次数; 接下来一行为 n 个数; 接下来 m行,每行都有两个整数 x,y。 输出格式 输出共M行,每行输出一个数。 样例 样例输入 10 2 3 2 4 5 6 8 1 2 9 7 1 4 3 8 样例输出 5 8 数据范围与提示 对于全部数据1<=n<=1e5,1<=m<=le6,原创 2022-01-29 00:05:11 · 6735 阅读 · 0 评论 -
【USACO 2005 Feb. Gold】2.愤怒的牛【二分法】
农夫约翰建造了一座有 n 间牛舍的小屋,牛舍排在一条直线上,第 i 间牛舍在 xi 的位置,但是约翰的 m 头牛对小屋很不满意,因此经常互相攻击。约翰为了防止牛之间互相伤害,因此决定把每头牛都放在离其它牛尽可能远的牛舍。也就是要最大化最近的两头牛之间的距离。 牛们并不喜欢这种布局,而且几头牛放在一个隔间里,它们就要发生争斗。为了不让牛互相伤害。John 决定自己给牛分配隔间,使任意两头牛之间的最小距离尽可能的大,那么,这个最大的最小距离是多少呢? 输入格式 第一行用空格分隔的两个整数 n 和 m; 第原创 2022-01-28 23:28:06 · 597 阅读 · 0 评论 -
【HAOI 2008】1.糖果传递
有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。 求使所有人获得均等糖果的最小代价。 输入格式 第一行有一个整数 n ,表示小朋友个数; 在接下来 n行中,每行一个整数 ai。 输出格式 输出使所有人获得均等糖果的最小代价。 样例 输入数据 1: 4 1 2 5 4 输出数据 1: 4 数据范围与提示: 对于 30% 的数据,n≤1000; 对于 100% 的数据,n≤10^6,保证答案可以用 64位有符号整数存储。 分析: 用 6原创 2022-01-28 17:41:17 · 431 阅读 · 0 评论
分享