深搜广搜
文章平均质量分 56
无
大 聪 明
Big Smart
展开
-
扩散(多源广搜)
bigsmart原创 2022-06-14 18:56:15 · 272 阅读 · 0 评论 -
地宫取宝(记忆化深搜)
大聪明原创 2022-06-07 10:57:37 · 189 阅读 · 0 评论 -
HDU - 1501 Zipper(记忆化深搜)
大聪明原创 2022-06-05 10:29:53 · 149 阅读 · 0 评论 -
计蒜客 - 43116 结果填空:爬楼梯(dfs dp)
传送门蒜头君要爬楼梯。楼梯一共有 1010 层台阶。因为腿长的限制,每次最多能上 44 层台阶。但是第 5,75,7 层楼梯坏掉了不能踩。求上楼梯的方案数。分析:这题是从0层开始走的!!!!dfs:完全模拟,恰好到第10层就ans++;而且for循环保证不会走重复#include<stdio.h>#include<iostream>using namespace std;#define ll long longint vis[20];int ans;void df原创 2022-04-04 15:02:55 · 694 阅读 · 0 评论 -
方格分割(深搜)
传送门题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。如下就是三种可行的分割法。试计算: 包括这 33 种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。分析:不能按格子遍历,无法找到对称点,必须按格子四周的点遍历,这样也可以控制图案,以(3,3)为初始点,所以开始必须提前标记为1。大概思路就是走一步标记该点以及和它对称的点。AC代码:#include<原创 2022-03-10 10:13:16 · 538 阅读 · 1 评论 -
牛客小bai月赛41 小红的rpg游戏(广搜 三维数组)
真好玩~原创 2021-12-09 19:17:10 · 4727 阅读 · 0 评论 -
#10021. 「一本通 1.3 例 4」Addition Chains(深搜剪枝)
传送门分析:要求数列中的每个数都有 找最短的数列,没有头绪。既然找最短,就遍历它的数位。这个剪枝真是妙~~啊AC代码:#include<stdio.h>int n,len;int a[110];int dfs(int x)//遍历数组长度 { int i,j ; if(a[x-1]==n) return 1; if(x>len)//剪枝:长度超了 直接退回去 return 0; for(i=x-1;i>=1;i--)//从小到大遍历,有利于剪枝 fo原创 2021-10-28 15:35:14 · 236 阅读 · 0 评论 -
计蒜客 - T1284 夫子云游(李白喝酒,深搜)
传了个送门改编自猫腻所著的同名小说《将夜》目前正在火热开播,其中男主角宁缺在考书院二层楼时遇一题:“那年春,夫子出国游历,遇桃山美酒,遂寻径登山赏桃品酒,一路摘花饮酒而行,始斩一斤桃花,饮一壶酒,后夫子惜酒,故再斩一斤桃花,只饮半壶酒,再斩一斤桃花,饮半半壶酒,如是而行……至山顶,夫子囊中酒尽,惘然四顾,问:夫子一共斩了几斤桃花,饮了几壶酒”。而当我们的男主角宁缺看到这道题目时,更是直接来了句 “谁出的这道题,太二了”,紧接着就提笔写下了 “夫子饮二壶酒,斩尽满山桃花” 后直接就交卷走人了赢得书院弟子原创 2021-10-17 17:33:04 · 402 阅读 · 0 评论 -
计蒜客 - T1213 拯救行动(广搜+数组标记)
LINK公主被恶人抓走,被关押在牢房的某个地方。牢房用 N \times M (N, M \le 200)N×M(N,M≤200) 的矩阵来表示。矩阵中的每项可以代表道路(@)、墙壁(#)、和守卫(x)。英勇的骑士(r)决定孤身一人去拯救公主(a)。我们假设拯救成功的表示是 “骑士到达了公主所在的位置”。由于在通往公主所在位置的道路中可能遇到守卫,骑士一旦遇到守卫,必须杀死守卫才能继续前进。现假设骑士可以向上、下、左、右四个方向移动,每移动一个位置需要 11 个单位时间,杀死一个守卫需要花费额外的 1原创 2021-10-10 09:42:44 · 266 阅读 · 0 评论 -
POJ - 1014 Dividing(深搜+剪枝)
我是传送门Marsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of the marbles. This would be easy if all the marbles had the same value, because then they could just split the colle原创 2021-10-10 09:29:46 · 66 阅读 · 0 评论 -
鸣人和佐助(记忆化广搜)
我是传送门已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置。地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败大蛇丸的手下才能到这些位置。鸣人有一定数量的查克拉,每一个单位的查克拉可以打败一个大蛇丸的手下。假设鸣人可以往上下左右四个方向移动,每移动一个距离需要花费1个单位时间,打败大蛇丸的手下不需要时间。如果鸣人查克拉消耗完了,则只可以走到没有大蛇丸手下的位置,不可以再移动到有大蛇丸手下的位置。佐助在此期间不移动,大蛇丸的手下也不移动。请问,鸣人要追上佐助最少需要花费多少时间?原创 2021-07-23 22:22:49 · 226 阅读 · 0 评论 -
HDU - 2102A计划(记忆化广搜)
biu biu~可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的国王正是心急如焚,告招天下勇士来拯救公主。不过公主早已习以为常,她深信智勇的骑士LJ肯定能将她救出。现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑原创 2021-07-28 08:18:57 · 80 阅读 · 0 评论 -
POJ - 1088 滑雪【记忆化搜索】
传送门DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例原创 2021-05-22 11:51:54 · 134 阅读 · 0 评论 -
#10029. 「一本通 1.4 练习 1」棋盘游戏(深搜) #10031. 「一本通 1.4 练习 3」移动玩具
LINK分析:搜索对象为两种变化的点,且他们的数量相等,不断模拟变化的过程,求出最小距离和。AC代码:#include<stdio.h>#include<math.h>#include<string.h>char a[100][100],b[100];int qx[100],qy[100],qqx[100],qqy[100];int sum,k,kk,ans=0x3f3f3f3f;int book[100];void dfs(int x,int原创 2021-10-01 20:59:17 · 270 阅读 · 0 评论 -
POJ - 3126首相的门牌号(广搜,数字单位变换)
LINKDescriptionThe ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all have to change the four-digit room numbers on their offices.— It is a matter of security to change such things every now a原创 2021-07-26 22:50:00 · 70 阅读 · 0 评论 -
哈密顿绕行世界问题 HDU - 2181(深搜)
LINK一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市。Input前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第20行以后每行有1个数m,m<=20,m>=1.m=0退出.Output输出从第m个城市出发经过每个城市1次又回到m的所有路线,如有多条路线,按字典序输出,每行1条路线.每行首先输出是第几条路线.然后个一个: 后列出经过的城市.分析:十二面体,每个点都和其他三个点相接;要求字典序输出,每站原创 2021-07-21 16:18:17 · 132 阅读 · 0 评论 -
POJ - 1321棋盘问题(深搜)
我是传送门在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n当为-1 -1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, .原创 2021-07-06 14:27:30 · 84 阅读 · 0 评论