自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老臣

有时,我可能脆弱得一句话就泪流满面,有时,也发现自己咬着牙走了很长的路。

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

原创 NOIP2017提高组 Day2T2宝藏 状压DP

题目就不说了吧。。 搜索好像也能过,不过是启发式才行。。何况比赛打得也是状压。。 其实不算很难吧,但是我比较菜所以挂了。 总是想着如何枚举,但是这题直接枚举转移的话好像不大可做。 所以预处理出两个状态之间的转移代价,即w[s1,s2]表示从s1转移到s2的代价,保证s1&s2==0,即s1与s2不相交。 然后直接转移就好了,复杂度是3^n*n^2,但是用枚举子集转移的方法可以去除冗余状态,

2017-11-21 15:26:59 1381 1

原创 bzoj3706反色刷 欧拉图+并查集(欧拉图性质简介)

题意:一个无向图,每条边有黑白两种颜色,要求用最少的反色刷使得所有边变为白色,注意刷子会回到出发点。 明显欧拉回路,注意到欧拉回路的性质,即无向图任意点的点数不能使奇数。那么我们用并查集维护每个连通块内黑色边的数量以及他们的度数,用桶存起来。一个基本的维护。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b

2017-11-10 15:17:40 463

原创 bzoj1833[ZJOI2010]count 数字计数 数位DP

题意:求l,r中0-9各个数字的出现次数。 好像是数位DP经典题。。设f[i][j][k]表示做到第i位,当前计算数字j,前i-1位已经出现的次数为k的总出现次数。直接记忆化搜索即可,注意一下前导0.#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#defi

2017-11-10 12:33:30 335

原创 51nod1232 完美数 数位DP

如果一个数能够被组成它的各个非0数字整除,则称它是完美数。例如:1-9都是完美数,10,11,12,101都是完美数,但是13就不是完美数(因为13不能被数字3整除)。 现在给定正整数x,y,求x和y之间(包含x和y的闭区间)共有多少完美数。一个数能整除他的所有位上的数,也就是说要整除所有位置上的数字的lcm。 那么设f[i][j][k]表示做到第i位,模2520意义下数字为j,lcm为第k个的

2017-11-10 10:21:18 620

原创 Atcoder Regular Contest 084

题意:给出一个数k,求k的倍数中的一个数,使得这个数的数位和最小。k<=1e5. 感觉做这题智商被碾压了,完全想不到spfa的做法,比赛的时候打数位dp打到倦生都过不去。。 先讲spfa做法:从1开始,向x+1连边,代价为数位差,也就是1,或者向x*10,代价为0,注意是在%k意义下,那么答案就是dis[0]+1,即到达k的倍数中最小的路径。#include<cstdio>#include<c

2017-11-07 22:00:38 253

原创 bzoj3192 [JLOI2013]删除物品 树状数组

题意:箱子再分配问题需要解决如下问题: (1)一共有N个物品,堆成M堆。 (2)所有物品都是一样的,但是它们有不同的优先级。 (3)你只能够移动某堆中位于顶端的物品。 (4)你可以把任意一堆中位于顶端的物品移动到其它某堆的顶端。若此物品是当前所有物品中优先级最高的,可以直接将之删除而不用移动。(5)求出将所有物品删除所需的最小步数。删除操作不计入步数之中。 (6)只是一个比较难解

2017-11-07 20:45:54 214

原创 bzoj2109 [Noi2010]Plane 航空管制 贪心 拓补排序

题意:定义一个航班的起 飞序号为该航班在起飞序列中的位置,即是第几个起飞的航班。 起飞序列还存在两类限制条件:  第一类(最晚起飞时间限制):编号为 i的航班起飞序号不得超过 ki;  第二类(相对起飞顺序限制):存在一些相对起飞顺序限制(a, b),表示 航班 a的起飞时间必须早于航班 b。求每个飞机在可行的起飞序列中最小的那个数。拓补很显然,但是直接连边比较难以处理第二种限制,于是我们显然想

2017-11-06 17:21:05 358

原创 bzoj4337: BJOI2015 树的同构 树hash

题意:给出n棵树,问有哪些树是同构的。 注意到树很多,直接像普通的树hash是行不通的,因为哪怕是自然溢出做模数的冲突概率也极大,正确的做法是对于不同的子树使用不同的base去做hash,就可以将冲突的概率降到最低。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i+

2017-11-06 15:38:15 340

原创 JZOJ5457. 【NOIP2017提高A组冲刺11.6】项链

题意:nodgd的粉丝太多了,每天都会有很多人排队要签名。今天有n个人排队,每个人的身高都是一个整数,且互不相同。很不巧,nodgd今天去忙别的事情去了,就只好让这些粉丝们明天再来。同时nodgd提出了一个要求,每个人都要记住自己前面与多少个比自己高的人,以便于明天恢复到今天的顺序。但是,粉丝们或多或少都是有些失望的,失望使她们晕头转向、神魂颠倒,已经分不清楚哪一边是“前面”了,于是她们可能是记

