自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Since_natural_ran

Have a pure heart to overcome everything .

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

原创 HDU 2188 博弈 + sg打表

博弈 + sg打表只要当前状态可以转移到的状态中有一个是败态,那么当前状态就是胜态。如果当前状态可以转移到的所有状态都是胜态,那么当前状态就是败态。题意:​ 两个人玩加法游戏,谁先加到>= n,谁胜利,每次每一个人只能加1~m区间的数字。​ 利用第二条性质,可以直接打出表。博弈真是一个妖怪!换了一道题,我竟然还用原来的方法,看来未得真谛,所以要多多思考,当前局面和必败局和必胜局的关系。

2017-08-31 10:33:51 301

原创 POJ 2505 博弈SG打表

博弈SG打表题意:​ 两个人玩乘法游戏,每个人只能乘以2~9,谁先达到>=n谁胜,先手只能乘以1.思路:​ SG的: 除 任意一步所能转移到的子局面的SG值以外的最小非负整数。直接打表找到规律。#include <iostream>#include <cstdio>#include <cstring>#include <set>using namespace std;const int

2017-08-31 09:44:22 437

原创 ZOJ 3963 STL + 贪心

STL + 贪心题意:​ 有n个数字,它们可以再限制条件下可以建树:ai<aj,i<ja_i < a_j, i < j ,满足ai是aj 的父亲节点,一个父亲节点只能最多连两个儿子,现在要求满足条件下如何建树使得树的数量最少,输出每一个树 的大小和节点。思路:​ 这题考察STL和思维能力,若想使得树建的少,那么在插入的节点的时候要寻找比自己小的数字,按照贪心的思想一定要找第一个比自己小的数字

2017-08-30 21:59:58 358

原创 POJ2348简单博弈

简单博弈题意:​ 有两个数字,现在两个人玩游戏,从Stan开始,a和b两个数字可以有一些操作,拿大的数字减去小的数字的倍数,当然不能出现负数,不能减去0,谁先减到0谁就胜。思路:​ 对于两个数字,假设b大,当b-a < a 的时候其实结果已经确定了,只需要知道谁最后减的就行,因为都只能减去小数的一倍,所以只需判断b%a == 0就行。而当b-a > a的时候,谁是现在的状态谁就胜,因为倍数可

2017-08-29 20:28:15 346

原创 POJ 2484 简单博弈

简单博弈题意:​ 有n个硬币排列成一个圆环,现在玩一个游戏,两个人分别拿硬币,只能拿一个或者两个,两个的情况要求相邻。问谁最先没有硬币可拿就是谁输了。思路:​ 从必败态出发,寻找已经成定局的答案,考虑最后只剩两组硬币,那么当前人必输,为什么?可以从只剩两个不相邻的两个硬币看出来,无论当前者怎么拿,对方必胜,那么从n开始推导,无论Alice怎么拿,另一个人操作使得硬币保持两个组,那么Alice

2017-08-29 19:50:32 329

原创 HDU 5475 线段树 + 乘法+取模

线段树 + 乘法+取模题意:​ 有一个数字最开始是1,现在有两种操作,1. 乘以一个数字y,取模输出答案2. 除以一个之前乘以的数字,取模输出答案。思路:​ 操作次数有1e5个,直接乘法也有可能,但是问题是一些数字乘了又除了,直接写很容易由于精度的问题爆了。而线段树竟然可以这样解决!!!线段树维护所有操作,核心操作是乘法,当除以一个数字时,就把那个数字改为1,然后轻轻松松根据回溯就可以不超精

2017-08-29 17:41:21 356

原创 CF C. The Values You Can Make 0-1背包 好题

0-1背包 好题题意:​ 有n个硬币,硬币有对应的价值,现在要挑出一些硬币组成k元,输出挑出的硬币可以组成钱的不同价值。思路:​ 题中问的是挑出的硬币本身可以组合成不同的价值,每一种组合可以是这些挑出的硬币子集。​ 如何做到利用子集?最开始我试着用一维的dp表示可以组合的钱,但是有些没有挑的硬币也被算在其中,所以需要二维dp[i][j]dp[i][j] 表示组合成i 的钱也可以可以组合成

2017-08-29 09:49:35 371

原创 codeforces C. Remembering Strings 状态压缩-预处理

