自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BPM136

AFO

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

原创 bzoj2654 Tree 二分答案+最小生成树

今天讲课时的课件变成了至少k条,然后发现不会做然后我问了他下正确性证明,然后他就委掉了.不过正好是k条的方法很简单,显然我们需要控制白边的数量,那么我们控制权值就行二分边权加上多少,然后最小生成树就好然而我发现加上一句不等于k的时候去掉答案,就WA掉了= =说明这道题实际上是大于等于k的,讲题人是没有错的= =然而并不知道正确性证明/* ****************

2016-03-31 22:30:50 1124

原创 51nod 第K大区间

被杜教虐疯了= =做了一天的不可做题决定刷刷水放松下心情维护下数组单调性二分答案就可以了,LL实在是吭爹/* ***********************************************Author :BPM136Created Time :2016/3/30 19:11:09File Name :OI\51Nod\running12\A

2016-03-30 20:40:24 828

原创 pku1925 Spiderman DP

........Problem: 1925 User: BPM136Memory: 4560K Time: 500MSLanguage: G++ Result: Accepted#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i

2016-03-25 10:35:49 471

原创 pku3229 The Best Travel Design 状压DP

题意太过于坑爹,数据也迷之坑,反正坑的不行。重边啊题目说是整数给小数啊什么鬼都出来了= =嘛直接状压,伪TSP问题,floyed做完prework一切好办Problem: 3229 User: BPM136Memory: 5092K Time: 1047MSLanguage: G++ Result: Accepted#include#include#include#in

2016-03-24 16:23:59 460

原创 pku1947rebuilding roads 树形DP

突然感觉自己代码写的好丑= =今天突然手不听话了疯狂打错字= =显然树形DP,表示fi,j是在第i个点,有j个点连着的最小值显然看每一棵子树的转移,显然背包Problem: 1947 User: BPM136Memory: 816K Time: 0MSLanguage: G++ Result: Accepted#include#include#include#inc

2016-03-24 10:53:11 473

原创 ZSOI2012 最大立方体空间 二分答案

并不会正解,正解是用segtree实现的KDtree二分答案,然后暴力判断有80分诶!#include#include#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b)

2016-03-23 16:02:05 545

原创 ZSOI2012 捡金子 字典树+树形DP

我们显然可以用字典树来维护这个东西,然后上面跑树形DP唯一比较虚的是动态的字典树就有三个点超时= =静态的就跑的超快了代码中含有静态的动态的代码#include#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i=a;i<=b;i++

2016-03-23 15:50:34 668

原创 ZSOI2012 选数排序 二分答案

考虑DP发现空间爆了,一般都是要反过来考虑二分答案的,于是显然#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namesp

2016-03-23 15:47:30 468

原创 ZSOI2012 这是一棵树吗? 姑且算图论?

其实随便判判就好了,不用判是否有入度为1的,证明比较简单#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace

2016-03-23 15:43:10 503

原创 花瓶 暴力

然而裸暴力也能有70分#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i=a;i<=b;i++)#define dfo(i,a,b) for(int i=a;i>=b;i--)using namespace std;inline LL

2016-03-23 15:37:34 443

原创 ZSOI2013 花瓶 分块

题意同上分块大法好!然而之前老师让我们做比赛的时候时写了300多行代码还没写对的我一脸懵逼= =对于分块的不熟悉却又不想写线段树的我实际上是做大死= =然后前天晚上真的只交了暴力上去事后看了下别人的代码,发现郭隆写的分块比较优美,然后仿照他的代码又写了一次这道题loc,BEGIN,END三个宏使我能直接开一个大数组了#include#include#include

2016-03-23 15:28:16 480

原创 ZSOI2013 花瓶 线段树

题意:给出两种操作,一种是从A开始向后放花,一种是把a到b的花全部扔掉。放过的位置就不能再次放显然线段树,加上两种标记,一种是这块是满的,一种是这块是空的,然后第一种操作答案带上三个值#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i=a

2016-03-23 15:22:15 366

原创 ZSOI2013 蓄养 暴力

如果没看数据范围还以为是一道旋转卡壳然而实际上只有100.求面积标程用了海伦公式,实际上叉积就可以了注意答案不能为0#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i=a;i<=b;i++)using namespace std;

2016-03-23 15:18:22 454

原创 pku1848 Tree 树形DP

这题最坑的地方在于,我以为对于输入的边一定是y的父亲是x,英语实力捉急的我= =好吧承认看了题解/* 本题有三种状态,分别是 dp[u][0],以u为根,所有的点都在环内 dp[u][1],以u为根,除了u外其余的都在环内 dp[u][2],以u为根,除了u和与u点相连的链(至少有两个点)外,其余的点都在环内 有四种状态转移 1、所有子节点都满足在环内,只有根节点不

2016-03-20 18:34:52 448

原创 SSL2418 数字序列 状压DP

题目大意,求一个数列的方案数,这个数列满足,只由1到k之间的数字组成,而且当ai=aj时,i和j的差值至少为ai之前那个50分的是因为压得方式不同设f[i,i1,i2...ik]表示长度为i,数字1上一次出现位置在第i位的前i1位,2上次在i的前i2位……有多少种方案当i1>=1时,i1=0。当i2>=2时,i2=0……通过实践发现,k=7时,合法的i1,i2……ik状态最多900

2016-03-19 11:50:24 993

原创 GVIM配置

赶快上传一下不然明天麻烦= =set history=1000000set tabstop=4set shiftwidth=4set smarttabset guifont=Courier:h15set nocompatibleset syntax=on syntax onset numberset cindent colo murphy set showcmd

2016-03-19 09:17:57 471

原创 中山市选2014 解题报告 By BPM136

题目不告诉乃们T1 投票题目理解1:输出占每个人投票总数的百分比,最终得分65分题目理解2:输出占有效票的百分比,过不了样例题目理解3: 输出占投票人的百分比,最终得分100分考点:字符串的读入(尤其对于C++),双关键字快排和语文水平期望得分100 T2 drawf tower题目理解1:根据n个物品推测每件物品只能出现1次,直接递归一次求解,最终

2016-03-19 09:13:42 695

原创 模拟赛4 数字序列 50分做法 状压DP

题意:求由1到k之间的数字组成的,满足如果ai=aj,则i-j>=ai的序列个数一脸懵逼在比赛中想不出AC方法,50分做法:考虑状压,因为新的一位能放哪些数字只和最后m-1位有关,又因为k在50分数据也就是k=5时刚好能跑出来时间复杂度O(n*k^k),大数据直接爆炸= =毕竟太弱#include#include#include#include#include#inclu

2016-03-17 16:51:05 426

原创 飞行员配对方案问题 网络流||二分图匹配

简单的二分图模型复习下最大流和二分图匹配然而这题的数据没有SJ测不了,只能测前面的匹配数对不对#include#include#include#include#include#include#include#define LL long long#define fo(i,a,b) for(int i=a;i<=b;i++)#define efo(i,x) for(int

2016-03-17 10:11:29 434

原创 hdu3267 Graph Game 完全极大极小搜索+连通性剪枝+缩点

这是一道很神奇很厉害的一道题,代码有一定参考:http://www.cnblogs.com/ambition/archive/2012/07/23/Graph_Game.html剪枝也是采用的他写的,感觉一般图的博弈普遍需要把已经做过决策的同类点进行缩点减少时间,同时还有连通性剪枝,然后就差不多惹还有就是结束条件,如果是B决策,如果满了就直接退掉就好了,但是如果是A,如果遇到自环的时候退出

2016-03-17 08:23:15 802

原创 pku1191 棋盘分割 DP

简单的枚举切法然后记忆化更新时间复杂度嗯……n^m?其实要小的多,然而好像只能这样写Problem: 1191 User: BPM136Memory: 1500K Time: 16MSLanguage: G++ Result: Accepted#include#include#include#include#include#include#define LL lo

2016-03-16 16:27:29 439

原创 pku1159 Palindrome DP

有一个感悟就是一大群人指着错的东西硬说是对的= =MLE后想了下答案最大也就5000,然后改成short int 就可以了,A掉之后翻了下discuss,然后看到了一条定理:答案是长度减去与反串的最长公共子串= =当时我就懵逼了赶快手写了一组数据发现是错的,然而似乎子序列就对了然后我点开回复一条一条的看看到一条这样的:哥/姐,最长子列不要连续地.........大侠连最长公共子序

2016-03-16 15:25:36 444

原创 pku1141 Brackets Sequence 区间DP

好像是很经典的区间DP但是其实想一下也不难记忆化搜索从i到j区间内的最小冲突数然后根据mark的进行更新时间复杂度明显的n3但是其实我还有一种想法不知可不可行首先把整个序列拆分成为两个要么是全是小括号的要么全部都是中括号的然后把每个序列中的左括号标记为1,右括号标记为-1然后计算前缀和,那么每个单独的合法序列为最终的值为0且中途不出现负数然后我们添加括号使其合法

2016-03-16 12:01:41 391

原创 POJ1088 滑雪 记忆化搜索

事实证明即使是水题也不能乱写暴力= =以为暴力加点剪枝就能过了嘛,然后就怒写暴力= =前车之鉴:Problem: 1088 User: BPM136Memory: N/A Time: N/ALanguage: G++ Result: Time Limit Exceeded#include#include#include#include#include#inclu

2016-03-16 09:25:52 409

原创 pku1080 Human Gene Functions DP

表示为串1匹配到第i位,串2匹配到第j位时的最大分数复杂度N2,常数因为写法问题略微大了点Problem: 1080 User: BPM136Memory: 732K Time: 16MSLanguage: G++ Result: Accepted#include#include#include#include#include#include#define LL

2016-03-16 08:33:38 342

原创 pku1050 To the Max DP

最小矩阵和 太久没写了纠结了好久该怎么统计,然后发现自己SB了Problem: 1050 User: BPM136Memory: 788K Time: 0MSLanguage: G++ Result: Accepted#include#include#include#include#include#include#define LL long long#define

2016-03-15 21:25:22 337

原创 pku1036Gangsters Dp

DP不小心写错还真的挺难调的= =递推,时间复杂度(T*m+n)状态为第i时间门的程度为j的最大繁荣值Problem: 1036 User: BPM136Memory: 704K Time: 125MSLanguage: G++ Result: Accepted#include#include#include#include#include#include#d

2016-03-15 20:45:23 368

原创 SSL2512&BZOJ1898 沼泽鳄鱼

想明白了这东西能分成12个时刻,于是就有12个矩阵,然后乘起来当成操作就行了,时间复杂度一个n3logkProblem Id:2511 User Id:BPM136 Memory:1756K Time:75MSLanguage:G++ Result:Accepted#include#include#include#include#include#include#def

2016-03-15 15:52:26 387

原创 SSL2510&BZOJ1706 奶牛接力 矩阵

比较裸的邻接矩阵自乘,但因为是最小长度因此把*改成加#include#include#include#include#include#include#define LL long long#define fo(i,a) for(int i=0;i<a;i++)using namespace std;inline LL read(){ LL d=0,f=1;char s=g

2016-03-15 10:24:27 395

原创 hdu4352 XHXJ's LIS 数位DP

第一次交MLE一脸茫然= =重新交了一次A= =记忆化搜索的状态为在任意取的情况下第i位,状态为j,LIS的长度为k的数量s表示对于一个状态i,插入j之后的状态,如果不预处理就会慢很多然后呢我们在dfs的时候要判断多一个前导0来判断状态的变化其他的如同上一道题的写法,然而时间复杂度发现很难计算了,首先是记忆化的时间为2^10*10*10,预处理同上,然而剩下的应该是一个比较小的组合

2016-03-15 09:35:34 386

原创 hdu2089 不要62 数位DP

入门题,看到YMW开始撸数位DP时我也来凑个热闹= =然而不管什么数据都差了1= =然后看到了教程中这么清爽的代码= =我决定来规范一下数位DP的代码风格一般来说数位DP怎么写都不容易T但是有时候出题人用心良苦出到10的100w次方的时候【比如GDKOI,感觉还是很虚的突然想起来决定来吐槽一下HDU,居然有人把BPM136这个账号注册了= =,好吧只好改成BPMThor#i

2016-03-15 08:05:15 381

转载 写代码的小女孩(转自Dream群)

天冷极了,下着雪,又快黑了。这是NOIP的前夜。在这又冷又黑的晚上,一个衣衫破烂的小女孩在机房敲着代码。她从班里逃出来的时候还拿着一本算导,但是有什么用呢?那是一本很破旧的书——那么大,一向是她妈妈垫桌角的。她默写SPFA的时候,年级主任突然冲进机房,吓得她把算导都丢掉了。书叫一个学数竞捡起来拿着跑了。他说,他可以用那本书当草纸,证明切比雪夫定理。   小女孩只好自己写二叉堆,一双小脚冻得红一块青

2016-03-14 19:29:08 602

原创 poj1014 Dividing 多重背包DP+神剪枝

这题discuss里的做法我无疑是服气的= =考虑值为6的石头:将值为6的石头分为两部分,一部分均分为两堆,另一部分用于填补缺口。所谓填缺口就是当其他的石头分完之后再把这部分石头分入两堆(也有可能只放入一堆)。现在考虑需要多少6值石头用于填缺口。假设左边的总值小于右边的总值1.要能均分,剩下的缺口一定是6的倍数;2.在分配其他的石头时,可以做到尽可能的是缺口小(比如,如果可以

2016-03-14 17:07:02 397

转载 POJ DP题目合集

打星号的表示个人认为比较经典,或是算法比较好的题目 1014* Dividing    半个背包,注意中断,否则可能TLE1036 Gangsters 可以很水的DP过,还有多种优化的方法1038* Bugs Integrated, Inc.状态压缩1050 To the Max最大子矩形  枚举每个列数为n的矩阵,然后对这些矩阵分别进行DP处理

2016-03-14 16:16:39 719

原创 pku1568 Find the Winning Move 完全极大极小搜索

比较简单,因为只有三种局面也没有权重不知道怎么AB剪枝= =我们可以直接用1表示正无穷,-1表示负无穷,0表示和局有一个强力剪枝那就是,如果当前只下了然而比赛的时候这个剪枝不是特别敢加.不过实际上那个剪枝可能只是数学证明,实际测试改成7都是可以AC的时间复杂度(2^m)*16,可秒过,然而让人遗憾的是我并没有0ms出现= =Problem: 1568 User: BPM136

2016-03-14 16:03:54 379

原创 pku3317 Stake Your Claim 极大极小搜索+状压+AB剪枝

感觉我已经快不行惹 感觉自己有点弱竟然写了2h= =开始并没发现可以状压【英语渣没看懂题目,后来偷窥了一下大神博客,发现空的格子不超过10个,于是我们考虑状压,三进制分别表示空格,0,1,四进制最开始以为开不下= =然后我们传递还有哪些空格还没被选过,二进制高效处理,新姿势:用pos=log(k+0.5)/log(2.0)或者pos=log(k-0.5)/log(2.0)+1来获取是哪一位

2016-03-14 10:36:46 681

原创 数位DP题集

HDU4507 难http://acm.hit.edu.cn/hoj/problem/view?id=1983 HOJ?1983 难HDU3709 偏难HDU3555 偏易HDU2089 偏易bzoj1026 windy数 简单URAL1057 难

2016-03-13 21:45:35 510

原创 bzoj1026 [SCOI2009]windy数 数位DP

先用fi,j表示在长度为i时尾数为j,然后我们dfs位数容斥统计也可以,直接分类统计也可以复杂度……额,casenumber*200?反正小到发指不用理他23333333/************************************************************** Problem: 1026 User: BPM136 Language

2016-03-13 21:40:49 333

原创 pku1085 Triangle War 完全极大极小搜索+状压DP

黑书入门题,我们记录下每一个状态,状态为每条边是否用上,然后记忆化搜索所有状态WA了一次,因为搜索的时候给状态的值的时候写成了一共的三角形数量而不是双方的最大差值时间复杂度为2^18*8*17,而且每组数据都不需要额外更新,话说这样写时间复杂度是常数级别的诶2333333333Problem: 1085 User: BPM136Memory: 2724K Time: 188MS

2016-03-13 21:01:35 663

原创 斐波那契数列VI(原创题)

幼儿园数学题II这天,当一头雾水的LZH同学在考场上痛哭的时候,一旁的YMW早就如切菜一样cut掉了简单至极的第一题,风轻云淡的冲击着满分,然而最后一道题着实难道了他,毕竟是幼儿园副园长树皮和著名毒瘤秋彪为了防止人AK而出的,可是YMW作为ACrush的著名粉丝,向来以AK为目标,永不言败,而他能不能AK就看你了题目是酱紫的,f(n)-f(3)-f(4)-f(5)-...-f(n-3)-f

2016-03-12 10:20:14 622

空空如也

空空如也

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

TA关注的人

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