0-1BFS用来解决:边权值为0或1,或者能够转化为这种边权值的最短路问题 主要操作:用deque,从0边扩展到的点push到队首,反之则到队尾。 模板题:SPOJ - KATHTHI 题意:起点走到终点,n×m的网格,每个位置有一个小写字母,若s[x][y]=s[nx][ny],则移动的花费为0, ...
分类:
其他好文 时间:
2020-05-03 00:43:13
阅读次数:
142
判断一个9*9数组是否满足数独游戏规则:每行、每列、每3*3小格不能有相同的数。我的方法是按行进行遍历,同时用9个数组存储每列的数字,再用3个数组存储3个小格的数字(这3个数组每遍历完三行进行一次清空);遍历的同时判断新发现的数字在对应的行、列、3*3小格里是否已经存在,存在的话直接返回False。 ...
分类:
其他好文 时间:
2020-05-02 22:32:56
阅读次数:
71
#include<bits/stdc++.h> using namespace std; #define int long long const int maxn = 110; int k, m; int a[maxn], v[maxn][maxn]; int ans; void dfs(int p ...
分类:
其他好文 时间:
2020-05-02 16:38:49
阅读次数:
44
dfs,thread,python3,defaultdict,换根dp Counter,元组map 捕获异常 数组排序翻转切片 bfs accumulate 二维数组读入,math库调用 字符串 counter数组 bisect(lower_bound upper_bound) 列表推导式 dfs, ...
分类:
编程语言 时间:
2020-05-02 14:33:59
阅读次数:
82
前置芝士: dfs,强连通分量 一般的k-sat问题就是给你n个变量$a_i$,每个变量有k个取值,然后给你一堆条件让你求出满足所有条件的一组解。 而当k>2时已经被证明为NP完全问题,没有多项式复杂度的解法(只能暴搜),故我们只考虑2-sat问题。 2-sat问题就是每个变量只有两种取值(当做0和 ...
分类:
其他好文 时间:
2020-05-01 16:46:39
阅读次数:
67
http://www.tzcoder.cn/acmhome/problemdetail.do?method=showdetail&id=4038 用bfs找出最短路,同时更新到该点的路径条数ans 用ans[i][j][f]表示i,j点f方向 f用0,1,2,3表示4个方向 同时和dx,dy数组联系 ...
分类:
其他好文 时间:
2020-05-01 15:05:30
阅读次数:
55
题目大意: 给定你一个由n个节点,m条边组成的图,再告诉你3个节点a,b,c和一个大小为m的数组p, 让你将p[i]赋值给每条边,使得a->b->c的路径长度最短。 链接:https://codeforces.com/contest/1343/problem/E 思路: 因为要使路径长度最短,所以边 ...
分类:
其他好文 时间:
2020-05-01 10:19:19
阅读次数:
53
介绍: 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与 ...
分类:
编程语言 时间:
2020-04-30 21:41:07
阅读次数:
75
import java.util.*; public class Main { static int ans; static int num[]; public static void main(String args[]) { Scanner scan = new Scanner(System.i ...
分类:
移动开发 时间:
2020-04-30 19:18:28
阅读次数:
65
给定一个可包含重复数字的序列,返回所有不重复的全排列 这题与上题的全排列问题类似,问题在于如何将重复序列排除在外。 这里就需要剪枝思想,即去掉多余的子树。 我们先看图,令nums=[1,1`,2] 图中可以看出,[1 ]节点选择子节点时与[1]节点选择时一致,故应该去除。类推。 再看如何判断剪枝: ...
分类:
其他好文 时间:
2020-04-30 13:58:16
阅读次数:
54