状态压缩-预处理题意:​ 好记的字符串是n个字符串中,每一个字符串至少有一位是与众不同的。现在给你n个字符串,但是有的字符串不满足与众不同,让你修改某一个或者一些位置的字符串使得满足题意,每一个位置的修改都有对应的花费,问最少的花费是多少。思路:​ 之前写过的棋盘问题,条件都是直接看的到的,在进行状态压缩的时候直接可以用到条件,但这种题似乎很难直接想到如何使用条件,不妨先思考如何修改,对于一

2017-08-28 23:14:07 426

原创 HDU 5826 速度+加速度+积分

速度+加速度+积分题意:​ 有n个小球,最开始给出小球的初始位置和初速度和方向,每一个小球的加速度满足C=a∗vC = a*v,C为常数a为加速度v为速度,现在问在t秒的时候,第k小的速度是多少。思路:​ 最开始千万别被吓到,小球的速度因为满足动量守恒,所以即使相撞也只是两个求交换了一下速度,不影响球的实际运动。所以第k 小的速度直接就是最开始的第k小。​ 再求出t秒时候的速度时,可以根

2017-08-28 18:06:07 623

原创 codevs 1557 热浪 SPFA 最短路

SPFA 最短路1557 热浪时间限制: 1 s* 空间限制: 256000 KB** 题目等级 : 钻石 Diamond* 题目描述 Description德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品。Farmer John此时以先天下之忧而忧,后天下之乐而乐的精神,身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛

2017-08-28 16:26:43 274

原创 POJ 1160 区间DP + 平行四边形优化

