随笔分类 - 搜索—dfs
摘要:这个可以用异或高斯消元,但是~~我不会呀~~我用的暴搜 2的m次方枚举第一行的翻转情况,然后后面的就定了,因为对于一个j位置,如果i 1的j位置需要翻,那么一定要翻i的j,因为这是i 1的j最后翻的机会 按字典序搜索然后取次数min即可 cpp include include include inc
阅读全文
摘要:每个ai在最后sum中的值是本身值乘上组合数,按这个dfs一下即可 cpp include include using namespace std; int n,s,ans[15],c[20][20]; bool u[15],f=0; int dfs(int a,int b) { if(b==n)
阅读全文
摘要:和March的那道不一样,只是非常单纯的带着贪心的dfs 首先一个点被隔断,与它相邻的所有点也会被隔断,打上删除标记,从1dfs即可 cpp include include using namespace std; const int N=30005,M=200005; int n,m,q,h[N]
阅读全文
摘要:从每个奶牛所在草场dfs,把沿途dfs到的草场的con都+1,最后符合条件的草场就是con==k的,扫一遍统计一下即可 cpp include include using namespace std; const int K=105,N=1005; int k,n,m,p[K],h[N],cnt,c
阅读全文
摘要:参考:http://www.cnblogs.com/clrs97/p/5125976.html 瞎搞约数失败...滚去搜索 dfs(x,y,z) 表示当前可选第x到第m个约数,还要选y个约数,已有z的乘积,搜的时候减掉大于n的情况
阅读全文
摘要:第一次听说斯坦纳树这种东西 先dfs预处理出来dis[i][j][k]表示格子(i,j)向k方向转移能到哪,记忆话搜索预处理,注意如果有环的话特判一下 设f[i][j][x][y]表示复合机器人i j在(x,y)生成需要推得步数,用spfa转移,因为时间比较紧所以优化spfa,把能转移的放进一个队列
阅读全文
摘要:…老是想到最长路上 其实可以这样:把每个环的xor和都存起来,然后任选一条1到n的路径的xor和ans,答案就是这个ans在环的线性基上跑贪心。 为什么是对的……因为可以重边而且是无相连通的,并且对于一条路,走偶数次相当于没走,所以任意走一条主路都可以从歧路走到某个环上,然后从歧路返回,此时就得到了
阅读全文

浙公网安备 33010602011771号