自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 单例模式

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。以下代码通过单例模式保证皇帝的唯一性。皇帝类:public class Emperor { private static Emperor emperor=null; private Emperor() { }/...

2018-09-11 17:05:48 166

原创 文章标题

[简单DP]N - Longest Ordered Subsequence POJ - 2533 题意:最长递增子序列,n<=1000 分析:比较好理解的就是O(n*n)复杂度的。。。。还可以通过二分优化成o(n*logn)的。。。我用的前者 代码:#include<stdlib.h>#include<string.h>#include<algorithm>#include<ma

2017-07-31 14:52:21 257

原创 文章标题

[简单DP]L - Common Subsequence POJ - 1458 题意:最长公共子串,DP入门题目。 分析:我直接用的O(n*m)的做法。。。 代码:#include<stdlib.h>#include<string.h>#include<algorithm>#include<math.h>#include<stdio.h>#include<queue>using

2017-07-31 14:48:11 266

原创 [简单DP]FatMouse's Speed HDU - 1160

[简单DP]FatMouse's Speed HDU - 1160 题意:给定一组数,每组包含两个整数。要求输出该组数的一个子集,该子集的第一个数逐渐增大,第二个数逐渐变下。使得这个子集尽可能的大并输出对应小标。 分析: 题目很简单,说白了就是对第一个或者第二个数字排序下,然后求另外一个数字的递减或者递增序列。 由于要输出序列,所以要记录下子集中每组数的前一组数的下标,然后递归输出。 代码

2017-07-31 14:35:54 273

原创 [简单DP]Tickets HDU - 1260

[简单DP]Tickets HDU - 1260 题目大意:对于每个样例,告诉你需要卖票给K个人,每次可以卖1张或者两张,然后告诉你K个数字,分别是卖给K个人需要的时间,最后告诉你K-1个数字,是第i-1和第i个人的票一起售出的时间。从八点开始卖票,问最早什么时候可以卖完。 分析:DP,只有一个变量,就是卖到第I个人所需要的时间,定义dp[i]。但是我们发现每次决策都有两种,一是当前这个人单独卖

2017-07-31 13:48:01 284

原创 [简单DP]免费馅饼 HDU - 1176

[简单DP]免费馅饼 HDU - 1176 分析: 题目说gameboy想要吃尽可能多的饼,那就往DP想吧。。。发现影响结果的因素分别是时间和位置。因此我们使用DP[i][j]表示第i秒站在j位置时,得到的饼的最大值。题目限定开始位置在5处,并且每次只能移动一个单位。 状态转移方程: dp[i][j]=max(dp[i-1][j-1],max(dp[i-1][j],dp[i-1][

2017-07-29 09:53:58 296

原创 [01背包] Piggy-Bank HDU - 1114

[01背包] Piggy-Bank HDU - 1114 题目大意:告诉你空储蓄罐的重量和装满硬币后的重量,一次每种硬币的重量和价格。问你储蓄罐至少装了多少钱。 分析:01背包,不过那个是求最大,这个是求最小而已。。一模一样。#include<stdlib.h>#include<string.h>#include<algorithm>#include<math.h>#include<s

2017-07-29 09:38:24 274

原创 [简单DP]Super Jumping! Jumping! Jumping! HDU - 1087

[简单DP]Super Jumping! Jumping! Jumping! HDU - 1087 题目大意:给你一个1*(n+2)的棋盘,第一个为开始,最后一个结束,中间有N个数字。从“”开始“”开始跳跃,你可以跳跃任意多个棋子,比如可以直接跳到“”结束“”,这样得分为0。跳到数字上时,每次只可以跳到比当前数字大的棋子上。最后得到的分数为跳跃棋子数字之和,问你最大是多少。 分析:明显是求最大

2017-07-29 09:32:52 275

原创 [思维题] Ignatius and the Princess IV HDU - 1029

[思维题] Ignatius and the Princess IV HDU - 1029 题目大意:在给定的N个数字中,有个数字出现至少(N + 1)/ 2次,让你找出他。 分析:这道题kuangbin大神把他放到了简单DP里,我没看出怎么DP。。。我是这么想的,既然这个数字出现了(N + 1)/ 2次,那么只有它可以和其他数字一一抵消并且最后还有剩余。所以O(N)模拟下就是答案。

2017-07-29 09:24:47 243

原创 [简单DP]Monkey and Banana HDU - 1069

[简单DP]Monkey and Banana HDU - 1069 题意:给你N种类型长方体,长宽高分别为X,Y,Z,每种长方体都可以无限制的使用。现在让你把他们一个接着一个组成一个尽可能高的塔,每一层只能有一个长方体,并且上一层的长方体的长和宽要严格大于它下面长方体的长和宽。 分析:塔的高度只和用多少种长方体有关,因此我们可以使用dp[i]表示使用i种长方体可以组成的最大高度,塔底的长和宽

2017-07-29 09:20:13 246

原创 [简单DP]Max Sum Plus Plus HDU 102

[简单DP]Max Sum Plus Plus HDU 102题目大意,给你N个数字,要求分为m段不相交的字段,求总和最大。例如,-1、 4、 -2、 3、 -2、 3、6个数字,分成两个子段的话,我们可以分成4一段,3、-2、3一段,这样总和为8最大。分析:第一次看到这道题的时候自己不会,参考网上的题解做的。今天是第二次做,打算好好分析下。很显然,这是一道DP。首先去

2017-07-28 15:56:03 237

原创 [前缀和] Codeforces Round #419 (Div. 2)B. Karen and Coffee

[前缀和] Codeforces Round #419 (Div. 2)B. Karen and Coffee 题目大意:给你n次更新, 整数k,以及q次询问,都是200000.每次更新,[l,r]内的整数+1,每次查询,问 区间[a,b]内所有整数元素出现次数超过k次的总和。。。 分析: 一开始200000*200000暴力处理了每个元素出现的次

2017-06-18 16:55:55 348

原创 [区间dp 构建回文串] Cheapest Palindrome POJ - 3280

[区间dp 构建回文串] Cheapest Palindrome POJ - 3280 题目大意:给定一个字符串,可以任意添加或者删除字符,构成一个回文串,添加或者删除都有一定的代价,问总代价最小是多少? 分析:首先可以考虑,添加一个字符或者减少一个字符,意义是等价的,所以我们可以两者取最小的。 对于dp[i][j],肯定是增加一个s[i]的话费或者增加一个s[j]的花费。 如

2017-05-31 16:11:41 400

原创 [区间dp] Dire Wolf HDU - 5115

[区间dp] Dire Wolf HDU - 5115题目大意:有n只狼要被消灭,杀第i只狼,猎人会受到(i-1)和(i+1)号狼的额外攻击和i号狼的正面攻击,如果两侧不存在的狼,那么不会受到额外攻击,问杀死所有狼后,猎人收到的最低伤害是多少。 分析:区间dp,狼被杀的顺序不一样,收到的伤害也就不同,因为我们要在区间内枚举最后一条被杀的狼,采取递推的形式,由小区间推向大区间。 dp[

2017-05-31 15:58:03 448

原创 [区间DP 好题] Food Delivery ZOJ - 3469

[区间DP 好题] Food Delivery ZOJ - 3469 题目大意:一家外卖店送外卖,同时有多个买家叫了外卖,假设他们都在一条直线上。每个买家都有一个焦虑值,等的时间越长,焦虑值越大。现告诉你外卖员的位置,移动速度,以及各个买家在直线上的坐标以及他们在单位时间内的愤怒值,现在外卖员想所有买家愤怒的总和尽可能的小,问你最小能是多少。(假设外卖员把外卖送到买家手里的时间忽略不计)。

2017-05-31 15:49:30 493

原创 [区间DP] Multiplication Puzzle POJ - 1651

[区间DP] Multiplication Puzzle POJ - 1651 题目大意:给定一个数组,第一个数和最后一个数不能选,每次拿走一个数,得到的价值为该数字和左右相邻的三个数字的乘积,n-2次操作后,求最小的价值为多少。最小的价值定义为n-2次操作的累加和。 分析:首先想到区间DP,dp[i,j],定义为区间[i,j]的最小价值,对于每个区间,我们可以枚举最后取的那个值,dp[i][j

2017-05-31 15:35:13 302

原创 [区间DP] Zuma CodeForces 607B

**[区间DP] Zuma CodeForces 607B**题目大意:给你一个数字串,每次只能删除一个回文串,问最少多少次可以删完。 分析:区间dp,特殊处理的必然是s[i]==s[j],这时候dp[i][j]=dp[i+1][j-1],因为这两个字符可以 和区间[i+1,j-1]的某个字串构成一个回文串,可以“消掉”。对于区间[i,j],枚举分割点,k。 dp[i][j

2017-05-31 11:47:53 349

原创 [区间DP] The Specials Menu LightOJ - 1025

[区间DP] The Specials Menu LightOJ - 1025 题目大意:给定一个字符串,可以在任意位置,删除任意多个字符,但最少要保留一个,问有多少种删除方式,使其变成回文串。 分析:dp[i][j]表示区间[i,j]的删除方式,对于dp[i,j]=dp[i+1,j]+dp[i,j-1]-dp[i+1][j-1],如果s[i]==[j] dp[i][j]+=dp[i+1][j

2017-05-30 16:53:51 274

原创 [区间DP] A - Easy Game LightOJ - 1031

[区间DP] A - Easy Game LightOJ - 1031 题目大意:A.B两个人玩游戏,给一个长度为n的整数数组,每人每次可以从左边或者右边取最少一个数字,假设每人每次的操作对自己都是最优的,A先取,问最后A比B的总和大多少,总和定义为,每人取的所有数的累加和。 分析:参考网上的博客,dp[i][j]表示区间[i,j]内,A比B多拿的,然后就是区间DP比较典型的,两个for枚

2017-05-30 16:17:31 295

原创 [区间DP 22 Halloween Costumes LightOJ - 1422 ]

[区间DP 22 Halloween Costumes LightOJ - 1422 ]题目大意:一个人去参加N个舞会,每个舞会对着装都有要求,他可以身上同时穿多件衣服,也可以脱下,现在按顺序告诉你每个舞会的着装要求,问他最少需要穿几次衣服。 分析:dp[i][j]表示从i到j最少需要穿几次衣服 两个for枚举区间,对于区间[i,j],枚举k,if(num[i]==num[k])dp[

2017-05-30 15:24:43 513

原创 [区间DP入门 括号匹配]Brackets POJ - 2955

[区间DP入门 括号匹配]Brackets POJ - 2955题目大意:给你一个字符串,字符由(,), [,]构成,通过删除一些字符串或者不删除,找到最长的回文串输出长度。 分析:这是做过的第一道区间DP题目,是参考网上的博客写的,不是太难理解。 dp[i][j],表示从i到j的字符串中,最长的回文串。 用两个for去枚举所有的区间,对于每个区间,枚举每个点,看和i是否相等。

2017-05-30 15:05:08 388

原创 [线段树 段更新] HDU - 1698 E - Just a Hook

**[线段树 段更新] HDU - 1698 E - Just a Hook**题目大意:有一个长度为n的钩子,它由n个小钩子构成,每个小钩子初值为1。由一种操作,对于区间 [x,y],将该区间内每个小钩子的值更新为x(1<=x<=3)。求最后大钩子的总价值。

2017-05-26 20:35:59 386

原创 [线段树 点更新 段查询]A - 敌兵布阵 HDU - 1166

**[线段树 点更新 段查询]A - 敌兵布阵 HDU - 1166 **

2017-05-25 21:00:36 465

原创 [线段树] POJ - 3264 Balanced Lineup

**[线段树] POJ - 3264 Balanced Lineup** 线段树入门

2017-05-25 20:50:04 379

原创 [离散化+线段树] POJ - 2528 Mayor's posters

Mayor's posters POJ - 2528 线段树

2017-05-25 20:42:31 452

原创 CodeForces 429B Working out

题目链接:http://codeforces.com/problemset/problem/429/BB. Working outtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstanda

2016-12-29 11:35:01 423

空空如也

空空如也

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

TA关注的人

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