Path Sum
Total Accepted: 20393 Total
Submissions: 66674My Submissions
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along...
分类:
其他好文 时间:
2014-08-31 21:33:41
阅读次数:
284
题目:相当于有一个m行n列的格子矩阵,每个格子要么@要么*,两个格子是连通的当且仅当这两个格子都是@、且一个格子和另一个是水平、垂直或对角线相邻,即一个格子在另一个格子的周围八个格子范围内。最后求连通块的个数。
思路:和书上例题黑白格子一样,只是一个01,一个*@,稍微改一下就可以了。即通过dfs(x,y)递归地深度优先遍历。
Code:
#include
#include
#define...
分类:
其他好文 时间:
2014-08-31 21:30:21
阅读次数:
259
Path Sum II
Total Accepted: 18489 Total
Submissions: 68323My Submissions
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For exampl...
分类:
其他好文 时间:
2014-08-31 21:28:11
阅读次数:
180
题目链接题意 :每一颗子弹破坏了三个邻近的阳台。(第N个阳台是与第1个相邻)射击后后的生存的怪物都对主角造成伤害- 如此,直到所有的怪物被消灭,求怎样射击才能受到最少伤害。思路 : 状压,数据不是很大,可以爆一爆,或者DFS下去就行,枚举每一种状态。 1 //1152 2 #include 3 #....
分类:
其他好文 时间:
2014-08-31 21:21:51
阅读次数:
236
本以为是个树形DP,按照树形DP的方法在那里dfs,结果WA到死,因为它存在有向环,不是树,凡是存在环的情况切记不要用树形的方法去做题目的突破点在于将边排完序之后,用点表示以该点为边结尾的最大长度,因为是按边排序从小到大加边,所以后面加的边肯定比前面的小。要注意相同边的情况,要搞个缓冲,因为相同边的...
分类:
其他好文 时间:
2014-08-31 10:30:31
阅读次数:
216
题目大意:
有一棵树,对这个树有两种操作:1:表示为(1 x val),在编号为x的节点上加上val,然后给x节点的每个儿子加上- val,再给每个儿子的儿子加上-(- val),一直加到没有儿子为止。2:表示为(2 x)查询x节点上的值。
做法:
由于每次修改操作修改的并不是一个值,而是很多值,那我们将该题抽象成区间修改,点查询的问题。那怎么抽象呢?可以明白的是,每次操作虽然有加有减,但是...
分类:
其他好文 时间:
2014-08-31 09:16:01
阅读次数:
235
题目链接:点击打开链接
题意:
给了一棵树
每个点有点权
操作1 : 1 u 表示询问 gcd(Valueof(u), Valueof(v) ) != 1 的所有v 点中深度最大的点
[ v是 path(u, root); && v!=u ]
操作2 : 2 u w 修改点权
因为操作2的个数不超过50个,所以每次更新点权后都把所有答案预处理一遍。这样回答是O(1...
分类:
其他好文 时间:
2014-08-30 21:49:00
阅读次数:
404
思路:这题棋盘DP或者搜索,或者暴力都可以,因为棋盘比较小。
这里用的双向dfs。
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) me...
分类:
其他好文 时间:
2014-08-30 21:45:50
阅读次数:
340
例如“abc”输出a,b,c,ab,ac,bc,abc#includevoid DFS(char str[],char ss[],int pos,int cnt,int n){ if(n==pos) { ss[cnt]='\0'; if(cnt!=0) pri...
分类:
其他好文 时间:
2014-08-30 19:00:59
阅读次数:
181
判断一个图是不是二分图
用染色法,二分图是这样一个图: 有两顶点集且图中每条边的的两个顶点分别位于两个顶点集中,每个顶点集中没有边相连接!
判断二分图的常见方法:开始对任意一未染色的顶点染色,之后判断其相邻的顶点中,若未染色则将其染上和相邻顶点不同的颜色, 若已经染色且颜色和相邻顶点的颜色相同则说明不是二分图,若颜色不同则继续判断,
每次用bfs/dfs遍历都可。
二分图最大匹...
分类:
其他好文 时间:
2014-08-30 16:30:39
阅读次数:
167