
搜索
xiao_you_you
这个作者很懒,什么都没留下…
展开
-
Java实现dfs模版
以走迷宫为例 0表示不可走 1表示可走 给出地图 以及始末位置 判断是否能到达import java.lang.reflect.Array;import java.util.*;public class main { public static int n,m; public static int mp[][]=new int[1000][1000]; //存储...原创 2020-02-03 13:19:29 · 1900 阅读 · 0 评论 -
D - Fliptile 二进制枚举+反转
题目大意:让牛踩瓦片使得瓦片反转,但是因为牛蹄太大,在踩到要反转的瓦片的同时,也使相邻的上下左右四个瓦片反转。现在问,牛如何踩瓦片,才能使得踩的次数尽量少的前提下使瓦片全部反转过来。思路:仔细想你会发现瓦片反转是有规律的,当第一行如何反转确定下来时,第二行会根据第一行的反转情况确定下来,比如第一行进行反转处理后 最终状态是1001,那么就要通过反转第二行的瓦片,使得第一行变为0000的状态,则第二...原创 2018-06-04 20:48:28 · 440 阅读 · 0 评论 -
J - Fire! (bfs)
对火的蔓延和joe走的情况分别进行bfs,这里注意记录火蔓延的方法:vFire[q.x][q.y] = vFire[s.x][s.y] + 1; 表示标记该位置是经过多长时间烧过来的(由上一个位置+1得到) 判断某位置是否可走,则只需看Joe走到该位置的时间是否小于火走过来的时间即可还有就是地图上可能不止一个火种也可能没有火种,需要开一个数组记录一下#include<queue>#i...原创 2018-05-31 18:22:48 · 219 阅读 · 0 评论 -
数据结构之用栈实现迷宫问题(dfs)
给一个n*n的方格,让你求从左上角到所给一点的任意一条路径并输出该题用到dfs,以下是对dfs的简要解析 :详解请参见 传送门dfs是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时...原创 2018-09-28 19:41:04 · 1788 阅读 · 1 评论 -
BFS DFS模版
感谢:Lemon_Chen大佬的博客//BFS#include<cstdio>#include<cstring>#include<queue>#include<algorithm>using namespace std;const int maxn=100;bool vst[maxn][maxn]; // 访问标记int di...转载 2018-12-07 12:05:41 · 101 阅读 · 1 评论 -
Chinese Mahjong UVA - 11210
题目大意:给出十三张牌的样式,问再加哪一张牌才能胡牌,若都不能胡牌输出 Not ready(麻将胡牌是以3+3+3+3+2=14的形式组成 其中‘2’由两张相同的牌组成,称之为“将”,‘3’由三张相同类型的顺子或者三张相同的牌组成,称之为“刻子”,也就是说胡牌由一组奖牌四个刻子组成)思路:由于只缺一张牌,那么对这张牌进行逐个枚举,然后先检查将牌之后对刻子用dfs进行检查。这里的储存也有些小技巧...原创 2019-02-16 22:49:34 · 157 阅读 · 0 评论 -
康托展开与逆康托展开
康托展开原理:其中,为整数,并且。ai表示原数的第i位在当前未出现的元素中是排在第几个举个例子说明。在5个数的排列组合中,计算 34152的康托展开值。首位是3,则小于3的数有两个,为1和2,,则首位小于3的所有排列组合为第二位是4,由于第一位小于4,1、2、3中一定会有1个充当第一位,所以排在4之下的只剩2个,所以其实计算的是在第二位之后小于4的个数。因此...原创 2019-04-02 16:02:40 · 143 阅读 · 0 评论 -
Election of Evil(搜索)
题目描述Dylan is a corrupt politician trying to steal an election. He has already used a mind-control technique toenslave some set U of government representatives. However, the representatives who will...原创 2019-04-14 19:19:32 · 158 阅读 · 0 评论 -
2019牛客国庆集训派对day1 -I 2019
思路:dp[i][j]表示点 i 的子节点到点 i 的距离mod 2019 = j的路径个数。设一点为u,其子节点为v,u、v间的边权值为w转移方程为:dp[u][j]+=dp[v][(j-w+2019)%2019];#include <iostream>#include<cstdio>#include<cstring>#include<a...原创 2019-10-05 09:53:27 · 429 阅读 · 0 评论