自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 Codeforces Round #186 (Div. 2) D Ilya and Roads DP 单调优化

刚开始犯2去想肿么建图了。dp还是很好想:定义 dp[i][x]  表示从 1 到 i 被覆盖了x个洞需要的最小花费。转移方程很简单, 对于 j >i 的有:dp[j][  x + j-i ]  = min ( dp[j][  x + j-i ] , dp[i ][ x] + mincost( x+1,y));  这里的mincost(x+1,y)表示要完全覆盖 从x+1到 y这个

2013-05-31 13:57:44 1113

原创 hdu 2222 ac自动机

一直米有去拍个ac自动机的版,找了个模板题,一发居然米拍过。贴下自己版吧#include #include #include #include #include using namespace std;namespace AC { const int dict = 26; const int root = 0; const int maxn = 300

2013-05-30 22:22:12 827

原创 Codeforces Round #185 (Div. 1) B - Cats Transport DP 斜率优化

将小猫对应对应到起点就是很板的题目了额比如miao是在h[i]  ,h[i]这个点距离原点的距离是x,miao出现的时候为y,对应以后的距离就是y-x,说明从y-x时刻出发能达到该miao样例对应以后排序就是 0 0 0 8 9 10 记为d数组那你选择从0  和 10 出发,花费就是 0+0+0+2+1+0 =3很容易得出dp转移方程了额 :  DP[K][I] = MI

2013-05-29 20:57:18 1260

原创 UVA 12524 Arranging Heaps 动态规划 斜率优化

