这道题就是给出字符串,字符串中的每一个字符代表一个数字,字符和数字是一一对应的,且保证不同的字符最多有十种,问给出的字符串是否存在映射使加法成立。描述的可能不是很清楚,详见原题 "LeetCode 1307 口算难题" 。这道题是dfs+剪枝,纯暴力时间开销很大,我的想法是从每个字符串的最低位依次枚 ...
分类:
其他好文 时间:
2020-05-03 23:07:03
阅读次数:
140
1 graph = { 2 'A':['B','C'], 3 'B':['A','C','D'], 4 'C':['A','B','D','E'], 5 'D':['B','C','E','F'], 6 'E':['C','D'], 7 'F':['D ...
分类:
其他好文 时间:
2020-05-03 18:19:06
阅读次数:
48
题目: 解答: 方法:深度优先搜索 思路和算法: 首先,让我们找出给定的两个树的叶值序列。之后,我们可以比较它们,看看它们是否相等。 要找出树的叶值序列,我们可以使用深度优先搜索。如果结点是叶子,那么 dfs 函数会写入结点的值,然后递归地探索每个子结点。这可以保证按从左到右的顺序访问每片叶子,因为 ...
分类:
其他好文 时间:
2020-05-03 16:51:37
阅读次数:
50
题目: 解答: 从根节点开始遍历,每向下一个节点,我们可以把父节点传入的值左移一位并或上当前节点的值。 int newval = val << 1 | node->val; 这样我们就得到了一个从根节点到当前节点表示的数值。接下来我们要做的只是判断一个节点是不是叶子节点,如果是的话就累加,否则继续。 ...
分类:
其他好文 时间:
2020-05-03 16:34:47
阅读次数:
89
不得不复习一下网络流了,先复习最大流模板吧 最主要的就是dfs和bfs过程吧 bfs是为了分层和判断是否需要继续 显然对于一个图,分层之后,对于任一一边,起点要么加一等于终点,要么终点小于起点 终点小于起点的显然已经计算过,不需要松弛() 判断是否需要继续增广实际上是看终点是否有depth就可以解决 ...
分类:
其他好文 时间:
2020-05-03 15:06:04
阅读次数:
70
前言 怀疑昨天晚上考试的时候没带脑子。。。 Solution 这道题可以直接暴力 $QwQ$。(我是来证一波时间复杂度的 我们注意到一个很重要的条件 $1 include using namespace std; int n, m, q, a[55], b[55], c[55], d[55], A[ ...
分类:
其他好文 时间:
2020-05-03 12:33:17
阅读次数:
54
不靠谱做法:随机化。 靠谱做法:观察发现当k<4时,答案一定处于一个关键矩形(min(r[i]),max(l[i]),min(y[i]),max(x[i]))的边界。 如果不处在边界上,显然可以把它移到边界。 当k<4时,由抽屉原理可得一定有一个关键点在某个定点。 搜索所有顶点,在搜索中可以删除这个 ...
分类:
其他好文 时间:
2020-05-03 10:47:19
阅读次数:
66
判断一个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