- 博客(252)
- 资源 (54)
- 收藏
- 关注
原创 1222:放苹果
通过代码:#include <bits/stdc++.h>using namespace std;int m, n;int f(int _m, int _n) { if(_m == 0 || _n == 1) return 1; if(_n > _m) return f(_m,_m); else return f(_m, _n - 1) + f(_m - _n, _n);}int main() { int t; scanf("%d", &.
2020-11-23 17:12:53
292
原创 1221:分成互质组
通过代码:#include <bits/stdc++.h>using namespace std;int n, a[11], q[11][11], rate = 1, minn = 233; bool avl[11];inline bool isPrime(int _a, int _b) { if(_a == 1 || _b == 1) return true; int _t = _a % _b; while(_t) _a = _b, _b = _t, _t.
2020-11-23 17:11:03
445
原创 1220:单词接龙
题目描述:单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。带我去看题目输入:输入的第一行为一个单独的整数n(n≤20)表示单词数,以下n行每行有一个单词(只含有大写或小写字母,长度不超过20).
2020-10-07 14:00:37
527
原创 1219:马走日
题目描述:马在中国象棋以日字形规则移动。请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。带我去看题目输入:第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0≤x≤n-1,0≤y≤m-1, m < 10, n < 10)。输出:每组测试数据包含一行,为一个整数,表示马能遍历棋.
2020-10-07 13:57:52
340
原创 1218:取石子游戏
题目描述:有两堆石子,两个人轮流去取。每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍,最后谁能够把一堆石子取空谁就算赢。比如初始的时候两堆石子的数目是25和7。25 7 >> 11 7 >> 4 7 >> 4 3 >> 1 3 >> 1 0 选手1取 选手2取 选手1取 选手...
2020-09-22 16:57:43
274
原创 1217:棋盘问题
题目描述:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。带我去看题目输入:输入含有多组测试数据。每组数据的第一行是两个正整数n,k,用一个空格隔开,表示了将在一个n×n的矩阵内描述棋盘,以及摆放棋子的数目。(n ≤8,k ≤ n)当为−1 −1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中#表...
2020-09-22 16:00:53
198
原创 1216:红与黑
题目描述:有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。带我去看题目输入:包括多组数据。每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下:1)‘.’:黑色的瓷砖;2)‘#’:白色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每组数据中.
2020-09-22 15:57:31
278
原创 1215:迷宫
题目描述:一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。带我去看题目输入:第1行是测试数据的组数k,后面跟着k组输入。每组测试数据的第1行是一个正整数n .
2020-09-22 15:54:35
271
原创 1214:八皇后
题目描述:会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 × 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数b,要求输出第b个串。串的比较是这样的:皇后串x置于皇后串y之前,当且仅当将x视为整数时比y小。带我去看题目输.
2020-09-18 17:16:09
268
原创 1213:八皇后问题
题目描述:在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。带我去看题目输入:(无)输出:按给定顺序和格式输出所有八皇后问题的解(见样例)。输入样例:(无)输出样例:No. 11 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 .
2020-09-18 17:10:26
201
原创 1212:LETTERS
题目描述:给出一个 roe × col 的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。输入:第一行,输入字母矩阵行数R和列数S,1 ≤ R,S ≤ 20。接着输出R行S列字母矩阵。输出:最多能走过的不同字母的个数。输入样例:36HFDFFBAJHGDHDGAGEH输出样例:6通过代码:#include <bits/stdc++.h>using nam.
2020-09-18 17:05:52
145
原创 1318:【例5.3】自然数的拆分
题目描述:任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。当n=7共14种拆分方法:带我去看题目7=1+1+1+1+1+1+17=1+1+1+1+1+27=1+1+1+1+37=1+1+1+2+27=1+1+1+47=1+1+2+37=1+1+57=1+2+2+27=1+2+47=1+3+37=1+67=2+2+37=2+57=3+4total=14输入:输入n。输出:按字典序输出具体的方案。输入样例:7输.
2020-09-18 17:01:43
153
原创 1317:【例5.2】组合的输出
题目描述:排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r ≤ n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。现要求你用递归的方法输出所有组合。例如n=5,r=3,所有组合为:1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5带我去看题目输入:一行两个自然数n、r(1 < n < 21,1 ≤ r ≤ ...
2020-08-19 23:38:14
330
原创 1211:判断元素是否存在
题目描述:有一个集合M是这样生成的:(1) 已知k是集合M的元素; (2) 如果y是M的元素,那么,2y + 1和3y + 1都是M的元素;(3) 除了上述二种情况外,没有别的数能够成为M的一个元素。问题:任意给定k和x,请判断x是否是M的元素。这里的k是无符号整数,x 不大于 100000,如果是,则输出YES,否则,输出NO。带我去看题目输入:输入整数 k 和 x, 逗号间隔。输出:如果是,则输出 YES,否则,输出NO。输入样例:0,22输出样例:.
2020-08-19 23:34:28
248
原创 1210:因子分解
题目描述:输入一个数,输出其素因子分解表达式。带我去看题目输入:输入一个整数 n (2 ≤ n < 100)。输出:输出该整数的因子分解表达式。表达式中各个素数从小到大排列。如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。输入样例:60输出样例:2^2*3*5通过代码:#include <bits/stdc++.h>using namespace std;int n;vector.
2020-08-19 23:30:02
467
原创 1209:分数求和
题目描述:输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。如:5 / 6、10 /3均是最简形式,而3/6需要化简为1 / 2,3 / 1需要化简为3。分子和分母均不为0,也不为负数。带我去看题目输入:第一行是一个整数n,表示分数个数,1 ≤ n ≤ 10;接下来n行,每行一个分数,用"p/q"的形式表示,不含空格,p,q均不超过10。输出:输出只有一行,即最终结果的最简形式。若为分数,用"p..
2020-08-19 23:21:16
528
原创 1208:2的幂次方表示
题目描述:任何一个正整数都可以用2的幂次方表示。例如:。同时约定方次用括号来表示,即可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)。进一步:(用2表示),,所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)。又如:,所以1315最后可表示为:2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)。输入:一个正整数n(n ≤ 20000)。输出:一行,符合约定的n的0,.
2020-08-19 23:13:31
211
原创 1207:求最大公约数问题
题目描述:给定两个正整数,求它们的最大公约数。带我去看题目输入:输入一行,包含两个正整数( < 1,000,000,000)。输出:输出一个正整数,即这两个正整数的最大公约数。输入样例:6 9输出样例:3通过代码:#include <bits/stdc++.h>using namespace std;int a,b;int gcd(int _a,int _b){ if(_b == 0) retur.
2020-08-19 23:07:16
210
原创 1206:放苹果
题目描述:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。带我去看题目输入:第一行是测试数据的数目t(0 ≤ t ≤ 20)。以下每行均包含二个整数M和N,以空格分开。1 ≤ M,N ≤ 10。输出:对输入的每组数据M和N,用一行输出相应的K。输入样例:17 3输出样例:8通过代码:#include <bits/stdc++.h>using n.
2020-08-19 23:04:54
155
原创 1205:汉诺塔问题
题目描述:约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,073,709,551,615这是一个天文数字,若每一微秒可能计算(并不输出)一次移动,那么也需要几乎一百万.
2020-08-19 22:59:55
543
2
原创 1204:爬楼梯
题目描述:树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。带我去看题目输入:输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 ≤ N ≤ 30。输出:不同的走法数,每一行输入对应一行输出。输入样例:5810输出样例:83489通过代码:#include <bits/stdc++.
2020-08-19 22:56:13
603
原创 1203:扩号匹配问题
题目描述:在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注。带我去看题目输入:输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。输出:对每组输出数据,输出两行,第一行包含原始输入字符.
2020-08-19 22:51:40
380
原创 1202:Pell数列
通过代码:#include <bits/stdc++.h>#define ll long long intusing namespace std;ll n,a,pell[1000001] = {0,1,2};int main(){ for(ll i = 3;i <= 1000000;i ++) pell[i] = (2 * pell[i - 1] + pell[i - 2]) % 32767; scanf("%lld",&n); .
2020-08-18 23:56:07
397
原创 1201:菲波那契数列
通过代码:#include <bits/stdc++.h>#define ll long long intusing namespace std;ll n,a,f[21] = {0,1,1};int main(){ for(int i = 3;i <= 20;i ++) f[i] = f[i - 1] + f[i - 2]; scanf("%lld",&n); for(int i = 1;i <= n;i ++){ .
2020-08-18 23:55:10
314
1
原创 1200:分解因数
通过代码:#include <bits/stdc++.h>using namespace std;int n,a,sum;void f(int a,int b){ for(int i = a;i * i <= b;i ++) if(b % i == 0 && i != b){ sum ++; f(i,b / i); }}int main(){ scanf("%d.
2020-08-18 23:54:04
387
原创 1199:全排列
通过代码:#include <cstdio>using namespace std;struct Qvector{ int tail; char q[100001]; Qvector(){ tail = -1; } char at(int n){ return q[n]; } void push_back(char a){ q[++ tail] = a; } void pop_back(){ tail --; }};char s[1.
2020-08-18 23:52:39
595
原创 1198:逆波兰表达式
通过代码:#include <bits/stdc++.h>using namespace std;char a[55];double calc(){ scanf("%s",a); if(a[0]=='+') return calc() + calc(); else if(a[0]=='-') return calc() - calc(); else if(a[0]=='*') return calc() * calc(); else if(a.
2020-08-18 23:50:31
756
原创 1316:【例4.6】数的计数(Noip2001)
通过代码:#include <bits/stdc++.h>#define ll long long intusing namespace std;ll n,F[1001];ll f(ll _n){ if(F[_n] != 0) return F[_n]; else if(_n == 1) return 1; ll sum = 1; for(register ll i = 1;i <= _n / 2;i ++) .
2020-08-18 23:49:20
266
原创 1315:【例4.5】集合的划分
通过代码:#include <bits/stdc++.h>#define ll long longusing namespace std;ll n,k;ll s(ll _n,ll _k){ if(_n < _k) return 0; else if(_n == _k) return 1; else if(_k == 0) return 0; else if(_k == 1) return 1; else return s(_n - 1.
2020-08-18 23:47:53
353
原创 1197:山区建小学
通过代码:#include <bits/stdc++.h>using namespace std;int n,m,a[501][501],c[501][501],f[501][501]; int main(){ scanf("%d%d",&n,&m); for(int i = 1;i < n;i ++) scanf("%d",&a[i][i + 1]); for(int i = 1;i <= n;i ++) .
2020-08-18 23:46:27
274
原创 1196:踩方格
通过代码:#include <bits/stdc++.h>#define ll long longusing namespace std;ll n,f[21] = {0,3,7};int main(){ scanf("%lld",&n); for(int i = 3;i <= n;i ++) f[i] = f[i - 1] * 2 + f[i - 2]; printf("%lld",f[n]); return 0;}.
2020-08-18 23:44:56
204
原创 1195:判断整除
题目描述:一个给定的正整数序列,在每个数之前都插入++号或−−号后计算它们的和。比如序列:1、2、41、2、4共有88种可能的序列:(+1) + (+2) + (+4) = 7(+1) + (+2) + (-4) = -1(+1) + (-2) + (+4) = 3(+1) + (-2) + (-4) = -5(-1) + (+2) + (+4) = 5(-1) + (+2) + (-4) = -3(-1) + (-2) + (+4) = 1(-1) + (-2) + (-4).
2020-08-18 23:44:02
282
原创 1194:移动路线
题目描述:X桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。对于1行1列的方格矩阵,蚂蚁原地移动,移动路线数为1;对于1行2列(或2行1.
2020-08-17 23:40:35
547
原创 1193:吃糖果
题目描述:名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,0 < N < 20)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N = 1,则名名第1天就吃掉它,共有1种方案;如果N = 2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案;如果N=3,则名名第1天可以吃1块,剩2块,也可以第1天吃2块剩1块,所以名名共有2 + 1 = 3种方案;如果N = 4.
2020-08-17 23:37:12
182
原创 1192:放苹果
题目描述:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。带我去看题目输入:第一行是测试数据的数目t(0 ≤ t ≤ 20)。以下每行均包含二个整数M和N,以空格分开。1 ≤ M,N ≤ 10。输出:对输入的每组数据M和N,用一行输出相应的K。输入样例:17 3输出样例:8通过代码:#include <bits/stdc++.h>using n.
2020-08-17 23:33:44
158
原创 1191:流感传染
题目描述:有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。带我去看题目输入:第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。接下来的一行是一个整数m,m不.
2020-08-17 23:29:23
496
原创 1190:上台阶
题目描述:楼梯有n(71 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。带我去看题目输入:输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。输出:每一行输出对应一行输入的结果,即为走法的数目。输入样例:12340输出样例:1247通过代码:#include <bits/stdc++.h>using namespace .
2020-08-17 23:24:58
353
原创 1189:Pell数列
题目描述:Pell数列的定义是这样的:。给出一个正整数k,要求Pell数列的第k项模上32767是多少。带我去看题目输入:第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000)。输出:n行,每行输出对应一个输入。输出应是一个非负整数。输入样例:218输出样例:1408通过代码:#include <bits/stdc++.h>#define ll lon..
2020-08-17 23:22:47
304
原创 1188:菲波那契数列(2)
题目描述:菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。带我去看题目输入:第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 ≤ a ≤ 1000000)。输出:n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数对1000取模得到的结果。输入样例:452191输出样例:.
2020-08-17 23:19:00
281
原创 1314:【例3.6】过河卒(Noip2002)
题目描述:棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m) (n,m为不超过20的整数),同样马的位置坐标是需要给出的,C≠A且C≠B。现在要求你计算出卒从A点能够到达B点的路径的条数。带我去看题目输入:给出n、m和C点的坐标。输出:从A点能够到.
2020-08-17 23:16:50
239
WinaeroTweaker Windows系统主题和界面个性化修改工具
2022-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人