- 博客(22)
- 收藏
- 关注
原创 POJ 2492
带权并查集 需要两个数组,fa[]就是正常的并查集父亲数组 rela[]为当前点与其在并查集中的父亲的关系,0为同性,1为异性 中间的异或操作就是判断两个点的关系是什么fa[A] fa[B] x————>y | | | | |
2017-05-02 20:50:25
374
原创 USACO 1.3 Wormholes
USACO 1.3 Wormholes 这题卡了我n久时间。。。Solution:按照坐标y值排序,同时按x从小到大排序连边: 纵坐标相同的点从左至右连边;eg: dot1(1,3)dot2(3,3)dot3(5,3)连dot1->dot2,dot2->3DFS选择不同的连边组合,边数达到n/2时判断并结束输出结果/*ID: zzzc181PROG: wormholeLANG:
2017-03-24 10:58:10
337
原创 g++ gdb
g++ gdb这里使用cmd进行编译与调试环境变量 右键计算机图标,点属性->高级->环境变量->系统变量->Path 加上C:\Program Files\Dev-Cpp\MinGW32\bin g++ gdb 就可用了compile g++ -g -o xds.exe xds.cpp g++ 就是g++ -g 调试选项,gdb要用 -o 编译选项 x
2017-03-18 21:34:59
457
原创 Vim
Vim 打算试一试Vim到底怎么样为了能看,第一步先调了调字体字号以及背景 然而每次关掉vim就要重新设置 怎么办呢? 打开C:\Program Files\Vim\ _vimrc 里面原来应该是这样的:source $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswinset diffexpr=M
2017-03-18 21:20:33
1890
原创 分层图 Illegal Motor
分层图 作用一个很好的例子思路SPFA本题不好堆优化Dijsktra好STD分层图 作用 分层图可以处理从图中选取k条边使其边权变为0,求最短路一个很好的例子Illegal Motor (Motor.c/cpp/pas)Description 在你的强力援助下,PCY 成功完成了之前的所有任务,他觉得,现在正是出去浪的大好时光。于是,他来到高速公路上,找到一辆摩的前往几千公里以
2017-03-17 08:22:23
597
原创 [USACO1.2]方块转换 Transformations
[USACO1.2]方块转换 Transformations 这题写的好长。。。。 可以放到坐标系里考虑 eg:(x,y)和(-x,-y)中心对称,放到数组里就是(-x+n+1,-y+n+1)#include<cstdio>#include<cstring>using namespace std;int n;char s1[30][30],s2[30][30];bool pl
2017-03-10 11:19:47
447
原创 二叉排序树
二叉树( binary .cpp/c/pas)【问题描述】二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。完全二叉树:只有最下面的两层结点度能够小于2,并且最下面一层的结点都集中在该层最左边的若干
2017-03-05 09:20:36
485
原创 最小比例生成树 小澳的葫芦
最小比例生成树 最小比例生成树:指路径总长与经过点数比值的最小值小澳的葫芦(calabash.cpp/c/pas )【题目描述 】小澳最喜欢的歌曲就是《葫芦娃》。 一日表演唱歌,他尽了洪荒之力,唱响心中圣歌。 随之,小澳进入了葫芦世界。 葫芦世界有 n 个葫芦,标号为 1~ n。n 个葫芦由 m 条藤连接,每条藤连接了两个葫芦,这些藤构成了一张有向无环图。小澳爬过每条藤都会消耗一定的能量
2017-02-27 17:43:47
477
原创 四方定理 动态规划
四方定理含义:“四方定理”是数论中著名的一个定理,指所有自然数至多只要用四个数的平方和就可以表示。题目链接 如果用暴力枚举所有情况,需要费尽心思优化才能不超时这里采用动态规划,可以轻松解决 先预处理,用f[i][j]表示i用j个完全平方数相加得到的方案数。 对于每个数n,输出f[n][1]+f[n][2]+f[n][3]+f[n][4]即可。 时间复杂度O(32768*181*4)
2017-02-26 10:16:42
902
原创 矩阵快速幂 小澳的坐标系
矩阵快速幂 矩阵快速幂一般是为了求解递推问题 eg:菲波那切数列关于矩阵快速幂,可以参见这里AND这里2. 小澳的 坐标系(coordinate.cpp/c/pas )【题目描述】小澳者表也,数学者景也,表动则景随矣。小澳不喜欢数学,可数学却待小澳如初恋,小澳睡觉的时候也不放过。小澳的梦境中出现了一个平面直角坐标系,自原点,向四方无限延伸。小澳在坐标系的 原点,他可以 向上、向左
2017-02-25 15:04:47
560
原创 Codeforces Round #398 (Div. 2) C. Garland
Codeforces Round #398 (Div. 2)C. Garland题目链接题目大意: 给一棵树以及它的根节点,每个节点存一个值,题目中这个值是温度,Dima拿住这个根节点,他想把整个树剪成三段,使得三段上的温度和相等。(拿住根节点是想让根节点在中间的一段) 直接从根节点开始DFS,每次更新子树上的温度和,如果温度和==总和/3,记录答案,除去该子树,tree[x]=0(以
2017-02-20 17:34:03
345
原创 最大子段和
最大子段和 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5
2017-02-18 16:19:58
345
原创 水 water 积水问题 蓄水问题
水(water )【题目描述】 有一块矩形土地被划分成 n×m 个正方形小块。这些小块高低不平,每一小块都有自己的高度。水流可以由任意一块地流向周围四个方向的四块地中,但是不能直接流入对角相连的小块中。 一场大雨后,由于地势高低不同,许多地方都积存了不少降水。假如你已经知道这块土地的详细信息,你能求出每个小块的积水高度吗? 注意:假设矩形地外围的高度为 0。【输入格式】
2017-02-18 11:02:19
2000
原创 priority_queue
优先队列模板其实就是大根堆和小根堆,代码中大根堆为big,小根堆为small;#include<cstdio>#include<queue>using namespace std;priority_queue<int> big;//大根堆 priority_queue<int,vector<int>,greater<int> > small;//小根堆 int main(){ int
2017-02-18 08:21:50
326
原创 [HAOI2010]软件安装
Tarjan+树形DP[HAOI2010]软件安装 根据题意,如果依赖关系构成一个环,那只有环里所有软件都安装才能使其价值不为0;在入度为0的点之上加一个点,这样可以一下DP完然后用树状DP解决,注意到如果下面的点的占用空间超过m,其价值在DP数组中直接化为0;其实是一个树上的01背包#include<iostream>#include<cstdio>#include<stack>
2017-02-17 17:12:12
367
原创 讲题(1st)(1)
Tarjan算法强连通分量(scc) 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected component)。Tarjan是用来求scc的 Tarjan算法是基于对图深度优先搜索的算法,每个强
2017-02-16 16:32:36
332
原创 LCA两种方法
LCALCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先。模板题倍增法(在线)anc[i][j]表示第i个点的2^j的祖先的标号整个过程就是两个点往上跳到同一深度,再一起往上跳找到LCA#include<cstdio>#include<cmath>using namespace std;int n,m,root,anc
2017-02-12 09:35:23
779
原创 树状数组求逆序对
逆序对设 A 为一个有 n 个数字的有序集 (n>1),其中所有数字各不相同。如果存在正整数 i, j 使得 1 ≤ i < j ≤ n 而且 A[i] > A[j],则 <A[i], A[j]> 这个有序对称为 A 的一个逆序对,也称作逆序数。树状数组树状数组(Binary Indexed Tree(BIT), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用
2017-02-12 00:29:38
531
原创 NOIP2013 DAY1 T3
题目链接Kruskal+LCA求解Kruskal求最大生成树LCA查找两点间最小权值上代码#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define MIN(a,b) a<b?a:busing namespace std;int n,m,fa[500000],khead[500000],hea
2017-02-10 18:43:20
288
原创 NOIP模拟 星际导航 nav
星际导航(nav.pas/c/cpp/in/out,1s,64MB)题目描述sideman做好了回到Gliese 星球的硬件准备,但是sideman的导航系统还没有完全设计好。为了方便起见,我们可以认为宇宙是一张有N 个顶点和M 条边的带权无向图,顶点表示各个星系,两个星系之间有边就表示两个星系之间可以直航,而边权则是航行的危险程度。sideman 现在想把危险程度降到最小,具体地来说,就是对于若
2017-02-10 18:09:11
389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人