搜索篇
情书、
你很少能赢,但偶尔也会。
展开
-
蓝桥杯真题:凑平方数
问题描述把 0 ~ 9 这 10 个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。比如:0,36,5948721再比如:{1098524736};{1,25,6390784};{0,4,289,15376}等等…注意,0 可以作为独立的数字,但不能作为多位数字的开始。分组时,必须用完所有的数字,不能重复,不能遗漏。如果不计较小组内数据的先后顺序,请问有多少种不同的分组方案?答案提交注意:需要提交的是一个整数,不要填写多余内容。答案:300思路:1、不要单纯的按照题目原创 2021-05-27 15:09:33 · 323 阅读 · 0 评论 -
P1162 填涂颜色
题目描述由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下:0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 10 0 0 0 0 00 0 1 1 1 10 1 1 2 2 11 1 2 2 2 11 2 2 2 2 11 1 1 1 1 1输入格式每组测试数据第原创 2021-05-17 16:46:42 · 131 阅读 · 0 评论 -
P1019 [NOIP2000 提高组] 单词接龙
题目背景注意:本题为上古 NOIP 原题,不保证存在靠谱的做法能通过该数据范围下的所有数据。题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast 和 astonish,如果接成一条龙则变为 beastonish,另外相邻的两部分不能存在包含关系,例如 at 和 atide 间不能相连。输入格式输入的第一行为一个单独的整数原创 2021-05-15 20:05:26 · 129 阅读 · 0 评论 -
P1605 迷宫
题目背景给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。题目描述无输入格式第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。输出格式给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。输入输出样例输入 #12原创 2021-05-11 14:23:10 · 989 阅读 · 0 评论 -
P1433 吃奶酪
题目描述房间里放着n块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处。输入输出格式输入格式:第一行一个数n (n<=15)接下来每行2个实数,表示第i块奶酪的坐标。两点之间的距离公式=sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2))输出格式:一个数,表示要跑的最少距离,保留2位小数。输入输出样例输入样例#1:41 11 -1-1 1-1 -1输出样例#1:7.41思路:1、搜索题+剪枝,思路和全排列相似,把原创 2021-05-10 16:12:12 · 347 阅读 · 0 评论 -
P1135 奇怪的电梯
题目描述呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第ii层楼(1≤i≤N)上有一个数字Ki(0≤Ki≤N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3,3,1,2,5代表了Ki(K1=3,K2=3,…),从11楼开始。在1楼,按“上”可以到4楼,按“下”是不起作用的,因为没有−2楼。那么,从A楼到B楼至少要按几次按钮呢?输入格式共二行。第一行为33个用空格隔开的正整数,表示N,A,原创 2021-05-08 15:57:52 · 134 阅读 · 0 评论 -
P2392 kkksc03考前临时抱佛脚
思路:1、使用DFS,罗列左右脑所有情况;计算最小时间,模拟左右脑,把一科不同的题目以不同的组合情况分给左右脑,左右脑用时最多一边的为该组合情况最后用时,然后记录不同组合的最小时间为一科所需要的最小时间,每科再相加。2、也可以用DP。我的代码:#include<cstdio>#include<algorithm>using namespace std;const int maxn = 10000000;int p[4],mintime = 0,minptime = .原创 2021-05-07 15:41:45 · 113 阅读 · 0 评论 -
P1219 [USACO1.5]八皇后 Checker Challenge
题目描述一个如下的 6 \times 66×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 2 4 6 1 3 5 2 4 6 1 3 5 来描述,第 ii 个数字表示在第 ii 行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6 1 2 3 4 5 6列号 2 4 6 1 3 5 2 4 6 1 3 5这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。并把它们以上面的序列方原创 2021-05-06 19:01:07 · 177 阅读 · 0 评论 -
DFS全排列和组合问题(搜索篇)
全排列问题题目描述:把1~N这N个整数按不同的顺序摆放,输出所有可能的结果(按字典序从小到大)思路:1、先用数组hashtable记录每个数当前是否使用,未使用记0,使用过记1(是否在数组v中);用数组v记录全排列的顺序2、递归边界当下标等于N时输出数组v,return即可(如果难理解,可以在纸上用笔记录代码运行过程,多推几遍即可)我的代码:int n,v[20],hashtable[20] = {0};void DFS(int index){ if (index == n) {原创 2021-05-06 16:21:13 · 298 阅读 · 0 评论