算法题
致命小学期
这个作者很懒,什么都没留下…
展开
-
【无标题】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 · 402 阅读 · 0 评论 -
【】23 选课
题目描述原题来自:CTSC 1997大学实行学分制。每门课程都有一定的学分,学生只要选修了这门课并通过考核就能获得相应学分。学生最后的学分是他选修各门课的学分总和。每个学生都要选择规定数量的课程。有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其他的一些课程基础上才能选修。例如《数据结构》必须在选修了《高级语言程序设计》后才能选修。我们称《高级语言程序设计》是《数据结构》的先修课。每门课的直接先修课最多只有一门。两门课也可能存在相同的先修课。为便于表述,每门课都有一个课号,课号依次为原创 2022-02-10 22:39:04 · 120 阅读 · 0 评论 -
【动态规划】22.石子合并
问题描述:在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法。选择一种合并石子的方案,使得做 n-1次合并得分总和最大。 选择一种合并石子的方案,使得做 n−1 次合并得分总和最小。算法设计:对于给定n堆石子,计算合并成一堆的最小得分和最大得分。数据输入:第一行是正整数n(1<=n<=200),表示有n堆石子。第2行有n个数,分别表示每堆石子的个数。输出.原创 2022-02-09 18:52:03 · 9464 阅读 · 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 · 146 阅读 · 0 评论 -
【二分法】14.跳石头
题目背景一年一度的“跳石头”比赛又要开始了!题目描述这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N 块岩石(不含起点和终 点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达 终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳 跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 M 块岩石(不能 移走起点和终点的岩石)。输入输出格式输入格式原创 2022-01-30 22:02:08 · 100 阅读 · 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 的最短路长度。数据保证至少存在一条道路。样例输入数据 17 11 5 42 4 21 4 37 2 23 4 35 7 57 3 3...原创 2023-02-22 08:23:23 · 154 阅读 · 0 评论 -
【dfs】9.奶酪
题目描述现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z=0,奶酪的上表面为z = h。现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐 标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别 地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞;如果 一个空洞与上表面相切或是相交,Jerry原创 2022-01-30 21:21:28 · 80 阅读 · 0 评论 -
【】8.积木大赛
春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第n块积木的最终高度需要是hi。在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间[L,R],然后将第L块到第R块之间(含第 L 块和第 R 块)所有积木的高度分别增加1。小M是个聪明的小朋友,她很快想出了建造大厦的最佳策略,使得建造所需的操作次数最少。但她不是一个勤于动手的孩子,所以想请你帮忙实现这个策略,并求出最少的操作次数。原创 2022-01-30 19:20:53 · 143 阅读 · 0 评论 -
【dp背包】7.扫雷
【问题描述】相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字表示和它8连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案。输入格式第一行为N,第二行有N个数,依次为第二列的格子中的数。输出格式一个..原创 2022-01-30 19:11:55 · 93 阅读 · 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 · 301 阅读 · 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 · 197 阅读 · 0 评论 -
【次小生成树】4.秘密的牛奶运输
题目描述Farmer John 要把他的牛奶运输到各个销售点。运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点。运输的总距离越小,运输的成本也就越低。Farmer John 期望低成本的运输,但他并不想让他的竞争对手知道他具体的运输方案,所以他希望采用费用第二小的运输方案而不是最小的。现在请你帮忙找到该运输方案。输入格式第一行是两个整数 N,M,表示顶点数和边数;接下来 M 行每行 3 个整数,x,y,z,表示一条路的两端 x,y 和距离 z。输出格式原创 2022-01-29 15:34:40 · 5326 阅读 · 0 评论 -
【POJ 2406】Power Strings
给定若干个长度 ≤ 1000000 的字符串,询问每个字符串最多是由多少个相同的子字符串重复连接而成的。[循环节]如:ababab 则最多有 3 个 ab 连接而成。输入格式:输入若干行,每行有一个字符串。特别的,字符串可能为 . 即一个半角句号,此时输入结束。样例:输入:abcdaaaaababab.输出:143数据范围与提示字符串长度 <= 10^6。KMP#include<iostream>#include<cst.原创 2022-01-29 11:49:34 · 747 阅读 · 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 · 129 阅读 · 0 评论 -
【ST稀疏表】20. 数列区间最大值
题目描述输入一串数字,给你 M个询问,每次询问就给你两个数字X,Y ,要求你说出 X 到 Y 这段区间内的最大数。输入格式第一行两个整数n,m 表示数字的个数和要询问的次数;接下来一行为 n 个数;接下来 m行,每行都有两个整数 x,y。输出格式输出共M行,每行输出一个数。样例样例输入10 23 2 4 5 6 8 1 2 9 71 43 8样例输出58数据范围与提示对于全部数据1<=n<=1e5,1<=m<=le6,原创 2022-01-29 00:05:11 · 6387 阅读 · 0 评论 -
【USACO 2005 Feb. Gold】2.愤怒的牛【二分法】
农夫约翰建造了一座有 n 间牛舍的小屋,牛舍排在一条直线上,第 i 间牛舍在 xi 的位置,但是约翰的 m 头牛对小屋很不满意,因此经常互相攻击。约翰为了防止牛之间互相伤害,因此决定把每头牛都放在离其它牛尽可能远的牛舍。也就是要最大化最近的两头牛之间的距离。牛们并不喜欢这种布局,而且几头牛放在一个隔间里,它们就要发生争斗。为了不让牛互相伤害。John 决定自己给牛分配隔间,使任意两头牛之间的最小距离尽可能的大,那么,这个最大的最小距离是多少呢?输入格式第一行用空格分隔的两个整数 n 和 m;第原创 2022-01-28 23:28:06 · 369 阅读 · 0 评论 -
【HAOI 2008】1.糖果传递
有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。求使所有人获得均等糖果的最小代价。输入格式第一行有一个整数 n ,表示小朋友个数;在接下来 n行中,每行一个整数 ai。输出格式输出使所有人获得均等糖果的最小代价。样例输入数据 1:41254输出数据 1:4数据范围与提示:对于 30% 的数据,n≤1000;对于 100% 的数据,n≤10^6,保证答案可以用 64位有符号整数存储。分析:用 6原创 2022-01-28 17:41:17 · 298 阅读 · 0 评论