定义dp[i][j]  代表在i这个地方放一个Heap , 从1到i这个区间一共放了n个heap,最小的cost。很容易想到dp转移方程:dp[i][j]  = min {  dp[k][j-1] + cost ( k ,i) }   (  1这是2d/1d的dp 还有优化余地。展开转移方程:    dp[i][j] = min ( dp[k][j-1] +  (p[i].h

2013-05-12 00:20:43 2212

原创 poj 3683 Priest John's Busiest Day

每个婚礼只能选择从开始时间开始或者终点时间结束,所以可以2-sat。建图:第i个婚礼  从开始时间开始用点 2*i 标记, 在终点时间结束用2*i+1 标记, 比较婚礼 i和j ,如果 2*i 和 2*j 有冲突, 则连一条 2*i到2*j+1的边(其他同理)......输出解: 先将图缩点,然后建立一个逆向的图,在拓扑输出解。因为如果正向的图,选了一个点,它能到达的点都需要选,而如果逆向

2013-05-02 12:01:24 1042

转载 推荐一个vim 配置

runtime! debian.vim"设置编码set encoding=utf-8set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936set fileencodings=utf-8,ucs-bom,chinese"语言设置set langmenu=zh_CN.UTF-8"设置语法高亮syntax enables

2013-03-24 21:25:46 445

原创 ural 1078 Segments

可以将x轴的先有序化,也可将y轴的先有序化。    比如样例以x轴有序化后:  -3  3 ; -2 2; -1 1; 4 5;    现在以x轴从小到大枚举。 只需求出比当前 y轴数值大的 以前的y 所对应的包含个数的最大值即可。我是用线段树来寻找最大值。#include #include #include #include #include #include #in

2013-02-19 09:59:26 391

原创 sgu 225 Little Knights 状态压缩dp

这道题好无语呀,500ms时限,60m的内存。    如果没有内存限制,我们可以很容易的想到  DP[U][V][ROW][KNIGHT]   U 代表上一行的状态,V代表上上一行的状态。因为当前行只与前两行的状态有关。ROW代表行数,knight代表骑士数目。    然后dp就很简单了   DP【U】【V】【ROW】【KNIGHT】 = SUM(DP【V】【i】【ROW-1]【KNIGH

2013-02-15 16:32:38 767

原创 sgu 223 Little Kings 状态压缩dp

下一行的状态只受前面一行的影响。  先预处理出在一行中互相无冲突的状态,用数字来表示。比如 一行为3列,那没有冲突的状态就有:(1代表国王,0代表无)0 0 0 --------> 00 1 0  -------->20 0 1  --------> 41 0 0 --------> 11 0 1  --------> 5....这样列处理好了,就只用以行为阶段进行

2013-02-15 11:14:13 696

原创 poj 3405 How many 0's?

题目要求统计从m到n 的数字当中,0出现了几次。比如 99-101: 99 100 101  这里0 出现了3次#include #include #include #include #include #include using namespace std;typedef long long ll;#define sfint(x) scanf("%d",&x

2013-02-08 22:18:21 357

原创 POJ 1753 Flip Game 高斯消元法

高斯很好写,当有自由变元时再枚举一下自由变元就行了。#include #include #include #include #include #include using namespace std;typedef long long ll;#define sfint(x) scanf("%d",&x)#define sfint2(x,y) scanf("%

2013-02-03 15:48:30 1103

转载 博弈 nim sg

博弈论(一):Nim游戏  重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。  Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。  Nim游戏是组合游戏(Combinatorial Ga

2012-12-30 16:01:47 565

原创 POJ 1873 The Fortified Forest 凸包+搜索

题目让你用最少的花费(砍掉树木的vi之和)以及砍掉树的数目最少,然后用砍掉树的li之和去围住剩余的树木。 就是一个简单的搜索 ,我都几乎木有加优化了,简单的状态拍一下序,就1Y了呀计算几何拍了个板真好呀,刷题腰不酸背不疼越刷越带感,刷题和切菜一样(可能刷水题多了吧)#include #include #include #include #include #incl

2012-12-19 17:01:18 385

原创 oj上的“%lf"

今天拍了一道很简单的计算几何凸包的题目POJ 2187Beauty Contest;想涨涨自信滴呀~没想到wrong得我蛋蛋碎了一地。后来才发现啃爹的poj在g++编译环境下不能用 %lf 输出浮点数的答案 (在c++环境下可以~~~)#define fi freopen("in.txt","r",stdin)#define fo freopen("output.txt","w",std

2012-12-17 19:49:52 551

原创 计算几何模板

废话不多说,先附上一个粗糙的板吧 ,然后慢慢完善~const double pi=acos(-1.0);const double eps=1e-8;/*my_template*//*Computational Geometry*/const int N = 10010;struct Point{ double x,y; Point(double _x=0,double _y=

2012-12-13 16:27:23 861

转载 stl list

STL中的list就是一双向链表,可高效地进行插入删除元素。现总结一下它的操作。文中所用到两个list对象c1,c2分别有元素c1(10,20,30) c2(40,50,60)。还有一个list::iterator citer用来指向c1或c2元素。list对象的声明构造():A.      listc0;                //空链表B.      l

2012-12-13 15:17:05 341

原创 动态树模板 (陈首元ppt)

根据陈首元的ppt,写的动态树模板,功能灰常全~~~#include #include #define NMax 10000using namespace std;struct node{ int key,mn,delta; int revmark; node *p,*l,*r; node(){}};struct DynamicTree{ node *nodes;

2012-12-10 13:36:14 1941

原创 POJ 2697 A Board Game

我是直接用map 来判重的#define fi freopen("in.txt","r",stdin)#include #include #include #include #include #include #include #include #include using namespace std;/*my_template*//*data typ

2012-12-10 13:31:16 538

原创 UVA 11198 Dancing Digits

爆搜吧,状态利用康拓排列可以压缩#define fi freopen("in.txt","r",stdin)#include #include #include #include #include #include #include using namespace std;#define sfint(x) scanf("%d",&x)#define sf

2012-12-10 13:27:03 399

原创 spoj 1557 Can you answer these queries II (gss2)线段树

从来木有想过update儿子呀,除了lazy~~ #define fi freopen("in.txt","r",stdin)#include #include #include #include #include #include using namespace std;#define sfint(x) scanf("%d",&x)#define sf

2012-12-09 18:11:15 741

原创 spoj6779 Can you answer these queries VII(gss7)动态树

看了一下题,二话没说,想拍一个树链剖分,像线段树维护一下4个值就行了,可是想想树链剖分那长长的代码,额~(⊙o⊙)…  突然想到一句话,一切尽动态树。  先把建立一颗树吧 ,这里用1作为根, 这样的话这棵树就已经定型了。 刚开始每个节点只记录双亲。 这样任意两个节点 向着根所走过的路  要吗在路中间有交点,要么在根上有交点,要么就直接交与这两个点的某一个点了。利用这个性质我们可以yy很多东

2012-12-09 18:05:00 941

原创 ZOJ 2859 Matrix Searching 二维rmq

二维的rmq 和一维的rmq 其实非常相似,我们定义 dp[r][c][i][j] 为 覆盖了 r行c列 到 r+2^i-1行 c+2^j-1列的 标记值(如最大最小)。dp转移就很容易了:  当i为0 ,j为0 的时候就是 数组[r][c]的值,  当i= 0 ,就j不为0的时候,就和一维的rmq一样,此时即对第一行求rmq;   我们只看二维rmq的行,那么二维rmq 也变成了一维

2012-11-27 00:25:57 431

原创 poj 3080 后缀自动机

这道题大家都暴力过了,因为题目数据小 ,但如果数据大了肿么办~~,这道题还可以 用后缀数组+栈扫描 (或二分)解. 不过效率很都不如后缀自动机。   姑且用它来练练后缀自动机吧#include #include #include #include #define fr(i,s,n) for(int i=s;i<n;i++)#define fi freopen("in.

2012-11-01 01:01:05 397

原创 Codeforces Round #146 (Div. 2) Cyclical Quest 后缀自动机

比赛时居然没拍出来~~       首先,利用主串 构造一个后缀自动机。 然后利用拓扑序 计算出 从s(初态)出发到达每个节点所构成的子串在主串中出现过几次(就是将parent树中的,儿子状态出现次数加给他的parent ,因为parent树中parent的状态是他的儿子节点的状态并集,不懂看clj的ppt~~~)。  构造出来以后,将要匹配的串 例如abc  改成 abcab ,将abc

2012-10-31 23:17:51 446

原创 poj 3422 费用流

感觉网络流的问题 大部分都是考建图,  建图的时候又经常拆点来限流。这道题目建图比较简单,很适合学习用~~~#include #include #include #include #include #define fr(i,s,n) for(int i=s;i<n;++i)#define _fr(i,n,s) for(int i=n-1;i>=s;--i)#de

2012-10-31 18:06:11 295

原创 poj 2761 splay tree

这道题 可以用很多方法做像划分树之类滴~~~用splay虽然比划分树慢了一点,不过也只是慢了一点呀,想想有通用的解法,何必用不太常用的划分树喃~~#include #include #include #include #define fr(i,s,n) for(int i=s;i<n;++i)#define _fr(i,n,s) for(int i=n-1;i>=s;

2012-10-28 22:47:23 491

原创 poj 3580 splay tree

splay tree 的孩子父亲关系 既可以是 大小的偏序关系 ,也可以是位置的偏序关系~~~这道题用的是位置的偏序关系~~~#include #include #include #include #include #define fr(i,s,n) for(int i=s;i<n;++i)#define _fr(i,n,s) for(int i=n-1;i>

2012-10-28 22:28:19 348

转载 修复grub

livecd 修复Grub方法1.有GRUB启动的光盘或U盘修复如果手上有GRUB启动的工具盘,用工具盘启动,在GRUB菜单上按c进入命令行状态,在grub>提示符下输入grub>find /boot/grub/core.img (有/boot分区的用find /grub/core.img)(hdx,y) (显示查找到的分区号)grub>root (hdx,y)grub>k

2012-10-22 13:49:20 338

转载 GRUB引导Win8,Win7,Ubuntu

GRUB引导Win8,Win7,Ubuntu与时俱进,装了Win8 RTM,我是直接光盘引导,安装在其中一个分区的。发现Win8安装过程是将原有Win7的Bootmgr和BCD覆盖升级并加入Win8引导项目,换句话说,Win7和Win8是共用一个Bootmgr和BCD的,这使得GRUB无法直接引导Win7和Win8,需要在进入Bootmgr后在选择,能不能直接在GRUB中直接集成Ubunt

2012-10-22 13:38:02 643

原创 vs2012 scanf不能使用

用上vs2012了 感觉比2010快了好多呀,不过2012 啃爹的说scanf unsafe  要我用scanf_s  可是oj上又不能用sacnf_s肿么破呢 ,  其实很简单 只需加一句#pragma warning(disable:4996)  是不是发现又和2010一样了

2012-10-22 00:36:50 3963

转载 BURG 引导也疯狂

今天在http://forum.ubuntu.org.cn看到了一片美化引导帖子,利用burg不仅可以实现多重引导,还可以让你的引导变得非常漂亮。附上我自己的引导界面图:(是不是感觉启动界面漂亮了许多)BURG是一个基于GRUB2的工程。它使用新的菜单系统,屏幕布局和热健都可以通过配置文件非常灵活地定制。我上传了PPA二机制包,ubu

2012-10-19 21:44:12 5493

原创 ZOJ 3656 2-sat模板题

//2012长春现场赛很裸的2-sat  因为是位运算,所以 把b[i] 的 每一位都利用 2-sat 判断一次。 #include#include#include #include#include #include #include #define fr(i,s,n) for(int i=s;i<n;i++)#define fi freopen("in.txt","r

2012-10-17 20:25:36 539

原创 字符串分割

字符串分割一种时常会遇到的问题:下面列举几个函数 ,可以方便编程:1.strtok函数进行字符串分割    ( 适合用于一次性分割 ,这个用得比较多)原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当

2012-10-13 14:38:04 560

原创 Admission to Exam欧拉函数逆运算

Admission to ExamAt the end of the previous semester the students of the Department of Mathematics and Mechanics of the Yekaterinozavodsk State University had to take an exam in network tech

2012-10-08 22:08:28 1083

原创 Codeforces Round #142 (Div. 2)

话说国庆大假,11:30寝室终于有电了呀。满心欢喜的做了一发cf,没想到system test挂得这么惨A:签到题B:打出素数表,将素数表的素数平方,然后读入询问的数二分就行了C:先预处理。 预处理出将  i行j列   置为1需要的最小步数。D:最短路,spfa,dijkstra神马的都可以搞,不过题目有个啃爹的限制,每个点有些时间点不能通过,其实只需要松弛操作的时候先算出di

2012-10-02 17:25:52 609

原创 hdu 4405 Aeroplane chess

//2012金华网赛1006求概率的题,这不是一道有无穷多种情况的概率题,所以不用推公式。很容易想到dp解法。 定义状态很状态转移看代码吧,都比较简单#include #include #include #include #include #include #define fr(i,s,n) for(int i=s;i<n;i++)#define pf pri

2012-09-22 18:56:45 528

原创 hdu 4407 sum

//2012金华网赛 1008      今天居然挂在了09了 ,n^3的算法 呀,不知道自己写挫了,还是爆rp了,居然老是t;话说这道题目也写得很挫。  这道题有个很好的性质1..n连续 。而且询问又很少,所以直接先求出原数组中(即1..n) 与p互质的数的和,具体肿么求可以用容斥原理。然后枚举被改变的数。#include #include #include #includ

2012-09-22 18:50:04 586

原创 Codeforces Round #139 (Div. 2)

做了一发cf,又瞻仰了一下tourist大神呀~~前三道a的灰常顺利了,后来太困了,d,e就木有拍。A:水题,不解释B:k-bonacci 因为k大于1 ,那么k-bonacci数就很少了,先根据K求出所有的k-bonacci数,然后dfs暴搜吧,当然平常的优化是要有滴~~~C:一眼就应该想到是dp吧,dp[i][flag][len]  代表从第一列到第i列 最后一位是‘#’还是‘

2012-09-20 12:41:08 428

原创 HDU 4289 网络流

题目:ControlYou, the head of Department of Security, recently received a top-secret information that a group of terrorists is planning to transport some WMD 1 from one city (the source) to

2012-09-18 19:04:17 873

原创 HDU 4294 spfa

题目:GroupsAfter the regional contest, all the ACMers are walking alone a very long avenue to the dining hall in groups. Groups can vary in size for kinds of reasons, which means, several pl

2012-09-18 18:54:20 437

扩展kmp刘雅琼

刘雅琼的扩展kmp ppt讲得很详细~~~

2012-09-26

空空如也

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

TA关注的人

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