自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CHN_JZ的博客

while(!die) is_a_oier();

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

原创 [数位DP]Hdu 6148——Valley Number

题目梗概求1~n中满足题目要求的数的个数。题目要求:不存在一段下降之后上升的类似山谷的连续位置。解题思路不难想到是数位DP。预处理时f[i][j][k]f[i][j][k]表示长度为i,第一位为j的符合题目要求的个数。其中当k=1k=1表示出现过递增,否则没有。刷答案时注意贴着给出的数做,细节看代码(调了4个小时的血与泪啊)。#include<cstdio>#include<cstring>#i

2017-08-25 20:46:52 653

原创 [乱搞]Hdu 6147——Pokémon GO II

题目描述众所周知,度度熊最近沉迷于 Pokémon GO。 由于太过沉迷,现在它只能按照游戏内置的指令行走了:对,简直就像一个现实中的Pokémon! 游戏内置的指令实际上可以抽象成一种:保持现在的朝向前行X米,然后右转。度度熊相信,只要遵循这个指令,它就一定可以抓到最珍奇的精灵球。 但不幸的是,这个指令并不是很有可信度,有时会引导度度熊走回原来的位置。现在它想知道,在第几条指令时它第一次回到已经走

2017-08-24 21:37:28 496

原创 [压位DP]Hdu 6149——Valley Numer II

题目梗概给定一个无向图,图中的点存在高低。 定义山谷为:一个低点连接两个相邻的高点。 求不相交的山谷的最大个数。解题思路一看这个高点个数<=15高点个数<=15就马上想到压位DP。 i表示前i个点,j表示选择高点的状态,直接转移就可以了。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;con

2017-08-24 21:22:39 586

原创 [水题]BZOJ 1257——[CQOI2007]余数之和sum

题目描述给出正整数n和k,计算kk modmod 1+k1 + k modmod 2+k2 + k modmod 3+…+k3 + … + k modmod nn的值。解题思路先把k mod n看成k−n∗n/kk-n*n/k显然对于n/k相同的n形成了一个区间,区间的范围就是n/(n/k+1)+1n/(n/k+1)+1~n/(n/k)n/(n/k)区间的个数显然不超过n√\sqrt n个。然后乱搞

2017-08-20 16:07:41 631

原创 [数位DP+矩阵快速幂优化]BZOJ 1875——[SDOI2009]HH去散步

题目梗概给出一张有向图,并给出一个起点和一个终点。求从起点走到终点走t步的方案数。解题思路比较裸的数位DP。f[i][j]f[i][j]表示第步j走到i点的方案数,转移显然。因为这题有重边,所以i改为第i条边的终点。#include<cstdio>#include<cstring>using namespace std;const int maxn=25,maxm=125,tt=45989;

2017-08-20 15:47:54 593

原创 [分块]BZOJ 4216——Pig

题目梗概给定一个数组。多次询问一个区间的和。解题思路这不是SB题你要想想这是BZOJ的题目,请忽略A+B。你没有足够的空间构造前缀和,但是你能存储下这个数组。那就只能用分块了。#include<cmath>#include<cstdio>#include<algorithm>#define LL long longusing namespace std;inline int _read()

2017-08-15 21:28:02 567

原创 [KMP+矩阵快速幂加速]BZOJ 1009——[HNOI2008]GT考试

题目梗概给出一个不吉利数字A1A2...Am(0<=Ai<=9)有M位A1A2...Am(0<=Ai<=9)有M位。求有多少个n位数满足不包含不吉利数字。解题思路读完题目便能想到一个显然的数位DP,F[i][j]F[i][j]表示长度为i,有长度为j的后缀与不吉利数字匹配。考虑如何转移。发现所有失配到j的状态都可以转移,所以要提前用KMP构造,假设我们构造出矩阵T。但是发现还是超时。接下来我们考虑这

2017-08-14 20:32:01 529

原创 [数位DP]Hdu 2089——不要62

