![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
文章平均质量分 93
pigzhouyb
一个来自浙江的可爱的萌萌哒的肥肥胖胖的OIer
展开
-
【习题详解】搜索
搜索习题详解分数字流星雨分数字题目描述现有N件不可区分的物品,将它们分成10份,要求每份在1~3件之间,问有多少种方案,并按字典序输出所有方案。输入格式一个整数,表示N<=10000N<=10000。输出格式第一行一个数M,表示方案数。接下来M行每行10个整数,表示1种方案。样例数据input11output101 1 1 1 1 1 1 1 1 21 1...原创 2018-11-02 18:59:35 · 433 阅读 · 0 评论 -
【例题·搜索】八数码问题(A*)
题目描述在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。题解这道题可以用A∗A*A∗算法解决。每一个状态由空格朝四个方向进行扩展,使用优先队列B...原创 2019-04-02 21:41:01 · 1527 阅读 · 0 评论 -
【习题·搜索】字串变换(双向广搜)
题目描述描述已知有两个字串 AA,BB 及一组字串变换的规则(至多6个规则):·A1 -> B1·A2 -> B2规则的含义为:在 AA中的子串 A1A1 可以变换为 B1B1、A2A2 可以变换为 B2B2 …。例如:A=’abcd’ B=’xyz’变换规则为:‘abc’->‘xu’ ‘ud’->‘y’ ‘y’->‘yz’则此时,AA 可以经过一系...原创 2019-04-02 21:30:16 · 409 阅读 · 0 评论 -
【习题·搜索】Bookcase(IDA*)
题目描述有N(1 <=N <= 15)本书,每本与每本的高度都不一样。现在可以按照以下的办法整理书:抽出一摞书,再保持原来的顺序插进一个位置。这样的话我们称之为“一次操作”。现在你需要求出至少需要经过几次操作才能让书变成按高度升序的状态。如果需要5次或者多于5次,只需要输出“5 or more”。题解如果暴力考虑搜索:我们将LLL-RRR的书放到KKK后面,此时一定满足K&...原创 2019-04-02 18:13:53 · 153 阅读 · 0 评论 -
【习题·搜索】Power Hungry Cows(启发式搜索A*+剪枝)
题目描述FJ的奶牛想要快速计算整数P的幂 (1 <= P <=20,000),它们需要你的帮助。因为计算极大数的幂,所以它们同一时间仅能使用2个存储器,每个存储器可记录某个结果值。 第一件工作是初始化存储器内的值一个为底数x, 另一个为1。 奶牛可以相乘或相除2个存储器中的值,并把结果存在其中某个存储器内,但所有存储的结果必须是整数。 例如, 如果他们想计算x^31, 一种计算方法是...原创 2019-04-07 21:24:11 · 671 阅读 · 0 评论 -
【习题·搜索】送礼物(双向DFS)
题目描述作为惩罚,GY被遣送去帮助某神牛给女生送礼物(GY:貌似是个好差事)但是在GY看到礼物之后,他就不这么认为了。某神牛有N个礼物,且异常沉重,但是GY的力气也异常的大(-_-b),他一次可以搬动重量和在w(w<=2^31-1)以下的任意多个物品。GY希望一次搬掉尽量重的一些物品,请你告诉他在他的力气范围内一次性能搬动的最大重量是多少。题目大意体积很大,个数很少的01背包。做法...原创 2019-03-27 12:14:54 · 429 阅读 · 0 评论 -
【例题·搜索】Addition Chains(迭代加深搜索)
来源:POJ2248题目大意规定第一个数为1,第二个数是2,你需要找到长度为m的序列使得这一个序列中每一个数都有前面的两个相同或不同的数拼凑而成,输出这一个m最小的任意序列方案(SPJ)。做法首先需要说一下什么叫做迭代加深搜索。在某一颗搜索树上,如果答案在这一棵树的浅层那么我们如果在深度较大的子树上搜索就会浪费很多的时间,因此我们需要需要控制搜索的深度,不断的从浅层向深层进行扩展。具体...原创 2019-03-26 21:02:07 · 422 阅读 · 0 评论 -
【习题·搜索】Square Destroyer(启发式搜索IDA*)
题目描述下图左侧显示了一个用2 *(3 * 4)(= 24)火柴棍制成的完整3 * 3网格。所有火柴的长度都是一个。您可以在网格中找到许多不同大小的正方形。正方形的大小是其边长。在左图所示的网格中,有9个尺寸为1的正方形,4个尺寸为2的正方形和1个正方形的尺寸为3的正方形。整个网格的每个火柴杆都标有唯一编号,该编号从左到右,从上到下分配,如左图所示。如果你从整个网格中取出一些火柴棍,那么网格中...原创 2019-04-04 13:12:15 · 330 阅读 · 0 评论 -
【例题·搜索】The Rotation Game(启发式搜索IDA*)
题目描述一个井字形棋盘,上面有24个格子(如下图)。这些格子上面有1,2,3三种数字, 且每种数字有 8 格。一开始,这些格子上的数字是随机分布的。你的任务是移动这些格 子使得中间 8 个格子的数字相同。有 8 种移动方式,分别标记为 A 到 H,可以理解为 拉动 4 条链,如图的变换为“AC”。问至少需要多少次拉动,才能从初始状态到达目标 状态?(保证数据有解)题解算法是IDA∗I...原创 2019-04-04 12:58:02 · 611 阅读 · 0 评论 -
【习题·搜索】ice(BFS+STL Set+STL Map)
Problem题目描述Bessie 在一个冰封的湖面上游泳,湖面可以表示为二维的平面,坐标范围是-1,000,000,000…1,000,000,000。湖面上的N(1 <= N <= 20,000)个位置有石块(编号分别为1到N),其它位置是冰面。由于Bessie滑冰技术不够好,她通过推动自己旁边的石块,依靠反作用力向某一个方向前进,在碰到一个新的石块之前,Bessie是不会...原创 2019-03-30 16:20:22 · 242 阅读 · 0 评论 -
【习题·搜索】[SCOI2005]骑士精神(IDA*)
题目描述在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位。在任何时候一个骑士都能按照骑 士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空 位上。 给定一个初始的棋盘,怎样才能经过移动变成如下,目标棋盘: 为了体现出骑士精神,他们必须以最少的步 数完成任务。Solution这题在每一次的跳跃中,必然与空格有关,所...原创 2019-03-30 16:03:34 · 211 阅读 · 0 评论 -
【习题·搜索】[NOIP2009]靶型数独(搜索+剪枝+位运算优化)
题目小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低。但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“靶形数独”,作为这两个孩子比试的题目。靶形数独的方格同普通数独一样,在 99 格宽×99 格高的大九宫格中有9 9 个 33 格宽×33 格高的小九宫格(用粗黑色线隔开的)。在这个大九宫格中,有一些数字是...原创 2019-03-26 13:33:23 · 255 阅读 · 0 评论 -
【算法·搜索】第k小整数:O(n)
利用快速排序的思想,每一次找到一个基准数并确定这一个基准数的位置,得到这个数的下标,再根据其下标大小来确定是向左区间找还是向右区间找;这里每一次都要讲小于基准数的搞到左边,大于基准数的搞到右边,那么就能在接近于O(n)的时间内得到答案。#include <bits/stdc++.h>using namespace std;int n,m,k;int a[1000000];in...原创 2019-03-11 16:09:01 · 284 阅读 · 0 评论 -
【搜索·习题】太鼓达人
题目描述七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出来的的applepi。看到两人对太鼓达人产生了兴趣,applepi果断闪人,于是cl拿起鼓棒准备挑战。然而即使是在普通难度下,cl的路人本性也充分地暴露了出来。一曲终了,不但没有过关,就...原创 2019-02-12 13:37:06 · 1377 阅读 · 0 评论 -
USACO :Mooyo Mooyo
Mooyo Mooyo题面由于手上(更确实的,蹄子上)有大把的空余时间,Farmer John的农场里的奶牛经常玩电子游戏消磨时光。她们最爱的游戏之一是基于一款流行的电子游戏Puyo Puyo的奶牛版;名称当然叫做Mooyo Mooyo。Mooyo Mooyo是在一块又高又窄的棋盘上进行的游戏,高NNN(1≤N≤1001 \leq N \leq 1001≤N≤100)格,宽10格。 这是一个...原创 2018-12-24 13:56:49 · 564 阅读 · 0 评论 -
『记忆化搜索』魔塔
直接暴力记忆化搜索,以(横坐标,纵坐标,当前能量,击杀的怪兽数)为状态记忆化即可。直接看代码:#include <bits/stdc++.h>using namespace std;const int N = 12;int h, n, m, Ans;int dx[4] = {-1,1,0,0};int dy[4] = {0,0,-1,1};int f[N][N][...原创 2019-07-04 16:08:58 · 401 阅读 · 0 评论