这个题目要求把一个无向连通图里面的所有边,分成 两个一对,只能出现一次,而且一对边必须是连在一起的,点可以复用 但边不可复用可解条件很易得,因为图是连通的,只要边数为偶数即可。一开始我借着做欧拉回路的方法,直接DFS暴搜,沿路做标记,遇到未标记的连续两条边 输出即可不过 事实证明这个算法是错的暴搜能...
分类:
其他好文 时间:
2014-07-07 09:20:18
阅读次数:
158
class Solution {public: vector restoreIpAddresses(string s) { vector ips; vector ip; dfs(s, 0, ip, ips); return ips; ...
分类:
其他好文 时间:
2014-07-06 16:03:21
阅读次数:
276
题目意思:给一颗n个节点的树,每个节点有一个值要么是0要么是1,改变某个节点的值时,它的儿子不变,它儿子的儿子翻转,它儿子的儿子的儿子不变,如此类推。给定各个节点的目标值,求最少的翻转次数,使得达到要求。题解思路:贪心+Dfs判断当前节点的值,与目标值比较1.当前节点值由其上上一个节点值是否需要改变...
分类:
其他好文 时间:
2014-07-06 12:57:48
阅读次数:
150
by:白书
#define M 10000
int pre[M],dfs_clock,iscut[M],low[M],bcc_cnt,bccno[M];
vectorG[M],bcc[M];
struct Edge
{
int u,v;
Edge(int from,int to)
{
u=from;
v=to;
}
};
stack S;
int dfs(int u,int fa...
分类:
其他好文 时间:
2014-07-06 11:29:32
阅读次数:
198
hdu1579 Function Run Fun(深搜+记忆化)...
分类:
其他好文 时间:
2014-07-06 09:44:41
阅读次数:
216
hdu2369 Broken Keyboard(类似dfs)...
分类:
其他好文 时间:
2014-07-05 10:45:50
阅读次数:
224
这道题和poj的拯救少林神棍是一样的题目。
要用给出的小棍凑成等长的棍子,求能凑成的棍子的最小长度。
直观的包里思路就是枚举所有可能的长度,然后不停的测试小棍组合,先把小棍加入组合,然后不合适就推翻这一根小棍,再测试下一个小棍,直到推翻所有的小棍。
在枚举的时候,我们只需从最长的小棍长,枚举到小棍总长的一半就行了。然后如果再不符合的话,那么就说明所有小棍只能组合成一根棍子了。
我原先看过关于poj上拯救少林神棍这道题目的详细讲解。一个DFS搜索题,这里DFS共有四种剪枝方案:...
分类:
其他好文 时间:
2014-07-03 17:29:03
阅读次数:
161
给你一个迷宫一个起点和一个终点,问你能否走T步刚好到达终点,不能重复走,并且只有4个方向显然这是一个dfs,虽然N最大只有7,但是裸的dfs复杂度还是太高了,因此要进行一些剪枝1.如果T比图上所有的可走点还要大,肯定是不可行的。这个可以避免dfs整张图。2.奇偶剪枝,有性质当前点(x,y)到目标点(...
分类:
其他好文 时间:
2014-07-02 17:42:47
阅读次数:
195
hdu1501&&poj2192 Zipper(DFS)...
分类:
其他好文 时间:
2014-07-02 15:24:45
阅读次数:
226
题目:11198 - Dancing Digits
题目大意:每组数据给出8个数字,可能正可能负。要求最后将这8个数字按照数字绝对值从小到大的排序。排序的规则是让某个数字a邀请另一个数字b跳舞,这样a就可以插到b的左边或是右边,a能邀请b跳舞,则a* b
解题思路:这题一开始竟然想着dfs,但是后面发现,这样的判断树可以是无限大,因为可以a邀请完b,然后b在邀请a,这样一来一...
分类:
其他好文 时间:
2014-07-02 11:24:12
阅读次数:
160