
每日算法题
谛听misa
ICT在读硕士
展开
-
每日算法题(Day16)----动物园
题目描述动物园里饲养了很多动物,饲养员小 A 会根据饲养动物的情况,按照《饲养指南》购买不同种类的饲料,并将购买清单发给采购员小 B。具体而言,动物世界里存在 2k 种不同的动物,它们被编号为 0 … 2k − 1。动物园里饲养了其中的 n 种,其中第 i 种动物的编号为 ai。《饲养指南》中共有 m 条要求,第 j 条要求形如“如果动物园中饲养着某种动物,满足其编号的二进制表示的第 pj 位为 1,则必须购买第 qj 种饲料”。其中饲料共有 c 种,它们从 1…c 编号。本题中我们将动物编号的二进制原创 2022-01-23 21:06:13 · 984 阅读 · 0 评论 -
每日算法题(Day15)----起床困难综合征
题目描述21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳。作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争。通过研究相关文献,他找到了该病的发病原因: 在深邃的太平洋海底中,出现了一条名为drd的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间。 正是由于drd的活动,起床困难综合症愈演愈烈, 以惊人的速度在世界上传播。为了彻底消灭这种病,atm决定前往海底,消灭这条恶龙。历经千辛万苦,atm终于来到了drd所在的地方,准备与其展开艰苦卓绝的战斗。drd原创 2022-01-22 20:39:17 · 192 阅读 · 0 评论 -
每日算法题(Day14)----跳石头
题目描述一年一度的“跳石头”比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 M块岩石(不能移走起点和终点的岩石)。输入格式输入文件第一行包含三个整数 L,N,M,分别表原创 2022-01-22 20:21:05 · 247 阅读 · 0 评论 -
每日算法题(Day13)----小凯的疑惑
题目描述小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。输入格式输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。输出格式输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。分析经典时尚数学题,不过坑点之一是原创 2022-01-22 20:03:58 · 197 阅读 · 0 评论 -
每日算法题(Day12)----最小生成树
题目描述给定结点数为 n,边数为 m 的带权无向连通图 G,所有结点编号为 1,2,⋯,n。求 G 的最小生成树的边权和。输入格式第一行包含两个整数N、M,表示该图共有N个结点和M条无向边。(N<=5000,M<=200000)接下来M行每行包含三个整数Xi、Yi、Zi,表示有一条长度为Zi的无向边连接结点Xi、Yi输出格式一个整数表示从G 的最小生成树的边权和。分析Kruscal算法即可样例7 11 5 42 4 21 4 37 2 23 4 35 7 57原创 2022-01-22 19:47:05 · 546 阅读 · 0 评论 -
每日算法题(Day11)----单源最短路
题目描述给一个 n(1≤n≤2500) n(1 \leq n \leq 2500)n(1≤n≤2500) 个点 m(1≤m≤6200) m(1 \leq m\leq 6200 )m(1≤m≤6200) 条边的无向图,求 s ss 到 t tt 的最短路。输入格式第一行四个由空格隔开的整数 n nn、m mm、s ss、t tt。之后的 m mm 行,每行三个正整数 si s_isi、ti t_iti、wi(1≤wi≤109) w_i(1 \leq w_i \leq 10 ^ 9)wi(1≤wi≤10原创 2022-01-22 19:37:54 · 1790 阅读 · 0 评论 -
每日算法题(Day10)----货币系统
题目描述在网友的国度中共有 n 种不同面额的货币,第 i 种货币的面额为 a[i],你可以假设每一种货币都有无穷多张。为了方便,我们把货币种数为 n、面额数组为 a[1…n] 的货币系统记作 (n,a)。在一个完善的货币系统中,每一个非负整数的金额 xxx 都应该可以被表示出,即对每一个非负整数 x,都存在 n 个非负整数 t[i]满足 a[i]×t[i]的和为 x。然而, 在网友的国度中,货币系统可能是不完善的,即可能存在金额 x 不能被该货币系统表示出。例如在货币系统 n=3, a=[2,5,9]中原创 2022-01-22 19:29:52 · 338 阅读 · 0 评论 -
每日算法题(Day9)----奶酪
题目描述现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z=0,奶酪的上表面为z = h。现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐 标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别 地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞;如果 一个空洞与上表面相切或是相交,Jerry原创 2022-01-21 23:40:40 · 402 阅读 · 0 评论 -
每日算法题(Day8)----积木大赛
题目描述春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第n块积木的最终高度需要是hi。在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间[L,R],然后将第L块到第R块之间(含第 L 块和第 R 块)所有积木的高度分别增加1。小M是个聪明的小朋友,她很快想出了建造大厦的最佳策略,使得建造所需的操作次数最少。但她不是一个勤于动手的孩子,所以想请你帮忙实现这个策略,并求出最少的原创 2022-01-21 23:34:15 · 298 阅读 · 0 评论 -
每日算法题(Day7)----扫雷
相信大家都玩过扫雷的游戏。那是在一个n×m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字表示和它8连通的格子里面雷的数目。现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷。由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案。原创 2022-01-14 22:55:20 · 625 阅读 · 1 评论 -
每日算法题(Day6)----分数字
题目描述将整数n分成k份,且每份不能为空,任意两种分法不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的:1,1,5; 1,5,1; 5,1,1。问有多少种不同的分法。输入格式输入仅一行,两个整数N 和 K输出格式输出仅一行,一个整数即分法。分析经典的dp问题,高中数学水平就可以手算,翻译成代码即可样例7 3------------------------4代码#include <cstdio>#include <iostream原创 2022-01-13 22:34:53 · 211 阅读 · 0 评论 -
每日算法题(Day5)----取石子
题目描述有一种有趣的游戏,玩法如下:玩家:2 人;道具:N 颗石子;规则:游戏双方轮流取石子;每人每次取走若干颗石子(最少取 1 颗,最多取 K 颗);石子取光,则游戏结束;最后取石子的一方为胜。假如参与游戏的玩家都非常聪明,问最后谁会获胜?输入格式输入仅一行,两个整数N 和 K输出格式输出仅一行,一个整数,若先手获胜输出 1,后手获胜输出 2。分析经典的Bash博弈问题,属于是看知识储备了这个问题的关键就是何时石子数目达到 x(k+1),其中x为任意整数,从这一刻起,无原创 2022-01-12 22:13:36 · 2716 阅读 · 0 评论 -
每日算法题(Day4)----秘密的牛奶运输
Farmer John 要把他的牛奶运输到各个销售点。运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点。 运输的总距离越小,运输的成本也就越低。Farmer John 期望低成本的运输,但他并不想让他的竞争对手知道他具体的运输方案,所以他希望采用费用第二小的运输方案而不是最小的。现在请你帮忙找到该运输方案。输入格式第一行是两个整数 N,M,表示顶点数和边数;原创 2022-01-12 21:59:52 · 638 阅读 · 0 评论 -
每日算法题(Day3)----Power Strings
经典KMP算法原创 2022-01-11 22:12:37 · 635 阅读 · 0 评论 -
每日算法题(Day2)----愤怒的牛
农夫约翰建造了一座有 n 间牛舍的小屋,牛舍排在一条直线上,第 i 间牛舍在 xi 的位置,但是约翰的 m头牛对小屋很不满意,因此经常互相攻击。约翰为了防止牛之间互相伤害,因此决定把每头牛都放在离其它牛尽可能远的牛舍。也就是要最大化最近的两头牛之间的距离。牛们并不喜欢这种布局,而且几头牛放在一个隔间里,它们就要发生争斗。为了不让牛互相伤害。John 决定自己给牛分配隔间,使任意两头牛之间的最小距离尽可能的大,那么,这个最大的最小距离是多少呢?原创 2022-01-09 13:45:18 · 499 阅读 · 0 评论 -
每日算法题(Day1)----传递糖果
有 nn 个小朋友坐成一圈,每人有 a~i~颗糖果。每人只能给左右两人传递糖果。每人每次传递一颗糖果的代价为 1 。求使所有人获得均等糖果的最小代价。原创 2022-01-09 13:44:42 · 480 阅读 · 0 评论