区间DP + 平行四边形优化题意:​ 有n个村庄现在要建立m个邮局,问怎么建邮局才能使得村庄到最近的邮局距离和最小。输出距离和即可。思路:​ 一般的区间dp是从小区间到大区间,而此题在此之外还有一个限制是m个邮局。对于此类问题可以直接建立dp的时候加上限制条件:dp[i][j]=min(dp[k][j−1]+one[k+1][i])dp[i][j] = min(dp[k][j-1] + on

2017-08-28 09:14:52 594

原创 cf 304 Soldier and Traveling 网络流 + 记录流量情况

网络流 + 记录流量情况题意:​ n个城市,每个城市有最初的卫兵ai,现在需要转移卫兵,第i个城市需要卫兵bi,每一个城市的卫兵可以转移到临近的城市,也就是距离为1的邻近城市,问是否可以转移到,如果可以输出YES并且输出转移情况。思路: ​ 根据题意和城市卫兵转移的性质,可以判断是网路流问题,但是因为有转移的限制所以需要思考如何建图。根据限制,为了保证从ai状态到bi状态,把城市拆分为ai和

2017-08-27 16:49:14 309

原创 CF Bottles 0-1背包

0-1背包题意:​ 有n个瓶子,每一个瓶子有自己的容量v和最初装的水的体积。问最少使用多少瓶子可以把所有的水装起来,此前提下最少花费多少的时间倒水,一单位的水需要1单位时间。思路:​ 瓶子的属性和要求的最优解提示了是一个背包问题。先求出第一个问题,最少需要多少瓶子,那么可以直接根据瓶子的容量求出。关键在于如何求得第二个问题,有两种dp方式:1. dp[i][j]dp[i][j] i个瓶子

2017-08-26 15:05:04 413

原创 CF Bear and Tree Jumps树形DP

树形DP题意:​ 有一棵n个节点的树,现在定义一个函数:s(i,j),i<j,意义是i节点和j节点的距离。s(i,j) , i < j,意义是i节点和j节点的距离。 距离是根据一个跳的次数而定,一个人从i节点每次最多跳k次,而其跳的次数便是距离。思路:​ 一般在树上计算距离或者其它运算的问题,很难离开树形dp的范畴,但是关键在于如何转化问题为结果。​ 这里说i < j ,其实意味着i到

2017-08-26 10:01:54 332

原创 HDU 6178 深搜。。。

深搜。。。题意:​ 有一棵有n个节点的树,现在要去掉多余的边,但是要保证k个特殊节点至少两两连接,问最后可以剩下多少条边。思路:​ 为了保证特殊的节点,最完美的状态时k条边都两两连接,那么会使用k/2条边,(奇数的情况需要加1)。当然如果树中没有那么多的两两连接的边,就会要多用一些边,也就是剩下多少特殊边就要用多少边。所以问题就是找到这样的两两边有多少。为了找出最多的两两边,要从儿子回溯,很

2017-08-25 19:52:49 449

原创 codeforces 423 D. High Load 构造一个思维的树

构造一个思维的树题意:​ 有n个节点,其中有k个特殊节点,特殊的节点只能连接一条边,其它的至少两条边。问如何连接才能使得特殊节点的最远距离最短,输出一种方案。思路:​ 可以看出连接时分层的,最外层只能是K个特殊节点,根据这样的性质可以直接得出最远距离,当(n-1)%k == 0的时候说明恰好有(n-1)/2层,其距离为乘以2,当有余数为1的时候∗2+1既可,其它的就是∗2+2*2 + 1既可

2017-08-25 09:56:48 316

原创 codeforces 280c 概率dp + dfs

概率dp + dfs题意:​ 有一个n个节点的树,现在有一种操作,当给一个节点染黑色的时候,其子树也会被染成黑色。问期望多少次染色之后都会被染成黑色。思路:​ 第一次做概率dp,理解不是很深。​ 对于每一个节点如果要被染色只有两种情况:1. 本身染色,2. 父亲节点染色​ 对于这个树,如果把其每一个节点被染色的可能加起来就是期望。对于染色的结果就是一种:黑色。所以就是1. 在概率

2017-08-25 09:11:20 296

原创 HDU 6161 树形DP + 优化

树形DP + 优化题意:​ 有n个节点标号1~n,根据其公式建树,每个节点有权值最开始就是标号本身,有两种操作,分别是:修改u节点的值为v问经过u节点的路径中最大的权值和是多少思路:​ 对于经过一个节点的路径的权值和来说最大的情况有两种:1. 经过这个节点的父亲加上经过这个节点的某一个儿子的路径 2. 经过这个节点的两个儿子​ 不妨设dp[i]dp[i] 表示经过节点的儿子路径的权

2017-08-23 20:28:42 635

原创 CF 423 C : String Reconstruction

CF 423 C : String Reconstruction题意:​ 有一个字符串被藏起来了,但是有个人知道有些子串出现的位置,现在让你还原这个子串尽可能的字典序小。思路:​ 原来我是直接暴力去模拟,对于每一个位置我不管有没有字符,反正不会矛盾所以直接添加,但是直接RE了,原来是题中说n<105n < 10^5 ,导致数组开小。。。改了数组之后TE,当时觉得是子串之间会重复,但是优化很

2017-08-23 16:09:56 316

原创 HDU 6121 K叉树的异或值和

K叉树的异或值和题意:​ 给出n个节点,节点按照(i−1)/2(i-1)/2 为i的父亲进行建树。问这棵树每一个节点的size异或值的和是多少。思路: ​ 画完图发现这就是一个k叉树,对于k叉树有两个性质:​ http://blog.csdn.net/jaihk662/article/details/77203877#reply 性质:对于一颗满k叉树而言,如果k是偶数,那么它的异

2017-08-23 14:25:42 355

原创 HDU 6170 递推 DP,思考状态的递进

递推 DP,思考状态的递进题意:​ 给出一个原串和一个需要匹配的串,当然匹配串有两种操作。‘.’ 可以变成任何字母 ∗* 可以使得前一个字母变成任何长度>= 0,例如: a∗,可以变成“aa”,“aaa”甚至把a消失“”a*,可以变成“aa”,“aaa”甚至把a消失“ ”问是否能从匹配串变成原串。题意:​ 当前串能不能匹配需要知道之前一个串状态,很明显的dp问题,为什么我当时没有想出来

2017-08-23 10:41:57 341

原创 HDU 6156 数位DP

数位DP题意:​ 一个10进制数字可能是一个回文串,类似的在其它进制下也可能出现回文数字,给出一个区间,问在k1进制到k2进制下有多少回文数字。思路:​ 数位dp在计算的时候会考虑上下界的问题,会把问题转化为求出0到某一个区间的问题,然后按照数位进行递归求解,难点在于如何限制条件使得所问等于所求。这里用到了一个数组a,保存的是回文数字的每一位,然后在每一位是否取i值的时候直接判断即可。注意

2017-08-23 09:01:15 366

原创 POJ 2406 kmp + 循环节

kmp + 循环节题意:​ 给出一个字符串求出它是由几个循环节组成的。思路:​ 若一个字符串有循环节,那么整个字符串前缀与后缀相同的最长长度就是循环节的个数-1,并且总的字符串长度可以除尽循环节长度。根据这两条性质利用Next取判断即可。#include <iostream>#include <cstdio>#include <cstring>using namespace std;co

2017-08-23 08:15:00 287

原创 POJ 2406 kmp + 循环节

kmp + 循环节题意:​ 给出一个字符串求出它是由几个循环节组成的。思路:​ 若一个字符串有循环节,那么整个字符串前缀与后缀相同的最长长度就是循环节的个数-1,并且总的字符串长度可以除尽循环节长度。根据这两条性质利用Next取判断即可。#include <iostream>#include <cstdio>#include <cstring>using namespace std;co

2017-08-23 08:14:33 301

原创 HDU 2752 kmp next的应用

kmp next的应用题意:​ 给出一个字符串,这个字符串有很多前缀额和后缀,现在问有多少前缀与后缀相同,输出其长度即可。思路:​ 这道题利用到了next数组的含义:Next[i] 在子串0~i-1长度为i的子串中最长的前缀与后缀相同的长度。那么通过Next[len-1] 找到一个最长的,然后在最长的子串中接着找出次长的,以此类推。#include <iostream>#include <

2017-08-21 10:08:19 332

原创 HDU 5067 状态压缩DP + TSP

状态压缩DP + TSP题意:​ 有n∗mn*m 的地图,地图上有一些石头,现在需要用最短的时间去到达这些石头,单位距离所花费的时间为1.思路:​ 单单去看原题是具有迷惑性质的,讲了很多乱七八糟的,所以在看题的时候需要抽象化问题,这道题因为清理石头不花费时间,而费时间的是如何到达所有石头才最快,也就是距离最短,经典的TSP问题,而石头的位置不超过10个,所以可以把石头的状态压缩在数字中,st

2017-08-20 20:07:42 292

原创 HDU 3811 状态压缩DP

状态压缩DP题意:​ 有n个不同的数字,现在有m个限制条件,分别是第Ai位数字是挑选的Bi。限制条件至少满足一个。问n个数字全都用到而组成的数字有多少种?思路:​ 最开始感觉很像组合数,但是写的时候会发现限制条件会发生冲突,比如位置1不能放置2,但是位置3也不能放置2,这样会增加排列组合的难度,使用容斥也可以写出,但是我不会。​ 考虑到n最多17个,而对于由i个数字组成的数字,可以写出其

2017-08-18 17:49:32 473

原创 HDU 4529 状态压缩DP

状态压缩DP题意: Problem Description   郑厂长不是正厂长   也不是副厂长   他根本就不是厂长   还是那个腾讯公司的码农   一个业余时间喜欢下棋的码农   最近,郑厂长对八皇后问题很感兴趣,拿着国际象棋研究了好几天,终于研究透了。兴奋之余,坐在棋盘前的他又开始无聊了。无意间,他看见眼前的棋盘上只摆了八个皇后,感觉空荡荡的,恰好

2017-08-18 09:58:39 336

原创 POJ 1185 状态压缩DP

状态压缩DP题意: 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用”H” 表示),也可能是平原(用”P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格

2017-08-18 00:46:57 310

原创 HDU 6143 排列组合 - DP

排列组合 - DP题意:​ 给出m字母,现在要求用m个字母去取名字,firstname 和 lastname 不能同时存在相同字母,问:会有多少种组合数,对于firstname 和 lastname 必须保证长度为n。​ 数据量0<n,m<2000 0 < n,m < 2000题意:​ 最开始最开始用的DP去推出所有的解,复杂度达到了n3n^3 ,平常对复杂度的不重视导致比赛时候频频犯

2017-08-17 23:58:57 461

原创 HDU 3565 数位DP + 上下界

数位DP + 上下界题意:​ 定义双峰数:先上升后下降,若一个数字中恰好存在两个这样的状态就计算这个数字的所有位数和。给出一个区间,求出最大的和。(每一个峰不予许出现前导0)思路:​ 数位DP一般给出一个范围,从0到某一个数字,而这个题不行,因为数字有限制,有左区间。所以要做的就是枚举范围内的每一数字的状态,当然直接暴力是不可能的,而数字不超过30位,所以枚举数字,而限制可以通过上下界来确定

2017-08-16 22:46:56 485

原创 HDU 6121 满k叉树 + 思维

满k叉树 + 思维题意:​ 给出n个节点,按照 公式给的方式建树,每一个节点儿子节点的个数加上自己本身就是它的size,求出n个节点的size的^值。思路:​ 首先需要知道这个树是什么样子的,通过在本子上画图很容易发现这就是一个k叉树。对于一个满的k叉树,其所有size的异或值就是size本身​通过这个性质发现,难点是在于怎么找到所有的子满k叉树,问题变成找到不满的k叉树的子树,然后知道其

2017-08-16 21:53:24 586

原创 BZOJ 1026 数位DP

数位DPDescription  windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道, 在A和B之间,包括A和B,总共有多少个windy数?Input  包含两个整数,A B。Output  一个整数思路:​ 这一类的简单数位DP,可以在限制条件下,处理所有的可能。​ 然后在细致考虑最大的哪一种情况,满足条件下求和即可。#

2017-08-15 08:43:26 263

原创 HDU 4352 数位DP + LIS

数位DP + LIS题意:​ 每一个数字都有最长上升子序列,给出一个范围,求出里面的最长上升子序列为k 的数字个数。思路:​ 数位DP枚举的是每一个数位上的所有情况,当枚举到一个数字的时候其最长上升子序列可以压缩在一个二进制中,而二进制1出现的次数就是最长上升子序列的长度,其思想和LIS 的思想抑制。定义:dp[i][s][k]dp[i][s][k] 表示从最高位到第i位数字组成的数字最长上

2017-08-14 22:22:31 285

原创 HDU 4398 STL + 贪心

STL + 贪心题意:​ ACM-ICPC赛事上有n,1~n道题,m个模板(1~m),只有对应的模板才能解出对应的题目,现在规则有点改变,当你没有某一道题的模板的时候能从场外求助获得此模板,但是用完之后你需要从m+1个模板中拿出来一个放在外边,总之就是要保持自己只有m 个模板,问最少可以求助几次?思路:​ 若想最少次,那么可以先考虑当模板不够的时候求助一次,然后再放出去一个模板,该放哪一个呢

2017-08-12 19:21:52 386

原创 HDU 4734 数位DP

数位DP题意:​ 定义:F(x)=An∗2n−1+An−1∗2n−2+...+A2∗2+A1∗1F(x) = A n * 2 n-1 + A n-1 * 2 n-2 + ... + A 2 * 2 + A 1 * 1 为一个数子x的权重,现在给出一个数字A,可以求出它的权重,问0~B之间有多少权重小于等于A的权重的数字。思路:​ 考虑到A的范围,它的权重最大也不超过10000,所以可以定义:

2017-08-12 18:20:21 201

原创 HDU 6105 博弈 ? 都是思维

博弈 ? 都是思维题意:​ Alice和Bob玩一个游戏,喷漆!现在有一棵树上边的节点最开始都没有被染色。​ 游戏规则:1. Alice和Bob只能选择未被染色的节点染色,Alice染色成白色,Bob为黑色2. Alice最先开始3. Bob有k次机会可以把树上的线段剪断4. 最后树上有白色Alice胜利,否则是Bob胜利思路:​ 先考虑Alice胜利的情况:Alice如果胜利

2017-08-11 18:48:39 442

原创 HDU 6103 枚举 +尺取

枚举 +尺取题意:​ 给出一个字符串,问两个不相交的字串对称相减的绝对值和小于等于 m的最长长度。思路:​ 如果存在两个不相交的字串,那么必然两个字串之间存在对称轴,分为两种:1. 子串之间有奇数个其它字符,那么枚举其中的字符。2. 子串之间有偶数个其它字符,那么枚举其中的空格。对称轴确定之后,对对称的串计算出其对称相减的和保存在数组中,那么问题转化为,在一个数组中找出和小雨等于m的最长

2017-08-11 09:24:19 329

原创 ZOJ 1654 网络流解决棋盘问的二分图问题

网络流解决棋盘问的二分图问题题意:​ 有一个m行n列的土地,上面分成三种情况o代表空地,#代表墙,*代表草地,现在要放机器人在空地上,限制条件是:机器人可以攻击所在的行和列,直到遇到墙,问:最多放几个机器人?思路:​ 思考一个空地放不放机器人有什么决定?由所在的行和列的其它空地的情况所决定,如果一个空地在一行和一列只有它自己那么这个土地一定需要放机器人,而当它所在的行和列有机器人的时候如果把

2017-08-10 09:48:57 309

原创 HDU 2089 数位DP + 特殊数字的限制

数位DP + 特殊数字的限制题意:​ 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的号码。例如: 62315 73418 88914 都属于不吉利号码。但是,61152虽然含

2017-08-09 18:38:08 327

空空如也

空空如也

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

TA关注的人

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