回溯
神明 .
这个作者很懒,什么都没留下…
展开
-
P1363 幻象迷宫
传送门本文参考洛古中的题解思路:如果从迷宫中某一个点出发,走到边界时,可以传送到另一个迷宫矩阵中,但建太多迷宫会增大空间和时间复杂度,所以用取模的形式,(x,y)=((x+dir+n)%n , (y+dir+m)%m ) )这样就相当于走到另一个迷宫。如果某一点在不同的迷宫中被重复走过,那么是有解的那么如何判断是否在同一个迷宫中?lx,ly 记录没有取模的x和y值,也就是如果迷宫无限大,x和y真正的值用vis记录x和y没有取模的值,(lx与ly记录的是最新的值,而vi..原创 2020-11-22 12:24:59 · 223 阅读 · 0 评论 -
枚举子集合
增量构造法构建集合,一次选出一个元素放入集合(可重集同样适用)#include<bits/stdc++.h>using namespace std;int n;int a[100],b[100];void subset(int cnt,int k){ for(int i=1;i<cnt;i++) cout<<b[i]<<" ...原创 2019-07-21 14:51:15 · 120 阅读 · 0 评论 -
枚举求全排列(递归与next_permutation函数)
第一种方法:递归待求数组排列中不能有重复元素void perm(int a[],int cnt){ if(cnt==n+1){ cout<<.....; return ; } else{ 依次考虑a数组中的每个元素v perm(在s中添加v构成新数列);//s为储存数组 }#include<bits/...原创 2019-07-20 07:28:57 · 248 阅读 · 0 评论