地毯填补问题题目描述相传在一个古老的阿拉伯国家里,有一座宫殿。宫殿里有个四四方方的格子迷宫,国王选择驸马的方法非常特殊,也非常简单:公主就站在其中一个方格子上,只要谁能用地毯将除公主站立的地方外的所有地方盖上,美丽漂亮聪慧的公主就是他的人了。公主这一个方格不能用地毯盖住,毯子的形状有所规定,只能有四种选择(如图):
并且每一方格只能用一层地毯,迷宫的大小为2^k*2^k的方形。当然,也不能让公主无限制的在那儿等,对吧?由于你使用的是计算机,所以实现时间为1秒。
输入格式输入文件共2行。
第一行一个整数k,即给定被填补迷宫的大小为2^k 2^k(0<k<10);第二行两个整数x,y,即给出公主所在方格的坐标(x为行坐标,y为列坐标),x和y之间有一个空格隔开。
输出格式将迷宫填补完整的方案:每一补(行)为x\ y\ c(x,y为毯子拐角的行坐标和列坐标,c为使用毯子的形状,具体见上面的图1,毯子形状分别用1,2,3,4表示,x,y,c之间用一个空格隔开)。
样例 #1样例输入 #1123 3 3
样例输出 #1123456 ...
数楼梯题目描述楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。
编一个程序,计算共有多少种不同的走法。
输入格式一个数字,楼梯数。
输出格式输出走的方式总数。
样例 #1样例输入 #114
样例输出 #115
提示
对于60%的数据,N<50;
对于100%的数据,1<N<5000。
分析直接用简单的递归的话,数据过大栈会溢出用数组的话也是超时所以用高精度加法
高精度算法算法核心:也就是把个十百千位分别相加
123c[i]=a[i]+b[i];c[i+1]=c[i]/10;c[i]=c[i]%10;
题解123456789101112131415161718192021222324252627282930313233343536#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std; int n,len=1,f[5005][5005];void hp(int k){ int ...
覆盖墙壁题目描述你有一个长为N宽为2的墙壁,给你两种砖头:一个长2宽1,另一个是 L 型覆盖3个单元的砖头。如下图:
120 00 00
砖头可以旋转,两种砖头可以无限制提供。你的任务是计算用这两种来覆盖N2的墙壁的覆盖方法。例如一个23的墙可以有5种覆盖方法,如下:
12012 002 011 001 011 012 112 022 011 001
注意可以使用两种砖头混合起来覆盖,如2*4的墙可以这样覆盖:
1201120012
给定N,要求计算2N的墙壁的覆盖方法。由于结果很大,所以只要求输出最后4位。例如213 的覆盖方法为13465,只需输出3465即可。如果答案少于4位,就直接输出就可以,不用加前导0,如N=3时输出5。
输入格式一个整数N,表示墙壁的长。
输出格式输出覆盖方法的最后4位,如果不足4位就输出整个答案。
样例 #1样例输入 #1113
样例输出 #113465
提示数据保证1< N< 1000000。
讲解视频https://www.bilibili.com/video/BV1aL4y1A7Kz/123456789101112 ...
外星密码题目描述有了防护伞,并不能完全避免 2012 的灾难。地球防卫小队决定去求助外星种族的帮助。经过很长时间的努力,小队终于收到了外星生命的回信。但是外星人发过来的却是一串密码。只有解开密码,才能知道外星人给的准确回复。解开密码的第一道工序就是解压缩密码,外星人对于连续的若干个相同的子串CBCBCBCB 会压缩为[4CB]的形式(D是一个整数且 1<D<99),比如说字符串CBCBCBCB就压缩为[4CB]或者[2[2CB]],类似于后面这种压缩之后再压缩的称为二重压缩。如果是[2[2[2CB]]]则是三重的。现在我们给你外星人发送的密码,请你对其进行解压缩。
输入格式输入一行,一个字符串,表示外星人发送的密码。
输出格式输出一行,一个字符串,表示解压缩后的结果。
样例 #1样例输入 #11AC[3FUN]
样例输出 #11ACFUNFUNFUN
提示【数据范围】
对于50% 的数据:解压后的字符串长度在1000以内,最多只有三重压缩。
对于100%的数据:解压后的字符串长度在20000以内,最多只有十重压缩。保证只包含数字、大写字母、[ 和 ]。
这是我的不知道哪 ...
这是暴力枚举类型的一道算法题
妖梦拼木棒题目描述有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法?
输入格式第一行一个整数n;第二行往下n 行,每行一个整数,代表木棒的长度
解释1.先统计最小的ai和最大的ai,和每个长度木棒各有几根,即bi;2.4根木棒中,必须有两根木棒长度相等且不是最短的;3.从第二小的开始枚举(因为最小的不能通过别的木棒合成),看此木棒是不是有两根,没有就下一个;4.通过i/2和bi来确定用来合成的第一根木棒j,通过i-j确定另一根
12345678910111213141516171819202122232425262728293031323334353637#include<iostream>#include<fstream>#include<cstdio>#include<cmath>#include<queue>#include<string>#include<cstring>#include<string.h>#include< ...
[USACO1.5] 回文质数 Prime Palindromes题目描述因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以151是回文质数。
写一个程序来找出范围[a,b] (5 \le a < b \le 100,000,000)(一亿)间的所有回文质数。
输入格式第一行输入两个正整数a和b。
输出格式输出一个回文质数的列表,一行一个。
样例 #1样例输入 #115 500
样例输出 #11234567891011125711101131151181191313353373383
题目分析因为回文数比较少,可以先找出回文数,再筛选素数回文数利用模除和除来进行判断素数:偶数不会有素数,位数为偶数的除了11都不是质数
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include <iostream>#include <cmath>using namespace std;bool ...