自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

gnib即bing

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

原创 cf235,D Roman and Numbers(状态压缩dp)引发对dp中几种状态类型的思考

由本题思考到dp问题的几种状态类型:对于数据保存在数组a[n],求解关于这n个数的相关的最优解或计数问题.(1)线性dp,每个状态表示为一个下标i(或者说是一个固定起点的区间[0, i])(可以说是起点固定的区间dp)(2)区间dp,每个状态表示为一个区间[i, j];(枚举的过程考虑的整个区间的所有组合情况(区间组合的顺序)。)(3)状态压缩dp(集合上的dp),每个状态表示一个

2014-03-20 21:40:23 1376

原创 acm小结

参加acm竞赛是学生时间有意义的一件事,大学课余时间主要都花在这个上面。想想大学基本没出去玩过,别说东北其它地方了,连长春都没去过几个地方。现在看来还是自己懒着出去。今年参加两场区域赛,最后一次是西安赛区,结束后回家玩了2周时间才回到学校,大四没课了就是要随意一点。Acm竞赛过程中有过努力,也取得过一些进步。但也有感到有许多的不足,平淡的训练,竞赛难度加深,让自己越来越麻木,效率低下,体会

2015-02-18 23:59:36 886

原创 C++中字符编码类型转换 和 搜索词监听

#include #include #include #include #include using namespace std;/**1部分;一个URL编码和解码的C++类。用于将提取的utf-8转换成GB2312类型。学习连接:http://www.cnblogs.com/xiaoka/articles/2585189.html*/class strCoding{p

2014-11-24 15:59:30 859

原创 Codeforces Round #277 (Div. 2) D 计数问题,划分等价类

Codeforces Round #277 (Div. 2) D:

2014-11-17 20:29:41 795

原创 四边形优化dp

理解:http://blog.renren.com/share/263498909/1064362501http://www.cnblogs.com/ronaflx/archive/2011/03/30/1999764.htmlhttp://yomean.blog.163.com/blog/static/189420225201272864127683/

2014-10-14 18:26:06 1579

原创 c++ STL hash_map 使用

http://blog.csdn.net/ddkxddkx/article/details/6555754

2014-10-10 12:02:42 838

原创 hdu5044 Tree 树链剖分,点剖分,边剖分,非递归版

hdu5044 Tree 树链剖分,点剖分,边剖分,非递归版//#pragma warning (disable: 4786)//#pragma comment (linker, "/STACK:16777216")//#pragma comment(linker, "/STACK:60400000,60400000")//HEAD#include #include #i

2014-10-06 18:57:06 1212

原创 poj 3080 kmp模板

kmp模板//#pragma warning (disable: 4786)//#pragma comment (linker, "/STACK:16777216")//HEAD#include #include #include #include #include #include #include #include #include #include #inclu

2014-10-05 18:00:03 538

原创 bnu 12639 Cards (dp求期望)

bnu 12639 Cardsdp求期望区分 全局最优选择 和 当前最优选择。本题是当前最优选择。状态表示:double dp[16][16][16][16][5][5];bool vis[16][16][16][16][5][5];状态下参数:vector up, vector tmp。so,记忆化搜索 + 回溯//#pragma warning

2014-08-18 19:32:08 736

原创 bnu36907 Subpalindromes 字符串hash+线段树

bnu36907 Subpalindromes字符串hash+线段树题意:给一个字符串(1)将指定位置的字符改为c2)询问l-r的子串,是否是回文串。解法 :区间维护pl和pr,表示从左到右的hash和从右到左的hash,然后在up和query中合并区间,最后判断pl和pr是否相等即可。#include #include #include #include #inc

2014-08-11 19:29:30 930

原创 bnu36905 Nested Segments 离散化+线段树

bnu36905 Nested Segments离散化+线段树区间更新也可以用离散化+set(或双向链表)#include #include #include #include #include #include #include #include #include #include #include #include #include #include #

2014-08-11 19:20:51 635

原创 gets strtok sscanf 实现读入一行并分割字符

gets strtok sscanf#include#include#include using namespace std;char s[1000];int main(){ while (gets(s)) { char *p = strtok(s, " "); while (p) {

2014-08-06 22:49:21 1669

原创 求逆元 求组合数

求一个数的模p(一般为质数)的逆元,

2014-07-30 11:56:28 2849

原创 hdu 4858 项目管理 图分治 (复合算法)