Ps:博主又水blog,是佳龙大神叫我干的。题目梗概一个数被称为吉利(手动滑稽)当且仅当其不含4和62。多次询问一个区间的吉利的个数。解题思路这题应该算是数位DP的裸题吧。考虑求出一个固定长度出现的吉利数,然后分别考虑每一位就可以了。设f[i][0/1/2]f[i][0/1/2]表示长度为ii的吉利个数,首位为2的吉利个数,不吉利的个数。转移方程就不难求出: f[i][0]=9*f[i-1][

2017-08-08 21:30:14 627

原创 [二分图最大独立集]BZOJ 1143—— [CTSC2008]祭祀river

题目梗概给定一张有向图,在这个图上的一些节点放上标记且任意标记节点不被其他标记节点到达。使标记节点个数最大化。解题思路对于每一个点还是进行拆点操作,这样就形成一张二分图。题目答案显然就是二分图的最大独立集。最大独立集=n-最小顶点覆盖,不懂戳这#include<cstdio>#include<cstring>using namespace std;const int maxn=105,maxm

2017-08-07 21:55:11 718

原创 [左偏树+lazy思想]BZOJ 4003——[JLOI2015]城池攻占

题目梗概一棵有根树,每一个节点都是一个城池,有一个防御值si。有若干个战士,第i 个战士初始攻击力为 ai,初始攻击的城池为 ci。如果攻击力大于等于城池的防御值,则攻击成功,战士继续攻击父节点,否则攻击失败。攻击完第i 个城市后战士的攻击力会加上一个数或者乘以一个数(每一个城池属性不同)。每一个战士都是独立的,问每一个战士攻占了几个城池。解题思路先来说说大致思想,我们考虑从叶子节点开始处理,在每个

2017-08-06 21:25:13 760

原创 [树形DP]BZOJ 4033—— [HAOI2015]树上染色

题目梗概给定一棵树,树边有边权。将树上KK个点染成黑色,其余n−Kn-K个点为白色。使相同颜色节点的路径和最大。解题思路不难想到是一个树形DP的题目。考虑每一条边要被计算的次数,我们在进行左儿子右兄弟的合并时,考虑一棵子树的根节点和其fa节点的合并,边就是连接这两个节点的边。这条边加上的值=子树黑点数(n-子树黑点数)+子树白点数(k-子树白点数)枚举子树黑点数,不断修正就可以了。#include<

2017-08-05 21:52:48 1005 2

原创 [K叉哈夫曼树]BZOJ 4198—— [Noi2015]荷马史诗

题目概述并不是很想写概述啊。这不是权限题,来个链接大家自己看下吧:题目传送门解题思路相信大家看来这道题之后都不难联想到哈夫曼编码的原理。Ps:不知道哈夫曼编码,问度娘去吧。这么看来这道题转变为另外一个问题:求一棵K叉哈夫曼树的最小值,并使树的深度最小。首先考虑解决K叉问题,如果是二叉,我们选最小和次小,如果是K叉显然是选择前K小的数合并。但是又存在一个问题,最后剩下的节点个数不一定能被k-1整除,这

2017-08-04 21:44:29 1459

原创 [KMP]POJ 3416——Oulipo

题目传送门 又水blog了,对,我不解释了 这题就是裸的KMP求方案数#include<cstdio>#include<cstring>using namespace std;const int maxn=1000005;int t,n,m,ans,fail[maxn];char a[maxn],b[maxn];void work(){ int j=0; for (i

2017-08-02 12:06:31 373

原创 [随机算法+Hash] Codeforces 799F Round #413 F. Beautiful fountains rows

题目梗概有nn个不同的数字,每个数字只出现在[L,R][L,R]中。 求所有满足要求的区间的长度和。 要求:出现在该区间的所有数字的个数必须为奇数,且必须有数字存在。解题思路考虑一个区间如何才能满足要求。 将每个数字赋上一个(263−1,0](2^{63}-1,0]的随机值。 这个区间所有数字的异或值再异或上这个区间出现过的数字,如果等于0,那么这个区间满足要求。对于区间所有数字的异或值构造

2017-08-01 23:19:06 817

空空如也

空空如也

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

TA关注的人

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