![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
noi
刷题
我也念过晚霞
何时想念——何时再见
展开
-
NOI / 1.7编程基础之字符串 25:最长最短单词 函数分割做法
输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。试输出第1个最长的单词和第1个最短单词。第2行,第一个最短的单词。第1行,第一个最长的单词。原创 2023-11-14 19:20:22 · 188 阅读 · 1 评论 -
NOI / 1.9编程基础之顺序查找 13:整数去重 set
给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。第一行包含一个正整数n(1 <= n <= 20000),表示第二行序列中数字的个数;第二行包含n个整数,整数之间以一个空格分开。每个整数大于等于10、小于等于100。输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。原创 2024-02-16 17:18:18 · 239 阅读 · 0 评论 -
NOI / 1.9编程基础之顺序查找 12:最长平台 unordered_map 哈希
已知一个已经从小到大排序的数组,这个数组的一个平台(Plateau)就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在 1,2,2,3,3,3,4,5,5,6中1,2-2,3-3-3,4,5-5,6都是平台。试编写一个程序,接收一个数组,把这个数组最长的平台找出 来。在上面的例子中3-3-3就是最长的平台。第一行有一个整数n(n <= 1000),为数组元素的个数。第二行有n个整数,整数之间以一个空格分开。输出最长平台的长度。原创 2024-02-16 16:36:53 · 169 阅读 · 0 评论 -
AcWing 846. 树的重心 树与图的深度优先遍历 dfs
给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。原创 2024-02-21 22:54:29 · 197 阅读 · 0 评论 -
NOI / 1.9编程基础之顺序查找 06:笨小猴 unordered_map 哈希
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。单词olympic中出现最多的字母i出现了2次,出现次数最少的字母出现了1次,2-1=1,1不是质数。单词error中出现最多的字母r出现了3次,出现次数最少的字母出现了1次,3-1=2,2是质数。只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。原创 2024-02-16 10:38:47 · 254 阅读 · 0 评论 -
NOI / 1.9编程基础之顺序查找 11:连续出现的字符
第一行包含一个正整数k,表示至少需要连续出现的次数。第二行包含需要查找的字符串。字符串长度在1到1000之间,且不包含任何空白符。给定一个字符串,在字符串中找到第一个连续出现至少k次的字符。若存在连续出现至少k次的字符,输出该字符;原创 2024-02-16 17:20:11 · 258 阅读 · 0 评论 -
NOINOI / 1.9编程基础之顺序查找 02:输出最高分数的学生姓名 结构体
第一行输入一个正整数N(N <= 100),表示学生人数。输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。姓名为一个连续的字符串,中间没有空格,长度不超过20。分数是一个非负整数,且小于等于100;数据保证最高分只有一位同学。获得最高分数同学的姓名。原创 2024-02-16 09:00:35 · 314 阅读 · 0 评论 -
NOI / 2.6基本算法之动态规划 1768:最大子矩阵 双指针 dp
输入是一个N * N的矩阵。输入的第一行给出N (0 < N原创 2024-05-20 15:24:14 · 219 阅读 · 0 评论 -
NOI / 2.6基本算法之动态规划 1759:最长上升子序列
比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8).输入的第一行是序列的长度N (1 <= N <= 1000)。第二行给出序列中的N个整数,这些整数的取值范围都在0到10000。你的任务,就是对于给定的序列,求出最长上升子序列的长度。的时候,我们称这个序列是上升的。对于给定的一个序列(),我们可以得到一些上升的子序列(最长上升子序列的长度。原创 2024-05-20 15:05:41 · 197 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 8783:单词接龙
单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。你可以假定以此字母开头的“龙”一定存在。连成的“龙”为atoucheatactactouchoose。只需输出以此字母开头的最长的“龙”的长度。原创 2024-05-20 14:58:33 · 139 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 6266:取石子游戏 递归
有两堆石子,两个人轮流去取.每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍.最后谁能够把一堆石子取空谁就算赢.假设石子数目为(a,b)且a >= b,如果[a/b] >= 2则先手必胜,如果[a/b]<2,那么先手只有唯一的一种取法.每组数据一行,包含两个正整数a和b,表示初始时石子的数目。最后选手1(先取的)获胜,在取的过程中选手2都只有唯一的一种取法。给定初始时石子的数目,如果两个人都采取最优策略,请问先手能否获胜。如果先手胜,输出"win",否则输出"lose"原创 2024-05-20 14:10:58 · 250 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 7218:献给阿尔吉侬的花束 bfs
阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的位置,字符#表示墙壁,字符.表示可以通行。对于每一组数据,输出阿尔吉侬吃到奶酪的最少单位时间。每一组数据的第一行包含了两个用空格分开的正整数R和C(2 <= R, C <= 200),表示地图是一个R×C的矩阵。接下来的R行描述了地图的具体内容,每一行包含了C个字符。原创 2024-05-20 14:28:39 · 214 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 1818:红与黑 dfs
每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下。有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。对每个数据集合,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。当在一行中读入的是两个零时,表示输入结束。原创 2024-05-14 09:51:30 · 173 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 2727:仙岛求药 bfs tuple tie
少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由M×N个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他。对于每组测试数据,分别输出一行,该行包含李逍遥找到仙药需要穿过的最少的方格数目(计数包括初始位置的方块)。下图 显示了一个迷阵的样例及李逍遥找到仙药的路线.原创 2024-05-14 10:31:11 · 266 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 323:棋盘问题 dfs
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。列已经放置了棋子,因此不能在这个位置放置棋子。函数,搜索下一个位置。原创 2024-05-15 10:30:08 · 192 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 4980:拯救行动 dfs
由于在通往公主所在位置的道路中可能遇到守卫,骑士一旦遇到守卫,必须杀死守卫才能继续前进。现假设骑士可以向上、下、左、右四个方向移动,每移动一个位置需要1个单位时间,杀死一个守卫需要花费额外的1个单位时间。矩阵中的每项可以代表道路(@)、墙壁(#)、和守卫(x)。2、随后N行,每行有M个字符。"@"代表道路,"a"代表公主,"r"代表骑士,"x"代表守卫, "#"代表墙壁。给定牢房矩阵,公主、骑士和守卫在矩阵中的位置,请你计算拯救行动成功需要花费最短时间。如果拯救行动成功,输出一个整数,表示行动的最短时间。原创 2024-05-15 11:16:52 · 329 阅读 · 0 评论 -
NOI / 2.3基本算法之递归变递推 9273:PKU2506Tiling 线性dp
当n>3时,1*2横放,有f(n-2)种,1*2竖放,有f(n-1)种,2*2铺,有f(n-2)种,所以。使用1*2的砖横放,这样会占用掉这一列和下一列,因此当前列和下一列的铺设方式就确定了,剩下的就是2行(N-2)列的走道需要铺设,即f(n-2)种方式。因此,对于每一列,我们都有三种选择,所以总的铺设方式就是这三种选择的总和,即f(n)=f(n-1)+2*f(n-2)。使用2*2的砖铺设,这样会占用掉这一列和下一列,剩下的就是2行(N-2)列的走道需要铺设,即f(n-2)种方式。对于一个2行N列的走道。原创 2024-05-15 11:47:57 · 324 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 2971:抓住那头牛 bfs
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?1、从X移动到X-1或X+1,每次移动花费一分钟。2、从X移动到2*X,每次移动花费一分钟。一个整数,农夫抓到牛所要花费的最小分钟数。原创 2024-05-14 10:41:14 · 217 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 8465:马走日 dfs
每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0<=x<=n-1,0<=y<=m-1, m < 10, n < 10)请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途径总数,0为无法遍历一次。第一行为整数T(T < 10),表示测试数据组数。马在中国象棋以日字形规则移动。原创 2024-05-14 10:19:41 · 196 阅读 · 0 评论 -
NOI / 2.4基本算法之分治 7622:求排列的逆序数 逆序对的数量
例如排列 263451 含有8个逆序(2,1),(6,3),(6,4),(6,5),(6,1),(3,1),(4,1),(5,1),因此该排列的逆序数就是8。个排列中,最小的逆序数是0,对应的排列就是1,2,…最大的逆序数是n(n-1)/2,对应的排列就是n,(n-1),…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j < k 且 ij > ik, 那么就称(ij,ik)是这个排列的一个逆序。第二行是n个不同的正整数,之间以空格隔开,表示该排列。,n的一个排列,求它的逆序数。原创 2024-05-13 14:17:13 · 375 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 1756:八皇后 dfs
对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。第1行是测试数据的组数n,后面跟着n行输入。给出一个数b,要求输出第b个串。串的比较是这样的:皇后串x置于皇后串y之前,当且仅当将x视为整数时比y小。输出有n行,每行输出对应一个输入。输出应是一个正整数,是对应于b的皇后串。原创 2024-05-13 14:57:21 · 165 阅读 · 0 评论 -
NOI / 2.4基本算法之分治 7909:统计数字
已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*10^9)。80%的数据满足:1<=n<=50000;40%的数据满足:1<=n<=1000;第一行是整数n,表示自然数的个数;第2~n+1每行一个自然数。原创 2024-05-13 14:48:55 · 193 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索 1792:迷宫
一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。第1行是测试数据的组数k,后面跟着k组输入。每组测试数据的第1行是一个正整数n (1 <= n <= 100),表示迷宫的规模是n * n的。接下来是一个n * n的矩阵,矩阵中的元素为.或者#。再接下来一行是4个整数ha, la, hb, lb,描述A处在第ha行, 第la列,B处在第hb行, 第lb列。能办到则输出“YES”,否则输出“NO”。原创 2024-05-13 20:34:46 · 207 阅读 · 0 评论 -
NOI / 2.3基本算法之递归变递推 3525:上台阶
楼梯有n(30 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。每一行输出对应一行输入的结果,即为走法的数目。原创 2024-05-08 11:37:41 · 166 阅读 · 0 评论 -
NOI / 2.4基本算法之分治 7617:输出前k大的数
第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第一行包含一个整数n,表示数组的大小。n < 100000。给定一个数组,统计前k大的数并且把这k个数从大到小输出。从大到小输出前k大的数,每个数一行。第三行包含一个整数k。原创 2024-05-11 09:05:37 · 232 阅读 · 0 评论 -
NOI / 2.3基本算法之递归变递推 6262:流感传染
有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的一行是一个整数m,m不超过100.输出第m天,得流感的人数。原创 2024-05-08 11:45:33 · 141 阅读 · 0 评论 -
NOI / 2.4基本算法之分治 2991:2011 快速幂
在每次递归中,将指数n除以2,然后递归计算f(n/2)的结果,直到n为0或1时返回基本情况的结果。综上所述,这样的操作是为了利用分治的思想,将问题规模缩小一半,并通过递归调用函数f来计算2011的n次方并求余10000。这种快速幂算法的时间复杂度为O(log n),相比普通的幂运算方法(时间复杂度为O(n)),可以显著提高计算效率。总结一下,这行代码的目的是处理指数为奇数的情况,确保能够正确计算出。每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0。每行都有一个正整数n,n的位数<=200。原创 2024-05-11 09:00:00 · 327 阅读 · 0 评论 -
NOI / 2.4基本算法之分治 7620:区间合并
bi],其中i=1,2,...,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。3] 可以合并为 [1;4] 可以合并为 [1;之后n行,在第i行上(1 ≤ i ≤ n),为两个整数 ai 和 bi ,整数之间用一个空格分隔,表示区间 [ai;bi](其中 1 ≤ ai ≤ bi ≤ 10000)。输出一行,如果这些区间最终可以合并为一个闭区间,输出这个闭区间的左右边界,用单个空格隔开;我们的任务是判断这些区间是否可以最终合并为一个闭区间,如果可以,将这个闭区间输出,否则输出no。表示输入区间的数量。原创 2024-05-11 09:30:31 · 195 阅读 · 0 评论 -
NOI / 2.2 7592:求最大公约数问题 gcd函数
假设a > b > 0,那么a和b的最大公约数等于b和a%b的最大公约数,然后把b和a%b作为新一轮的输入。由于这个过程会一直递减,直到a%b等于0的时候,b的值就是所要求的最大公约数。输入一行,包含两个正整数(<1,000,000,000)。9和6的最大公约数等于6和9%6=3的最大公约数。输出一个正整数,即这两个正整数的最大公约数。由于6%3==0,所以最大公约数为3。给定两个正整数,求它们的最大公约数。原创 2024-05-06 15:23:20 · 230 阅读 · 0 评论 -
NOINOI / 2.2 2705:扩号匹配问题
在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,原创 2024-05-08 10:54:18 · 205 阅读 · 0 评论 -
NOI / 2.2 3089:爬楼梯 递归
输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 30。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级。树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。也可以第一次走两级,第二次走一级,一共3种方法。不同的走法数,每一行输入对应一行输出。原创 2024-05-06 15:13:10 · 122 阅读 · 0 评论 -
NOI / 2.1 1809:两倍 暴力枚举
比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。一行,给出2到15个两两不同且小于100的正整数。最后用0表示输入结束。一个整数,即有多少个数对满足其中一个数是另一个数的两倍。原创 2024-05-06 15:33:43 · 143 阅读 · 0 评论 -
NOI / 2.2 1696:波兰表达式 栈+递归 atof函数
波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表示法为+ 2 3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的波兰表示法为* + 2 3 4。所以我们在应该在一开始递归时,先输入一个字符串,如果是符号,就进行两次递归,并对其进行加减乘除的操作;如果是常量,就用atof()把字符串转换成一个小数类型的数,并返回。输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。输出为一行,表达式的值。原创 2024-05-06 14:37:36 · 331 阅读 · 0 评论 -
NOI / 2.2 1750:全排列 递归
给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。已知S = s1s2...sk , T = t1t2...tk,则S < T 等价于,存在p (1 <= p <= k),使得。s1 = t1, s2 = t2, ..., sp - 1 = tp - 1, sp < tp成立。输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。原创 2024-05-06 15:03:32 · 175 阅读 · 0 评论 -
NOI / 2.1 1752:鸡兔同笼 简单数学
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。一行,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开。如果没有满足要求的答案,则输出两个0,中间用一个空格分开。一行,一个正整数a (a < 32768)。原创 2024-05-06 14:20:08 · 398 阅读 · 0 评论 -
NOI / 2.3基本算法之递归变递推 1760:菲波那契数列(2)
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 1000000)。n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。原创 2024-05-08 11:33:15 · 186 阅读 · 0 评论 -
NOI / 2.2基本算法之递归和自调用函数 1788:Pell数列
Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an − 1 + an - 2 (n > 2)。第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000)。给出一个正整数k,要求Pell数列的第k项模上32767是多少。n行,每行输出对应一个输入。输出应是一个非负整数。原创 2024-05-08 10:52:34 · 102 阅读 · 0 评论 -
NOI / 2.2 1751:分解因数 递归
给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * ... * an,并且1 < a1 <= a2 <= a3 <= ... <= an,问这样的分解的种数有多少。注意到a = a也是一种分解。第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (1 < a < 32768)n行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的分解的种数。原创 2024-05-08 10:24:50 · 205 阅读 · 0 评论 -
NOI / 2.2 1755:菲波那契数列 递归
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 20)菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小。给出一个正整数a,要求菲波那契数列中第a个数是多少。原创 2024-05-06 15:19:43 · 165 阅读 · 0 评论 -
NOI / 2.2基本算法之递归和自调用函数 提问666:放苹果
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。对输入的每组数据M和N,用一行输出相应的K。原创 2024-05-08 11:24:18 · 482 阅读 · 0 评论