题意:可以理解为给你一个图,让你建一个树,然后从某根开始走,每走一条边就要消耗两边点权+边的边权。最后再加上一个根的点权,问最少花多少代价。
题解:改变边权然后做最小生成树。
#include
#include
#include
#include
#include
#define N 101000
#define inf 0x3f3f3f3f
using namespace std;...
分类:
其他好文 时间:
2015-01-02 14:44:44
阅读次数:
158
题意:
n、m,n个灯,m次操作
两种操作 0: 这段区间全部状态取反,初始全部为0
1: 询问这段区间有几个灯是亮的。
裸线段树,弱爆了。
#include
#include
#include
#include
#define N 101000
#define inf 0x3f3f3f3f
using namespace std;
struct Se...
分类:
其他好文 时间:
2015-01-02 14:44:29
阅读次数:
227
题解:
首先曼哈顿距离有些不好维护,但是它可以转化:
一个点本来的坐标是(x,y),那么可以转化成(x+y,x-y)
这样就人为构造出一种性质:1、2两点曼哈顿距离=max(|x1-x2|,|y1-y2|);
这样我们就可以排序单调搞掉一维,然后另一维只需要求前驱后继到该点的距离
满足则加并查集。
这个过程可以用权值线段树,也可以用平衡树。但是权值线段树还需要离散化,反...
分类:
其他好文 时间:
2015-01-02 12:21:22
阅读次数:
204
题解:
首先考虑dfs,但是看到答案的“64bit”就放弃了吧、
所以肯定是组合数、状压DP什么的,尤其是那个16,标准的状压数。
好吧,就是状压DP。
f[i][j]表示i是状压的01串表示哪个取了哪个没取,然后j是结尾字符,
虽然水,但是时间复杂度是可以过的。
代码:
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2015-01-02 12:17:27
阅读次数:
148
题意:输入n、m、p然后是n头牛塔坐标、m个草垛坐标,有p次指令机会。
每次指令可以向上下左右其中一种方向,让所有牛塔都移动一单位。
然后每经过草垛/牛塔次,就有1个权值。
求权值最大值及使权值最大的移动指令序列(字典序最小)。
题解:f[i][j][k]表示第i次,移动序列x轴坐标为j,y轴k,最大权值。
然后倒着做以保证字典序。
代码:
#include ...
分类:
其他好文 时间:
2015-01-01 17:23:43
阅读次数:
197
题意:有若干个颜色,每个颜色有若干头牛。
现在将牛进行配对,使得每对颜色都不一样,有SPJ。
题解:一旦某种颜色的牛数量占当前未配对牛总数最多,那么就要群起而攻之!
利用pq或者heap解决。
代码:
#include
#include
#include
#include
#include
#define N 101000
#define inf 0x3f3f3...
分类:
其他好文 时间:
2014-12-31 10:04:33
阅读次数:
166
【IT168专稿】随着移动互联网的发展,智能终端也越来越普及,围绕整个移动互联网的产业链产生了巨大的商机。有这么一家做移动数据传输服务的厂商,他们一直专注在移动领域,为运营商和零售商以及司法部门提供服务,它就是Cellebrite。 ▲Cellebrite亚太区新加坡有限公司总经理Dave Gold...
分类:
移动开发 时间:
2014-12-29 21:16:20
阅读次数:
302