oj
@@@龙猫
君子可内敛不可懦弱,面不公可起而论之
展开
-
1531-智力大冲浪
目录描述输入输出样例输入样例输出代码实现思考描述小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则:首先,比赛时间分为个n时段,它又给出了很多小游戏,每个小游戏都必须在规定期限前完成。如果一个游戏没能在规定期限ti前完成,则要从奖励费m元中扣去一部分钱wi,wi为自然数,不同的游戏扣去的钱是不一样的。当然,每个游戏本身都很简单,保证每个参赛者都能在一个时段内完成,而且原创 2021-04-13 23:04:02 · 349 阅读 · 0 评论 -
1304-售货员的难题(递归+回溯)
目录题目描述输入输出代码实现思考题目描述某乡有n个村庄( 1 < n < 40 ),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0 < s < 1000 )是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。3 {村庄数}0 2 1 {村庄1到各村的路程}1 0 2 {村庄2到各村的路程}2 1 0 {村庄原创 2021-04-01 23:06:53 · 593 阅读 · 0 评论 -
骑士巡游问题(递归+回溯)
题目描述输入 n ( 1< = n < = 10 ) 代表棋盘的规模就是 n*n 的规模,骑士永远从 (1,1) 出发,要求骑士走遍所有棋盘的格子输出 骑士的走法(遍历棋盘的所有格子)注意方向:constintdx[8]={ -2,-2, -1, 1,2, 2, 1,-1};constintdy[8]={ -1, 1, 2, 2,1,-1,-2,-2};输入输入 n ( 1< = n < = 10 ) 代表棋盘的规模就是 n*n 的规模,骑士永远从 (1,1) 出发,原创 2021-03-30 23:05:03 · 2425 阅读 · 1 评论 -
1530-数的划分(深搜+剪枝)
目录描述输入输出代码实现思考描述将整数n分成k份,且每份不能为空,问有多少种不同的分法。当n=7,k=3时,下面三种分法被认为是相同的: 1,1,5.1,5,1; 5,1,1输入—行两个数n ,k。n<210输出—行—个整数,即不同的分法数。代码实现#include<bits/stdc++.h>using namespace std;int n,k,c;void dfs(int x,int ans,int sum){ if(sum==n&&ans原创 2021-03-28 22:58:34 · 196 阅读 · 0 评论 -
1060-第二章:我们都有梦想
描述林静究竟在忙什么?暑假没有回家,现在打电话到他宿舍总是不在,郑微通过他的舍友给他留了自己的电话,也不见他回复。明明上火车的前两天郑微还跟林静通过电话,他在那一头答应得好好的,等她到了广州,他就会带她到处去玩,吃遍广州的小吃,当时郑微没有感觉到丝毫的异样,就连他的笑声也是一如既往地带着她熟悉的宠溺和宽容。 可是现在郑微没忘记两人的约定,林静却踪影全无。难道是她打错了电话?不可能!那个电话她倒着也能背出来,何况那边接电话的舍友明明也是认得林静的,只是说他不在。 不在不在,老是不在!还说是个模范好学原创 2021-03-17 23:02:06 · 90 阅读 · 0 评论 -
算法训练 数的划分
目录题目描述输入输出输入样例输出样例代码实现思考题目描述一个正整数可以划分为多个正整数的和,比如n=3时:3;1+2;1+1+1;共有三种划分方法。给出一个正整数,问有多少种划分方法。输入一个正整数n输出一个正整数,表示划分方案数输入样例3输出样例3代码实现#include<iostream>using namespace std;int const Max = 1e2+5; int dp[Max][Max];int main(){ int n; ci原创 2021-03-14 22:53:36 · 129 阅读 · 0 评论 -
1526水池数目
目录题目描述输入输出输入样例输出样例代码实现思考题目描述有一些小草和一些湖泊,现在,我们把它们通一看成水池,假设有一张某处的地图,这个地图上仅标识了此处是否是水池,现在,你的任务来了,请用算出该地图中共有几个水池。‘#’表示湖泊‘*’表示小草输入单组数据输入第一行两个数n和m,地图的行数n(0<m<100)与列数m(0<n<100)然后,输入接下来的n行每行输入m个数,表示此处有水还是没水(#表示此处是水池,*表示此处是小草)输出输出该地图中水池的个数。要注意,原创 2021-03-08 22:57:25 · 110 阅读 · 0 评论 -
1505-保险丝
题目描述现有n个设备,标号分别从1到n,第i个设备的用电量为c[i]。我们有一保险丝,当当前设备使用电量之和超过保险丝的总容量时则会跳闸。接下来有m次操作,初始化所有设备都为关闭状态,每操作一次则改变状态,若当前状态为开启,那么操作完毕后则变为关闭,反之亦然。输入测试数据有多组。输入第一行有3个整数,n、m、c,n(n<=20)表示设备的个数,c表示保险丝的总容量。接下来有n行,每行一个数字,第i行表示第i个设备的容量。 接下来有m行,每行一个数字k,表示掰动第k个设备的开关。当n、原创 2020-10-29 18:57:05 · 234 阅读 · 0 评论 -
1142-图的遍历——深度优先搜索
题目描述深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。其过程为:假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可以从图中的某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有和v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到为止。其算法可以描述如下:在本题中,读入一个无向图的邻接矩阵(即数组表示),建立无向图并按照以上描述中的算法遍历所有顶点,输出遍历顶原创 2020-09-09 23:03:33 · 528 阅读 · 0 评论 -
1111- a+b
题目描述求a+b的值输入第一行一个整数T,表示接下来有T行每行两个整数是a,b,(0<=a,b<=10^10000)输出输出值输入样例2100 10010000000000 10000000000输出样例20020000000000思路从这个题目数的范围可以得出a,b是大数,只能用字符数组或字符串存储;#include<bits/stdc++.h>using namespace std;const int N = 1.0e+5;struct b原创 2020-08-09 16:57:23 · 200 阅读 · 0 评论 -
1145-乌龟棋
题目描述小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行 N个格子,每个格子上一个分数(非负整数) 。棋盘第 1 格是唯一的起点,第 N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中 M 张爬行卡片,分成 4 种不同的类型(M 张卡片中不一定包含所有 4 种类型的卡片,见样例) ,每种类型的卡片上分别标有 1、2、3、4 四个数字之一,表示使用这种卡=片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片, 控原创 2020-08-09 16:26:57 · 87 阅读 · 1 评论 -
1034-最长公共子序列
题目描述给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。例如:Z=<a,b,f,c>是序列X=<a,b,c,f,b,c>的一个子序列,Z中的元素在X中的下标序列为<1,2,4,6>。现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?输入输入包含多组测试数据。每组输入占一行,为两个字符串,由若干个空格分隔。每个字符串的长度不超过100。输出对于每组输入,输出两个字符串的最长公共子原创 2020-08-08 21:07:41 · 80 阅读 · 0 评论 -
1152-猴子与香蕉
题目描述一组研究人员正在设计一个测试猴子IQ的实验。他们把香蕉吊在屋顶上,同时给猴子提供了砖块。如果猴子够聪明,它会把砖块一个个叠起来做成一个塔,然后爬上去拿到自己喜爱的食物。研究人员有n种不同的砖块,而且每种砖块都是取之不尽的。每种砖块都是长方体,第i种砖块的大小是(xi,yi,zi)。砖块能够翻转,可以将任意两边当作底面,剩下的那边作为高。他们想确定用砖块搭成的最高塔,能否帮助猴子够着屋顶。问题是,在叠塔过程中,要放的那块砖,其底面两条边都要小于下面那块砖的两条边,这是为了留个空间给猴子踩脚。例原创 2020-08-08 17:21:00 · 618 阅读 · 0 评论 -
1148-货币系统
题目描述给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。样例:设n=3,m=10,要求输入和输出的格式如下:输入第一行两个整数n,m(m<=5000)以下n行,每行一个整数,第i+1行为第i种货币的面值输出一个整数,为方案数输入样例3 10125输出样例10思路用动态规划的思想去做,先画一个二维表,再得出状态方程,...原创 2020-08-08 17:03:37 · 460 阅读 · 0 评论 -
1460-序列操作I
题目描述给定长度为 N 的正整数序列 A_1, A_2, A_3,…, A_N, 从中选出若干个数,使它们的和是 M,求有多少种选择方案。输入第一行是两个数字,表示 N 和 M。(N,M<1000)输出一个数字,表示和为 M 的组合的个数。输入样例4 41 1 2 2输出样例3思路有两种方法可以解决这个问题,第一种是搜索的方法,每一个数都遍历过去,找到和为M,则结果加1第二种是类似01背包问题,画二维表,得状态方程(来自一个厉害优秀的…)第一种:搜索#include &l原创 2020-08-04 23:02:39 · 486 阅读 · 0 评论 -
1516-嵌套矩形
## 题目描述有n个矩形,每个矩形可以用两个整数a,b描述,表示它的长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d,或者b<c,a<d(相当于把矩形X旋转90°)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)内。你的任务是选出尽可能多的矩形排成一行。使得除了最后一个之外,每个矩形都可以嵌套在下一个矩形内。输入每组测试数据的第一行是一个正整数n,表示该组测试数据中含有矩形的个数(n<=1000)随后的n行,每行有两个数a,原创 2020-08-04 22:13:56 · 355 阅读 · 3 评论 -
1467-花生采摘
## 题目描述鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回原创 2020-08-04 16:45:41 · 427 阅读 · 2 评论 -
1480-合并果子
文章目录题目描述输入描述输出描述输入样例输出样例数组的方法优先队列的方法题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种原创 2020-07-28 17:22:02 · 73 阅读 · 0 评论 -
1387-合根植物
文章目录题目描述输入描述输出描述输入样例输出样例解题思路代码题目描述w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入描述第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。接下来一行,一个整数k,表示下面还有k行数据(0&原创 2020-07-28 17:18:30 · 71 阅读 · 0 评论 -
1199-堆积木
描述小明的侄子要过生日了,小明买了一套儿童积木送他。这套积木由N个边长为1厘米的正方体小块组成,小明想把这些小块堆成一个大的矩形方体,然后将整个方体包裹上漂亮的包装纸,请问小明最少需要多少平方厘米的包装纸即可?输入输入的第一行为一个正整数C,表示测试样例的组数。每组输入是一个正整数N(1<=N<=1000),表示积木块的个数。输出对于每组输入,输出将整个方体完全包裹上包装纸所需要的包装纸的最小面积。输出样例:59102627100输出样例:303482541原创 2020-07-21 17:25:09 · 233 阅读 · 0 评论 -
1006-流连人间的苏苏
描述苏苏在做红尘仙的任务时,发现坐落于风景秀丽、四季如春的昆明市的云南中医学院。没过多久,苏苏就喜欢上了这个学校。以致于苏苏忘了回涂山的时间,现在她只剩下d天的时间待在云南中医学院。由于时间紧迫,苏苏想方设法为建设更好的云南中医学院。假设学校里某条街道有n个房子。每天选择两个门牌号l、r,给这两个门牌号之间的所有房子的门前都栽一棵树,已经有树的不需要再种。苏苏想知道在某天,有哪些房子前有树。输入每个输入文件只有一组数据第一行包含n,d。(1 <= n,d <= 1000)接下来原创 2020-07-21 17:16:22 · 104 阅读 · 0 评论 -
1478-机器翻译
描述小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的 中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的 词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。假设内存中有M 个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M−1,软原创 2020-07-21 17:04:40 · 169 阅读 · 0 评论 -
1412-数gcd
描述给定一个数列,这个数列满足:F1=A,F2=B,Fi=Fi−1+Fi−2(i>2)希望你能求出gcd(FN,FN+1)。现在给定A、B、N,请你求出要求的那个数字。答案可能很大,但是不取模。输入输入一行三个正整数A,B,N。1≤A≤B≤1017,1≤N≤10105,也就是说N的长度不超过105多组数据输入输出输出一行一个正整数表示答案。输入样例:2 4 5输出样例:2这道题要注意A,B,N的大小,A,B可用long long存储,N要用字符数组存储,还有一个特别的地方,因原创 2020-07-20 22:59:57 · 271 阅读 · 0 评论 -
1115-走迷宫
描述给一张个迷宫,问能否从起点走到终点,只能往上下左右走,不能斜着走输入多组测试数据,每组第一行两个正整数,分别为n和m表示n这个迷宫有n行m列(0<n,m<10)接着是n行m列,'#'表示路‘*’表示墙‘S’表示起点‘T’表示终点输出每组测试数据输出一个结果,如果能从S走到T,输出“YES”,否则输出“NO”输入样例:2 2S*#T3 3S*##T##输出样例:YESNO有两种方法可以解决这个问题第一种深度优先搜索:站在入口,考虑自己下一步可以走原创 2020-07-19 17:24:28 · 173 阅读 · 0 评论 -
1007-闪闪发光
描述一所位于云南昆明的中医药本科院校–云南中医学院。因为报考某专业的人数骤减,正面临着停招的危机。其中有九名少女想到一条妙计——成为偶像,只要她们成为偶像,学校的名气便会增加,而报考的人数亦会上升。就这样,九位个性鲜明的少女决定一起努力成为偶像。希望可以凭借偶像的名气增加生源来挽救自己所喜爱的专业,让自己的学校闪闪发光。她们为了成为偶像,第一步对于她们来说是减肥!这里有n个重物,第i个重物的重量是2^{w_i}。她们每天任务要完成的重量是n个重物的重量和。每次举重的重量和必须是2的幂,重物原创 2020-07-18 23:12:36 · 83 阅读 · 0 评论 -
1056-取石子游戏II
取石子游戏II描述一堆石子有n个,两人轮流取.每次取最少取1个,最多取m个。取完者胜.先取者负输出"Second win".先取者胜输出"First win"输入多组测试数据。每组测试数据包含2个正整数n,m。(n,m<=10000000)输出对于每组测试数据,输出谁获胜.输入样例:2 13 23 1输出样例:Second winSecond winFirst win巴什博奕:有一个含有n个物品的堆,两个人轮流从这堆物品中取物品, 规定每次至少取一个,最多取m个。最后取原创 2020-07-18 22:50:42 · 689 阅读 · 0 评论 -
1052-取石子游戏
描述有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。输入输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。输出输出对应也有若干行,每行包含一个数字1或0,如果最后你是原创 2020-07-16 23:17:49 · 202 阅读 · 0 评论 -
1477-神奇的幻方
描述【问题描述】幻方是一种很神奇的 NN 矩阵:它由数字 1,2,3, … … , NN 构成,且每行、每列及两条对角线上的数字之和都相同。当N为奇数时,我们可以通过以下方法构建一个幻方:首先将 1 写在第一行的中间。之后,按如下方式从小到大依次填写每个数K(K= 2,3, … , N*N ):若 (K−1) 在第一行但不在最后一列,则将K填在最后一行,(K− 1) 所在列的右一列;若 (K− 1) 在最后一列但不在第一行,则将K填在第一列,(K− 1) 所在行的上一行;若 (K原创 2020-07-16 22:02:25 · 121 阅读 · 0 评论 -
1017-求方程的根
描述用二分法求下面方程在(-10,10)(−10,10)之间的根:2*x*x*x-4*x*x+3*x-6=0没有输入输出输出方程在(-10,10)(−10,10)之间的根,结果精确到小数点后2位,如果有多个根,根之间请用空格隔开#include <stdio.h>#include<stdlib.h>#include <math.h>int main(){ double y1,y2,y,x1,x2,x; x1=-10; x2=10;原创 2020-07-16 21:53:19 · 138 阅读 · 0 评论 -
1131-美丽数
描述小明很喜欢3和5这两个数字,他将能被3或5整除的数叫做美丽数。现在给你一个整数N(1<=N<=100000),你能告诉小明第N个美丽数是多少吗?输入输入包含多组测试数据。每组输入一个整数N(1<=N<=100000)。输出对于每组输入,输出第N个美丽数。输入样例:1234输出样例:3569注意:开始尝试用遍历去做,但是很明显时间复杂度太大,运行超时,所以采用先定义一个数组,再存入100001个美丽数,然后根据N输出具体的美丽数#include &原创 2020-07-16 21:43:21 · 303 阅读 · 0 评论 -
1130-寻找第二小的数
描述求n个整数中第二小的数。相同的整数看成一个数。比如,有5个数分别是1,1,3,4,5,那么第二小的数就是3。输入输入包含多组测试数据。输入的第一行是一个整数C,表示有C组测试数据;每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是n个整数(每个数均小于100)。输出为每组测试数据输出第二小的整数,如果不存在第二小的整数则输出“NO”,每组输出占一行。输入样例:321 251 1 3 4 531 1 1输出样例:23原创 2020-07-16 21:37:08 · 161 阅读 · 0 评论 -
1222-出租车费
描述某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里;接下来的4公里,每公里2元;之后每公里2.4元。行程的最后一段即使不到1公里,也当作1公里计费。一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小。例如,整个行程为16公里,乘客应该将行程分成长度相同的两部分,每部分花费18元,总共花费36元。如果坐出租车一次走完全程要花费37.2元。现在给你整个行程的公里数,请你计算坐出租车的最小花费。输入输入包含多组测试数据。每组输入一个正整数n(n<10000000)原创 2020-07-16 21:29:13 · 125 阅读 · 0 评论 -
1055-取石子游戏I
描述一堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win".输入多组测试数据。每组测试数据包含1个整数n。(1<n<=1000000000)输出对于每组测试数据,输出谁获胜.输入样例:21310000输出样例:Second winSecond winFirst win斐波那契博弈的特征:1.先手不能在第一次把所有的石子取完原创 2020-07-15 23:33:33 · 154 阅读 · 0 评论 -
1016-统计字符
描述有一篇文章,有多行文字,总字符数不超过5000。要分别统计出其中的英文大写字母,小写字母,数字,空格以及其他字符的个数。输入输入为单组测试数据。输入有多行,多少行不确定。但是输入的字符总数不会超出5000.输出输出有5个数,分别表示整篇文章的英文大写字母,小写字母,数字,空格以及其他字符的个数。每两个数之间用空格隔开。输入样例:Also known as advanced fee fraud (AFF), 4-1-9 scams are named after the section o原创 2020-07-15 22:39:44 · 116 阅读 · 0 评论 -
1368-江中ACM
描述Hello,everybody,你对ACM了解多少呢?你想不想成为一个ACMer呢?你想不想学好C语言、算法、数据结构呢?亦或者你想变成一个编程大佬,那么选择江中ACM就是你最正确的选择。输入输入一个正整数n,n代表ACM中间的空格数 0<n≤10输出按题目要求输出,如下样例所示每组样例后有一个换行符输入样例:456输出样例:A CCCCC M MA A CC M M M MA A CC原创 2020-07-14 22:52:49 · 134 阅读 · 0 评论