部分和问题
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。
输入首先,n和k,n表示数的个数,k表示数的和。
接着一行n个数。
(1
输出如果和恰好可以为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成,否则“NO”
样例输入...
分类:
其他好文 时间:
2014-06-15 15:04:47
阅读次数:
168
1.易知,树上两点的距离dis[u][v] = D[u]+D[v]-2*D[lca(u,v)] (D为节点到根节点的距离)2.某条边权值一旦改变,将会影响所有以v为根的子树上的节点到根节点的距离,很明显,DFS一遍后以v为根的子树在DFS序列中是连续的一段,及转化为区间更新问题,可以用树状数组。做法...
分类:
其他好文 时间:
2014-06-15 11:42:02
阅读次数:
213
思路:如果出现了一个强连通分量,那么走到这个点时一定会在强连通分量里的点全部走一遍,这样才能更大。所以我们首先用Tarjan跑一遍求出所有强连通分量,然后将强连通分量缩成点(用到栈)然后就变成了一个DAG(有向无环图),然后跑一遍DFS,不断加上遍历点的权值,如果到了网吧,则更新一遍答案,因为可以出...
分类:
其他好文 时间:
2014-06-15 11:38:55
阅读次数:
179
1、新建MR工程 2、设置工程名字 3、finish 4、使用navicate浏览,使用package太长了。 5、将hadoop例子下的WordCount复制过来,当然我自己打的,重新熟悉一下。 改改包名即可。 一个示例完成。6、linux下准备数据文件 >hadoop dfs -m...
分类:
其他好文 时间:
2014-06-15 10:51:31
阅读次数:
293
树的删边游戏。。由于题目的特殊性,我们只需计算环的边数值。若为偶环,则直接把环的根节点置0。若为奇环,则留下一条边与根结点相连,并那它们的SG置0;注意的是,两个点也可构成环,因为允许重边。所以,我们只需求点双连通分量,并判断分量中边的数量即可。然后DFS求树的SG值。 1 #include ...
分类:
其他好文 时间:
2014-06-15 10:43:23
阅读次数:
285
比较抽象吧,看到题时一点思想也没有,参考了别人的代码才知道。。。渣渣#include #include #include #include using namespace std;int map[10][10];int v[10];//作用重大int n,k,num;void dfs(int r,i...
分类:
其他好文 时间:
2014-06-15 07:18:09
阅读次数:
166
先碎碎念一段:~ 今天凌晨熬夜看个比赛... 桑巴军团 太让我失望了 华丽与你们无缘了。。。 竟然还要靠那个 不存在 的点球....... shame 今晚 有 荷兰打西班牙 虽然两个球队 都无爱 西班牙的踢球风格不喜欢..... 荷兰 橙色 还是很震撼的......... 他们这也算上届世界...
分类:
其他好文 时间:
2014-06-15 00:13:05
阅读次数:
234
刚刚A了那题之后 想到以前自己的OJ那边有个整数划分...同时 tz 那边也有个很相似的 我是做了TZ的再做了自己OJ的 一起 放上链接 touch me touch me其实 我们解决的问题 应该主要是 字典序的输出和不能重复的输出就是说 1+1+2出现了 那么1+2+1就不应该出现 -- ...
分类:
其他好文 时间:
2014-06-14 22:49:58
阅读次数:
273
点击打开链接
注意到20w条边,但是询问只有1w,所以有很多边是从头到尾不变的。
首先离线处理,将从未删除的边缩点,缩点后的图的点数不会超过2w,对于每一次add或者delete,直接dfs看是否能从a走到b,然后维护一个ans。
数据不强,不然这种复杂度起码要跑10s。。
#include
#include
#include
#include
using namespace std;
#...
分类:
其他好文 时间:
2014-06-14 12:08:22
阅读次数:
224
void dfs(int k,int target,vector& candidates,vector& sol,vector >& res){ if(target==0){ vector temp(sol); res.push_back(temp); return; }else if(tar...
分类:
其他好文 时间:
2014-06-14 10:31:07
阅读次数:
196