自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 hdu 2829 dp+四边形不等式优化

用w[i][j]表示i到j之间没有边毁掉的费用。有一种很好证明w[i][j]是否满足四边形不等式的条件. 若(w[i+1][j]-w[i][j])是关于j的减函数,就是满足条件的。可以证明这里的w[i][j]是瞒住条件的。#include #include #include #include #include #include #include #include #

2015-06-29 18:32:42 609

原创 [HNOI2008]玩具装箱toy(dp+斜率优化)

斜率优化问题一般都是决策单调问题。对于这题可以证明单调决策。令sum[i]=sigma(c [k] ) 1 首先我们可以写出转移方程  dp[i] = min( dp[j] + (f[i]-f[j]-c)^2 )  。令决策j1 dp[j2]+(f[i]-f[j2]-c)^2可以得带 ((dp[j2]+f[j2]^2)-(dp[j1]+f[j1]^2)  )/(f[j2]-f[j1

2015-06-29 14:17:00 736

原创 最长公共子序列的另一类优化方法

最长公共子序列(LCS)是一个很经典的问题。  给2个字符串s1,s2,求LCS(s1,s2). 用d[i][j]]表示s1[1-i]和是s2[1-j]的LCS. if(s1[i]==s2[j]) d[i][j]=d[i-1][j-1]+1 else  d[i][j]=max(d[i-1][j],d[I][j-1]).这是一个1D/1D的动态规划问题,复查度为O(n*n)。 考虑如下特

2015-06-27 18:32:30 593

原创 bzoj 1010 (单调决策优化)

可以很好的证明单调决策性质。用   记sum[i]=sigma(C[1],C[2].....C[k]);f[i]=sum[i]+i;  c=l-1;有转移dp[i]=min( dp[j]+(f[i]-f[jk]-c)^2);  假死 有2个决策j#include #include #include #include #include #include #include #incl

2015-06-27 13:35:26 1010

原创 神龙的难题 (FZU 1686)

课重复覆盖的模板#include #include#include#include#include#include#includeusing namespace std;const int inf = 0x3fffffff;const int maxn = 15*15+10;const int maxnode = maxn*maxn;struct DLX{ in

2015-06-23 21:22:21 587

原创 scu oj 4439 : Vertex Cover(2015年四川省程序ACM设计竞赛D题 )

前面用搜索写了这题,其实这题也可以用DLX写的。#include #include#include#include#include#include#include#include using namespace std;const int maxn = 510;const int maxnode= 510*510*10;int U[maxnode],D[maxnode]

2015-06-23 21:20:02 1076

原创 Sudoku (DLX 算法)

用DLX来解决16*16 数独问题。#include #include#include#include#include#include#includeusing namespace std;const int maxn = 2010;const int maxnode = 20010;const int maxr = 5010;struct DLX{ int n,s

2015-06-22 19:37:55 776

原创 poj 3836 P2P File Sharing System

这题是一个模拟p2p的网络的一个题目。题意比较繁琐,只要看懂课,细心一点就很好AC了。直接上代码了,存模拟。#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int inf = 0x3fffffff;cons

2015-06-21 15:50:25 920

原创 HDU 2424-Gary's Calculator

表达式求值。 手动模拟吧。可以用站维护,这里我没用到栈来写。注意不能gets()  输入有换行。 还要用到高精度,套一个模板。#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace st

2015-06-21 15:47:05 700

原创 HDU 2940 Hex Factorial (简单高精度)

题意:求一n!的16进制表示的0的个数。高精度模拟,或者直接java即可。这里可以给一个高精度模板。#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const in

2015-06-21 15:44:05 833

原创 hdu 5274 数链剖分 /dfs+数状数组

注意 第一:点权为0.。。。  第 2:杭电扩展啊。。。  #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include#include#include#include#includeusing namespace std;const int mmax = 100010;const int inf

2015-06-21 08:25:14 823 1

原创 scu oj 4439 : Vertex Cover(2015年四川省程序ACM设计竞赛D题 )

一般图的最小点覆盖问题是是一个npc问题,目前哈没有比较好的多项式的算法。但是这题有一点特殊的地方,每条边必定包含前面30个点的的一个,所以这题可以枚举钱30个点的选和不选的状态,后面的点对应的状态就唯一了。    所以这题就是  dfs+可行性减枝和答案最优减枝。#include#include#include#include#include#include#include#i

2015-06-18 14:23:14 2305 5

原创 scu oj 4437: Carries (2015年四川省程序ACM设计竞赛B题目 )

其实这题只要想到这个结论就简单了。如果2个数a,b的第k位相加要进位,那么必须满足(a%10^k+b%10^k)>=10^k  .有了这个结论就很简单了,枚举没一位就好了。#include#include#include#include#include#include#include#include#include#includeusing namespace std;c

2015-06-16 13:24:02 2332 1

原创 scu oj 4445 Right turn 2015年四川省赛J题(模拟题)

一般的模拟题。对于出现过的每一个x建立一个set 集合,对于y也如此。然后查找要走到哪个点即可,主要要对状态记录,判断是否无线循环,否者出现无线循环的情况,就tle了。#include#include#include#include#include#include#include#include#include#includeusing namespace std;con

2015-06-15 17:21:52 1687 2

原创 scu oj 4441 Necklace 2015年四川省赛F题(dp+数据结构)

思路:y的可能性很少,只有10种类,枚举y的位子,然后X和Z分别是一个上升和下降序列,可以分处理处正向递减,逆向递增的最大权值和。然后枚举断点求最大值即可。可以用数状数组处理。#include#include#include#include#include#include#include#include#includeusing namespace std;const

2015-06-15 17:20:12 1532

原创 上海邀请赛 A题目 HDU 5236(dp)

先求出没有ctrl+s的时候构造长度为i的期望f[i] 。然后枚举保存的次数,求出最小即可。#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int mmax

2015-06-12 15:24:00 936

原创 swust oj 2516 教练我想学算术 dp+组合计数

#include#include#include#include#include#include#include#include#include//#define debugusing namespace std;const int inf = 0x3fffffff;const int mod = 1000000007;const int mmax = 1000010;

2015-06-08 20:42:00 691

原创 hdu 4419 矩形面积并

#include #include#include#include#include#includeusing namespace std;typedef __int64 LL;const int mmax = 20010;mapq;struct Rect{ LL x1,x2; LL y1,y2; char Col[2]; void read()

2015-06-05 21:00:41 576

原创 矩形面积并 (hdu1542)

#include #include#include#include#includeusing namespace std;const int mmax = 210;const double eps = 1e-8;int sgn(double x){ if(fabs(x)<eps) return 0; return x<0?-1:1;}struc

2015-06-04 21:41:23 505

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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