2017-11-06 15:34:54 276

原创 bzoj2258: pku2758 Checking the Text 文本校对 hash+二分

题意:给你一段文本 要求比对从文本中某两个位置开始能匹配的最大长度是多少。可以插入字符。 一开始不看范围感觉这题巨难,死刚SAM搞不出来,然后看看范围感觉自己被逗了。。 hash+二分,记录一下字符位置就好了,由于插入很少暴力更新hash数组即可。 自然溢出。 #include<cstdio>#include<algorithm>#include<cstring>#define fo(i

2017-11-05 21:52:41 261

原创 bzoj3629[JLOI2014]聪明的燕姿 搜索+筛法

题意:给出一个数n,求问有多少个数的正约数之和为n。 非常好(强)的题,一开始并没有想到。 注意到正约数之和,设n,那么n可以表示为: n=ap11∗ap22∗...∗apnnn=a_1^{p_1}*a_2^{p_2}*...*a_n^{p_n} 那么n的正约数之和m=(1+a11+a21+..ap11)∗(1+a12+a22+..ap22)∗...m=(1+a_1^1+a_1^2+..a_

2017-11-05 21:06:32 282

原创 JZOJ5454. 【NOIP2017提高A组冲刺11.5】仔细的检查 树hash

Descriptionnodgd家里种了一棵树,有一天nodgd比较无聊,就把这棵树画在了一张纸上。另一天nodgd更无聊,就又画了一张。 这时nodgd发现,两次画的顺序是不一样的,这就导致了原本的某一个节点��0在第一幅图中编号为��1,在第二副图中编号为��2。 于是,nodgd决定检查一下他画出的两棵树到底是不是一样的。nodgd已经给每棵树的节点都从1到��进行了编号,即每棵树有��个

2017-11-05 16:51:05 660

原创 bzoj1567[JSOI2008]Blue Mary的战役地图 二分+矩阵hash

题意:给出两个矩阵,求最大重合。 做出两个矩阵的hash以后二分最大正方形的边长,基础hash。 模数不好设,用自然溢出就好。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)u

2017-11-03 20:31:34 215

原创 bzoj3721PA2014 Final Bazarek 贪心

题意:有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价。思路巧妙的贪心,由于判断一开始写错了导致没有1A。 每次直接选取最大的k个,然后如果是偶数的话就把k个中最小的偶数替换成后面最大的奇数或者把k个中最小的奇数换成后面最大的偶数,因为只有奇数才能改变奇偶性,所以正确性显然。#include<cstdio>#include<algorithm>#include<cstring

2017-11-03 14:20:07 243

原创 JZOJ5442【NOIP2017提高A组冲刺11.1】荒诞 三进制状压+欧拉序

题意:我有一个n个点,m条边的无向图,第i个点建立一个旅游站点的费用是c_i。特别地,这张图中的任意两点间不存在节点数超过10的简单路径。 为了把一切都做得完善,为了使我感到不那么孤独,我想要建造一些旅游站点使得每个点要么建立了旅游站点,要么与它有边直接相连的点里至少有一个点建立了旅游站点。我还希望这个建造方案总花费尽量少。 请求出这个花费。 czy大爷出的好题。 考场上有正解方向的想法

2017-11-01 22:17:35 305

原创 JZOJ5441. 【NOIP2017提高A组冲刺11.1】序列 启发式搜索+迭代深搜

题意:给定一个1~n的排列x,每次你可以将x1~xi翻转。你需要求出将序列变为升序的最小操作次数。有多组数据。 n<=25 吃了搜索的亏,表示估价函数这玩意儿碰都没碰过,A*也是好久以前才做过的。。考试的时候打了个搜索还错了,没脸见人了。。 有两个优化。 第一个就是估价函数,这个必须加上,每次交换的时候,我们假设当前已经交换了x步,然后枚举答案,估价函数g为接下来要把当前序列变为升序的期望步

2017-11-01 16:46:54 601

原创 bzoj1097[POI2007]旅游景点atr spfa+状压DP

题意:给出一个图,要求一定经过一些点,而且经过顺序有要求,点的范围是2到k+1,问最短路径。这题卡常卡的我蛋都碎了都没卡过,最后懒得卡了。 其实很简单的一道题目如果不卡常的话,先对于1..k+1跑spfa以后,把题目要求的遍历顺序加入状态中,直接转移就可以了,挺显然的。 代码:(TLE)#include<cstdio>#include<algorithm>#include<cstring>

2017-11-01 14:32:55 200

空空如也

空空如也

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

TA关注的人

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