hdu 4858 项目管理题意:给n(2种操作。操作1:点x的值,加addx。操作2:输出x点的临点的val和。分析:简单的优化操作1或操作2是不行的。法一:针对点的度将图中点分为两类点。对于度大于sqrt (n)的点为重点,对于小于等于sqrt(n)的点为轻点。 重点的个数小于sqrt(n)个。针对重点和轻点分别处理。法二:也可考虑每个点,将其临点分类

2014-07-28 22:58:55 1139

原创 hdu 4857 逃生 拓扑排序+优先队列,逆向处理

hdu4857 逃生题目是求拓扑排序,但不是按照字典序最小输出,而是要使较小的数排在最前面。一开始的错误思路:给每个点确定一个优先级(该点所能到达的最小的点),然后用拓扑排序+优先对列正向处理,正向输出。这是错误的,如下样例:15 45 24 32 13 1正确的解法:是反向建边,点大的优先级高,用拓扑排序+优先队列,逆向输出序列即可。根据每对限制,可确

2014-07-28 22:42:51 1036

原创 Codeforces Round #258 (Div. 2)Devu and Flowers 容斥原理

题目:Codeforces Round #258 (Div. 2)Devu and Flowers题意:n个boxes ,第i个box有fi个flowers,每个boxes中的flowers完全相同,不同boxes的flowers不同,求从n个boxes中取出s个flowers的方案数。n排列组合的题目,一解法可用容斥原理(inclusion exclusion principle)

2014-07-26 21:17:31 870

原创 粒子群算法解决TSP问题

参考:http://blog.csdn.net/wangqiuyun/article/details/12515203http://www.cnblogs.com/BreezeDust/p/3354769.html第​六​章​ ​ ​群​智​能​算​法《进​化​粒​子​群​算​法​在​T​S​P​中​的​应​用》niuyongjie的专栏

2014-06-11 11:00:48 17042 4

原创 数位dp小记

参考:http://www.cnblogs.com/jffifa/archive/2012/08/17/2644847.htmlhttp://blog.csdn.net/cmonkey_cfj/article/details/7798809

2014-05-10 13:37:48 1276

原创 HDU 4578 线段树区间更新(确定区间操作的优先级)

HDU 4578线段树区间更新操作有:区间所有数add(c)区间所有数mul(c)区间所有数set(c)查询有:区间所有数的p次方和(p>= 1 && p 关键是区间更新的三种操作的优先级的确定清楚关键是:down和update中对区间的更新操作是一回事,可以写成函数方便编程//#pragma warning (disable: 47

2014-05-08 17:25:14 1066

原创 HDU 4571 Travel in time (SPFA 或 dp)

HDU 4571大概题意:n个点(解法:容易看出应该用spfa和dp来解。关键时对visit和pass点的处理。通过floyd预处理出visit每个点对之间的最小边消耗。然后,加一个超级源点和一个超级终点。超级源点负责pas点s能够到达的点,超级终点负责那些能越过e的点由于visit的点的moneyp值必须严格升序所以也可以拓扑之后dp不能用dij,因为本题时求最长

2014-05-08 13:54:15 1056

原创 UVA11107 后缀数组(new模板)

以前的模板和题目白书例题,基本模板,多个串连接时的处理,二分加分组的处理。注意n和m的值n为字符个数m为最大字符值+1分组时,分出来的区间是[ ),左闭右开idx[],的有效只是1-t-1,为t表示自己添加的字符#include #include #include #include using namespace std;const int maxn =

2014-05-05 12:10:56 1158

原创 三分模板

using namespace std;typedef long long LL;const int INF = 0x3f3f3f3f;const int maxn = 100010;const int MOD = 1000000007;int n, m;int a[1000100];LL calc(int idx){ LL ans = 0; int x = -1

2014-05-03 22:20:39 2316

原创 LA 4513 Stammering Aliens 字符串hash

字符串hash模板,本题是求,给定字符串s中至少出现m次的最长字符串长度,及此时起始位置的最大值LA 4513 Stammering Aliens//#pragma warning (disable: 4786)//#pragma comment (linker, "/STACK:16777216")//HEAD#include #include #include #inc

2014-05-03 21:56:09 885

原创 cf244D. Match & Catch 字符串hash (模板)或 后缀数组。。。

D. Match & Catch可以用各种方法做,字符串hash,后缀数组,dp,拓展kmp,字典树。。。字符串hash(模板)http://blog.csdn.net/gdujian0119/article/details/6777239BKDR Hash Function :// BKDR Hash Function unsigned int BKDRHash(c

2014-05-03 19:06:15 1305

原创 cf 420D. Cup Trick (Splay树)

Splay  树的比较基本的序列维护操作, 用getSeg( int l, int r) 获取要操作的区间若:获取区间[l,r],非空,getSeg(l,r),然后KT指向区间[l,r]若:获取区间为空,如当要在l位置插入一个值时,则getSeg(l,l-2),然后可在KT赋值新节点D. Cup Trick#include #include #include #include

2014-04-29 16:24:09 1128

转载 图论算法模板整理

转载:图论算法模板整理//无向图求割点int pre[maxn], low[maxn], dfs_clock;vector G[maxn];int iscut[maxn];int dfs(int u, int fa) //求出所有点i是否为割点iscut[i]{ int lowu = pre[u] = ++dfs_clock; int child = 0;

2014-04-24 14:02:03 685

原创 zoj 3781 Paint the Grid Reloaded (bfs)

int n, m;char s[44][44];int id[44][44];vectorG[1700];set S[1700];int sz;int dir_i[] = {0, -1, 0, 1};int dir_j[] = {-1, 0, 1, 0};bool check(int i, int j){ if (i >= 0 && i = 0 && j < m) ret

2014-04-18 19:26:22 1124

原创 cf RCC 2014 Warmup (D题 关于搜索和dp的选择的理解)

div2 A题 Elimination水题,但是很多人错,自己 也错了。后来重写,直接将所有的情况都写了,去最优值即可。不必分情况。typedef long long LL;const LL INF = 0x3f3f3f3f3f3f3f3f;const double eps = 1e-10;const int MAXN = 1000010;int n, m;int c, d;

2014-04-18 16:16:46 998

原创 DLX (重复覆盖+费用不为1的最小费用)fzu Problem 2165 v11

http://acm.fzu.edu.cn/problem.php?pid=2165#include#include using namespace std;const int INF = 0x3f3f3f3f;const int maxnode = 110 * 110;const int maxr = 110;const int maxc = 110;int U[maxno

2014-04-18 15:19:56 671

原创 cf 85 E. Petya and Spiders

http://codeforces.com/contest/112/problem/E轮廓线dp。每个格子中的蜘蛛选一个去向,最终,使每个蜘蛛都有一个去向,同时保证有蜘蛛的格子最少。需要用4进制模拟此题还可以用DLX+二分来解,这个解法相对于轮廓线dp就很无脑了,不用考虑细节。以后再补上#include #include #include #include #include

2014-04-17 21:04:41 1003

原创 zoj 3780 Paint the Grid Again 拓扑排序

表示完全没想到是拓扑,而且

2014-04-17 16:15:26 557

原创 DLX SPOJ 1771 Yet Another N-Queen Problem (八皇后变形)

网上模板ac:#include #include #include using namespace std;const int maxnode = 55 * 55 * 4;const int maxr = 55 * 55;const int maxc = 55 * 6;int U[maxnode],D[maxnode],L[maxnode],R[maxnode],C[maxn

2014-04-16 20:00:53 1037

原创 DLX hdu2295 Radar

DLX + 二分半径#include#include #include #include #include #include using namespace std;const int maxn = 55 * 55;const int maxr = 55;const int maxc = 55;int U[maxn],D[maxn],L[maxn],R[maxn],C[

2014-04-16 15:33:13 682

原创 DLX (精确区间覆盖,重复区间覆盖)(模板)

参考:白书http://www.cnblogs.com/jh818012/p/3252154.htmlhttp://blog.csdn.net/fp_hzq/article/details/6795027需要注意的是(1)行列id的hash(2)行编号从1开始,列编号为1~c,结点0为表头结点(3)sz和ans等的初始化操作!!!精确区间覆盖

2014-04-16 14:21:41 1315

原创 cf 236 div2 E Strictly Positive Matrix 矩阵阶乘和图上路径(计数)(可达)(最优值)问题

402E - Strictly Positive Matrix / 403C - Strictly Positive MatrixLet's look at the matrix a as a connectivity matrix of some graph with n vertices. Moreover, if aij > 0, then we have directed

2014-04-14 16:58:28 1902

原创 cf 240 div2

B. Mashmokh and Tokens

2014-04-07 20:06:49 572

原创 ZOJ 3768 Continuous Login(暴力或夹逼原理)

参考:http://blog.csdn.net/zhuhuangjian/article/details/23036139http://blog.csdn.net/mid_kkks/article/details/23034401本题预处理之后,就是一个背包问题,但是容量10e9,不能用背包。最后是判断出最多选择3个数,暴力解决或利用夹逼原理。夹逼原理:2个数时,利用夹

2014-04-06 20:42:06 1369

原创 二分图学习

http://dsqiu.iteye.com/blog/1689505#comments(本篇文章中的:增广路定理,应只是用于二分图,(奇环时不成立))http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.htmlhttp://blog.csdn.net/lin375691011/article/details/18908

2014-04-03 11:30:36 658

原创 cf238

C. Unusual Product本题(1)首先2进制运算,结果只为0或1(2)最后的结果为所有aij*apq的和的形式(3)对于aij,若i==j,即为对角线时,出现1次,若i!=j时,出现2次。则结果之和对角线有关。对应法1.(4)因为第i行只会和第i列相乘,不会和其它列元素相关;对于列亦如是。则最后的结果可以看成n个子结果之和,每个子结果为第i行和第i列的结果。题目

2014-03-23 16:23:03 1053

原创 uva 11624 Fire

注意:(1)加上火之后,预处理出每个格子的最早着火时间,当Joe走到格子时,进行判断能否走即可。(2)刚开始的着火点有多个,如何同时求在多个着火点的情况下的最早着火时间。考虑建造一个超级源,连向出始得着火点,则一次广搜即可。思考:每个着火点的蔓延过程是相互独立的,且每个格子最小着火时间即所有着火点蔓延到该格子时间的最小值。//#pragma warning (disable:

2014-03-21 13:53:56 786

空空如也

空空如也

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

TA关注的人

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