Convex hull trick算法介绍

http://www.rockzh.com/archives/57

2016-03-08 16:20:50

阅读数 504

评论数 0

HDU 2859 Phalanx(动态规划)

dp[i][j]表示以点i、j为左下角的最大对称子矩阵长度。 #include #include #include #include #include #include using namespace std; typedef long long LL; const int maxn=1010;...

2015-12-22 19:38:30

阅读数 203

评论数 0

后缀数组——罗穗骞倍增算法代码详解

首先解释一下用到的几个数组。 数组sa:构造完成前表示关键字数组,下标表示名次,值表示关键字的首字符位置,值相同的时候名次根据在原串中相对位置的先后决定;构造完成后表示后缀数组,下标表示名次,值表示后缀的首字符位置。 数组x:表示rank数组,下标表示关键字的位置,值表示关键字大小(rank)...

2015-12-19 10:28:15

阅读数 2890

评论数 1

HDU 3681 Prison Break(BFS+二分+状态压缩DP)

用BFS处理每个点之间的距离,二分答案,用状态DP判断是否能够可以。 dp[i][j]表示当前位于i点已经遍历集合j时的最大能量值。 #include #include #include #include #include #include #include #include ...

2015-12-03 22:13:11

阅读数 177

评论数 0

HDU 4562 守护雅典娜(动态规划)

答案分为三种只能只有包含雅典娜的塔,只有包含怪兽的塔,包含雅典娜和怪兽的塔的和。 使用dp可以分别计算包含雅典娜、怪兽的最厚塔层数,过程类似LIS。枚举这两种情况的塔数,求和计算第三种情况。 #include #include #include #include #includ...

2015-11-26 20:41:00

阅读数 244

评论数 0

使用SecureCRT远程登录Linux Ubuntu

在使用SecureCRT远程登录Ubuntu时会出现,The remote system refused the connection. 这是因为SSH服务没有启动。 安装SSH-Server。 sudo apt-get install openssh-server 启动SSH-Serve...

2015-11-25 13:21:38

阅读数 264

评论数 0

HDU 4939 Stupid Tower Defense(贪心+动态规划)

可以发现对于最优解红塔一定是放在最后的。对于蓝塔和绿塔进行dp,dp[i][j]表示在长度为n的路径上已经安放i个绿塔和j个蓝塔可造成的最大伤害,然后进行转移。最优解一定是路径上放满了塔,这样n-i-j得到的就是红塔的数量,这样比较得到最大值即可。 #include #include #in...

2015-11-08 19:00:20

阅读数 183

评论数 0

HDU 1561 The more, The Better(树形DP)

经典的树形DP。 先将多叉树变成二叉树,然后进行DP。 dp[i][j]表示以i为根,可选j个时候的最优解。 #include #include #include #include #include using namespace std; const int maxn=205; ...

2015-11-08 15:44:40

阅读数 176

评论数 0

HDU 3534 Tree(dfs统计树的直径的数量)

求树的直径用dfs可做,每次返回以当前结点为终点、某个叶子为起点的最长路径长度,同时找最大的两条路径求和更新最优解。 具体分有多条同样长的最长路径、有一条最长路径和一条或多条次长路径、只有一条路径、叶子结点这几种情况。O(n)可做。 #include #include #include ...

2015-11-08 14:39:24

阅读数 209

评论数 0

USACO Section 3.1 Humble Numbers

用一个数组p来维护每个素数要拓展的丑数在数组中的位置,每次比较得到最小的数字加入到丑数数组中。 #include #include #include #include #include #include using namespace std; typedef long long LL;...

2015-11-06 19:33:32

阅读数 146

评论数 0

USACO Section 3.1 Score Inflation(完全背包)

完全背包。模版题,可以用滚动数组优化。 #include #include #include #include #include #include using namespace std; typedef long long LL; /* ID: kkkwjx1 PROG: inflate LA...

2015-11-06 14:16:15

阅读数 142

评论数 0

USACO Section 3.1 Agri-Net(最小生成树Prime算法)

最小生成树,模版题。 #include #include #include #include #include #include using namespace std; typedef long long LL; /* ID: kkkwjx1 PROG: agrinet LANG: C++ *...

2015-11-06 14:06:43

阅读数 220

评论数 0

HDU 1712 ACboy needs your help(分组背包)

模版题,分组背包。 dp[i][j]=max(dp[i][j],cost[i][k]+dp[i-1][j-k]) #include #include #include #include #include #include using namespace std; typedef long ...

2015-11-05 17:48:24

阅读数 164

评论数 0

HDU 5525 Product(数论)

首先将1-n每个数分解质因数,变成p1^x1*p2^x2...pi^xi..pm^xm的形式,其中pi表示质因数,ai表示质因数出现次数。考虑每个质因数pi对最后答案的贡献,由约数个数定理知除pi以外的质因数有(x1+1)*(x2+1)*...(xi-1+1)*(xi+1+1)..(xm+1)个,...

2015-11-05 13:41:31

阅读数 287

评论数 0

USACO Section 2.4 Fractions to Decimals

首先答案不可能是无限不循环小数,因为无限不循环小数不能用分数表示。 之所以出现循环是因为余数出现了重复,只需要用数组记录余数出现的位置,用判重来结束循环即可。 #include #include #include #include #include #include #includ...

2015-11-03 21:29:39

阅读数 190

评论数 0

USACO Section 2.4 Cow Tours (Floyd+并查集)

用floyd计算每个点可达的最短距离,然后统计每个点可达距离的最大长度。然后用并查集计算每个点所属的集合,枚举两个不同集合a、b里的两个点i、j,从所有的max {edge[a],edge[b],distance(i,j)+l(i)+l(j)},其中edge[x]表示集合x的直径,distanc...

2015-11-03 20:59:36

阅读数 192

评论数 0

HDU 5524 Subtrees(DFS)

分析可以发现所有子树的种数不会太大可以直接暴力统计。 递归处理当前的树,首先记录当前树的大小,然后对于它的两颗子树,找到其中那颗满二叉树暴力统计子树种数,然后递归处理另一颗子树。注意统计判重。 找满二叉树的过程可以通过枚举树的高度,然后判断另一颗树的高度与它相差是否在1之内。 #includ...

2015-11-01 10:27:45

阅读数 472

评论数 0

HDU 5523 Game

简单题。 如果不止1个柱子而且s和t相同则无解。其他情况下如果s和t分别在两边则是0,如果s在一头或s在中间但是s和t相邻则只需要1,其他情况下为2。 #include #include #include #include #include #include #include u...

2015-11-01 10:23:27

阅读数 434

评论数 0

HDU 4832 Chess (动态规划+组合数学)

关键点是行和列是独立的。 移动K步可以视为x方向移动i步(y向不动),y方向移动K-i步(x向不动)。分别预处理出x和y方向上移动i和K-i步时的种数,然后使用排列组合枚举i。相乘即可。 注意,计算组合数时可能使用了除法这将使模运算出错。 #include #include #include...

2015-10-31 16:15:36

阅读数 183

评论数 0

UVa 1400 "Ray, Pass me the dishes!"(区间最大连续数组和)

训练指南上的例题。 可以使用Splay解决,维护区间最大连续值即可,在维护输出要求这里比较复杂,需要考虑清楚,L最小和R最小。 注意要用longlong。 #include #include #include #include #include #include #define ...

2015-10-31 13:34:12

阅读数 233

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