自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luke2834的专栏

蒟蒻练级中。。。

  • 博客(14)
  • 收藏
  • 关注

原创 hdu1011 树形背包

#include #include #include #include using namespace std;const int maxn = 105;int n,m;int dp[maxn][maxn];int w[maxn];int v[maxn];struct Edge{ int v,next;}edge[maxn<<1];int g[maxn];void ad

2015-04-30 01:10:42 366

原创 hdu1561 树形背包初探

Problem DescriptionACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物。但由于地理位置原因,有些城堡不能直接攻克,要攻克这些城堡必须先攻克其他某一个特定的城堡。你能帮ACboy算出要获得尽量多的宝物应该攻克哪M个城堡吗? Input每个测试实例首先包括2个

2015-04-29 22:02:32 427

原创 POJ2823 滑动窗口 单调队列模板题 第一次用了发函数指针

题意 有一个n长的序列,用k长的窗口在上面滑动,去每次窗口中最小和最大的数。思路 使用单调队列,思路就是,维护这个队列是单调的。以取最小元素为例,若窗口内左边元素>=右边元素,则左边边元素失去保留的意义。因此我们的单调队列是递增的。用STL的deque实现单调队列。#include #include #include #include using namespace st

2015-04-29 16:59:53 632

原创 2015编程之美初赛1 hihoCoder1158 质数相关 树形DP

时间限制:2000ms单点时限:1000ms内存限制:256MB描述两个数a和 b (a输入第一行为一个数T,为数据组数。之后每组数据包含两行。第一行为N,为集合S的大小。第二行为N个整数,表示集合内的数。输出对于每组数据输出一行,形如"Case #X: Y"。X为数据编号,从1开始,Y为最大的子集的大小。数据范围1

2015-04-29 09:21:11 484 1

原创 hihoCoder1149 求回文子序列数 dp

描述给定字符串,求它的回文子序列个数。回文子序列反转字符顺序后仍然与原序列相同。例如字符串aba中,回文子序列为"a", "a", "aa", "b", "aba",共5个。内容相同位置不同的子序列算不同的子序列。输入第一行一个整数T,表示数据组数。之后是T组数据,每组数据为一行字符串。输出对于每组数据输出一行,格式为"Case #X: Y",X代表数据

2015-04-27 10:26:01 850

原创 hihoCoder1143 DP 斐波那契数列矩阵快速幂

题意 骨牌,一种古老的玩具。今天我们要研究的是骨牌的覆盖问题:我们有一个2xN(1≤N≤100,000,000)的长条形棋盘,然后用1x2的骨牌去覆盖整个棋盘。对于这个棋盘,一共有多少种不同的覆盖方法呢?举个例子,对于长度为1到3的棋盘,我们有下面几种覆盖方式:输入第1行:1个整数N。表示棋盘长度。1≤N≤100,000,000输出第1行

2015-04-24 08:05:23 621

原创 POJ3468 区间加,区间求和 线段树模板

好久没写线段树了,手有点生。。。更新的时候居然忘了更新sum集。。。最近要多练练线段树了。。。#include #include #include #include #include using namespace std;const int maxn = 100005;typedef long long ll;ll addv[maxn<<2];ll sumv[m

2015-04-12 08:55:02 578

原创 hdu3652 数位DP

#include #include #include #include using namespace std;const int maxlen = 11;int f[maxlen][10][2][13];int pow10(int x){ int ret = 1; for(int i=0;i<x;i++) ret *= 10; return ret;}voi

2015-04-08 11:09:11 374

原创 URAL 1057 数位DP

#include #include #include #include using namespace std;const int maxb = 11;const int maxk = 21;const int maxlen = 32;typedef unsigned int ui;const ui inf = ((ui)1<<(ui)31) - (ui)1;ui f[ma

2015-04-07 23:39:23 448

原创 hdu2089 初学数位dp

#include #include #include using namespace std;#define maxn 1000001#define maxlen 8int n,m;int f[maxlen][10];void yu(){ f[0][0] = 1; for(int i=1;i<maxlen;i++) { for(int j=0;j<=9;j++)

2015-04-06 12:29:57 398

原创 Uva11732 字典树的应用 邻接矩阵(或称左孩子,右兄弟法)保存字典树

题意 给你一些单词,给你一个字符串比较函数,所有单词比较字典序,问总比较的次数是多少。思路大体思路就是两个字符串,设公共前缀的长len,比较次数为2*len+1,若匹配成功则比较次数2*len+2.在字典树上保存,每个边经过的次数和每个节点在该节点结束的单词个数。边建树边计算。注意树很深,且单词数相对于树深较少,因此选择邻接矩阵保存字典树...(不这么做会被T死的......)

2015-04-05 21:59:59 658

原创 Uva1401 Trie树 + 简单dp

题意 给你m个短字符串和一个长串,问你长串拆分成由短串组成的方法数。思路 dp[i] 表示从i开始的长串后缀,可以用短串组成的方案数。dp[i] += dp[i+len(x)]  其中x是从i开始的长串后缀的前缀,这个前缀属于短串集合。初始条件dp[n] = 1.           用短串建立Trie树,用长串后缀去在字典树上匹配,找到满足条件的短串,更新dp注意:Trie树

2015-04-05 16:25:26 660

原创 POJ3181 dp递推关系小优化 高精度数模板 Java练习

题意 给你n和m,问你用1...m这些数,每种无限个,相互组合,形成求和为n的方案数。思路 dp(i,j) 表示组成求和为i,且选用的这些数最小的要>j方案数。   转移:dp(i,j) = dp(i,j+1) + dp(i-j,j)   注意最后数会超long long 用高精度数。C++:#include #include #include #include

2015-04-02 16:27:10 431

原创 POJ 1637 混合图欧拉回路判断 最大流模板

题意 给你一个混合图(有向边+无向边),判断是否存在欧拉回路思路 设d(i) = 出度(i) - 入度(i)。无向边随意定向,先并查集判连通,判di是否都为偶数,不是则不行。建图,加入s,t两点,对di>0的,s->i建边,最大流量为di/2,对dit建边,最大流量为-di/2。把随意定向的无向边,加入图中,最大流量为1.跑最大流,如果最后从s出的边都满流,则有欧拉回路。把那些流量为1的边

2015-04-01 16:29:41 415

空空如也

空空如也

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

TA关注的人

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