自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java#

时间本就能改变很多东西,让原本的匪夷所思成为理所当然

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

原创 HDU 2136 Largest prime factor

数论题意:给定一个数,求出该数字的最大素因子在素数表中的序号方法:素数筛选+打表在素数筛选的基础上把标记的动作换一下,改成标记当前的素因子序号(想想为什么?),就巧妙的完成题目的要求,接下来打表即可#includeusing namespace std;int k,n;int prime[1000000 + 10];int main(){ memset(pri

2013-04-29 19:43:56 765

原创 HDU 2594 Simpsons’ Hidden Talents

2594题意:给两个字符串str1和str2, 求出是str1的前缀且是str2的后缀的最长的字符串(多组数据,而且长度可以到50000,千万不要有暴力的想法)查考:对KMP算法的理解,next数组的含义,KMP这里略了,需要请参考http://www.cppblog.com/oosky/archive/2006/07/06/9486.htmlhttp://www.cnblogs.com/

2013-04-21 10:09:01 856

原创 HDU 1671 Phone List

题意:给你的电话号码当中,若出现一个电话的前缀是另一个电话则输出NO,不存在则输出YES思路:想暴力?你爆的不止是时间,而且还爆空间题解:字典树,一个相当有用的数据结构,时间空间都无压力,字典树上的一个改动就在结构体加一个字符结束的标记即可#include #include using namespace std;struct Trie{ struct Trie *child[10];

2013-04-20 12:07:50 692

原创 HDU 2844 coins

2844 coins题意:给出每种硬币的价值和数量,问能组成m以内的面值有多少种多重背包二进制优化版,转01会超时的#include#include#define maxn 100010#define max(x,y) (x)>(y)?(x):yusing namespace std;int dp[maxn],n,k;int v[101],w[101],V;void zero

2013-04-19 12:04:36 854

原创 HDU 2191 悼念512汶川大地震遇难同胞

经典多重背包这道题数据不大,使用的转化为01背包解决的,数据大的话就要加入二进制的思想#includeusing namespace std;const int N=1000+10;int cost[N],weight[N],count[N],f[N];int max(int a,int b){ return a>b?a:b;}int main()

2013-04-19 11:27:06 615

原创 HDU 1284 钱币兑换问题

一.经典完全背包#includeusing namespace std;int f[32768];int volume[4]={0,1,2,3};int main(){ f[0] = 1; for(int i = 1; i<=3; i++) { for(int j = volume[i]; j<32768; j++) { f[j] += f[j - volu

2013-04-19 11:05:07 834

原创 HDU 1248 寒冰王座

经典完全背包理解好与01背包的区别#includeusing namespace std;int dp[10010];int cost[3]={150,200,350};int MAX(int x,int y){ return x>y?x:y;}int main(){ int T; int n; while(cin>>T) { memset(dp,0,sizeof(

2013-04-18 15:41:13 851

原创 HDU 2546 饭卡

有限制条件的01背包,关键点最贵的菜最后买,其余的n-1个就是普通的01背包问题#include#includeusing namespace std;const int N=1000+10;int volume[N];int f[N];int MAX(int x,int y){ return x>y?x:y;}int main(){ int n,v;

2013-04-18 14:44:14 673

原创 HDU 2602 Bone Collector

经典01背包,背包入门必需搞懂的题目特点是:每种物品仅有一件,可以选择放或不放。状态转移方程: f[v]=max{ f[v],f[v-c[i]]+w[i] }不过建议看看二维时怎么实现的,理解了再来看这个用一维的实现,看看是怎么空间优化的,怎么使用滚动数组的#includeusing namespace std;const int N=1000+10;int volume[N];in

2013-04-18 14:36:30 624

原创 HDU 2601 An easy problem

题意:给一个n,求它用i * j + i + j来表示的方法有几种题解:n = i * j + i + jn + 1 = (i + 1)(j + 1)即求n + 1的因子个数#include#includeusing namespace std;int main(){ int T; __int64 n; //n太大要用int64来存 cin>>T; while(T-

2013-04-18 14:13:18 579

原创 HUD 1358 Period

1358考查:kmp算法中next数组的理解,求出next数组后.关键点:1.j=i-next[i],i%j==0则说明存在. 2.i/j,就是重复次数j=i-next[i]就是看i和next[i]之间有多少个字母,如果i%j==0,则说明i之前有一个周期性的长度为i-j的子串。例子: str a b a b a b a bnext -1 0 0 1 2

2013-04-14 16:33:25 586

原创 HDU 1171 Number Sequence

1711 Number Sequence题意:KMP模板题,找出短串在长串的匹配到的最近位置KMP这里略了,需要请参考 http://www.cppblog.com/oosky/archive/2006/07/06/9486.html http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.html #

2013-04-14 16:09:42 681

空空如也

空空如也

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

TA关注的人

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