自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(744)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 2098 分拆素数和(素数)

HDU 2098 分拆素数和(素数)http://acm.hdu.edu.cn/showproblem.php?pid=2098题意: 给你一个偶数,问你这个偶数有多少种方式能由两个不同的素数构成?分析: 首先求出10000以内的所有素数。 如果这个偶数X能有两个不同的素数构成,那么一定一个小于(X/2-1). 只要从小到大枚举这个比较小的素数a,然后看看X-b是否是素数即可得到一种组合方式。 依次统计所有组合方式即可。AC代码:

2014-11-16 13:26:58 1735

原创 POJ 3518 Prime Gap(素数)

POJ 3518 Prime Gap(素数)http://poj.org/problem?id=3518题意: 给你一个数,如果该数是素数就输出0. 否则输出比这个数大的素数与比这个数小的素数的差值。分析: 明显本题先要用筛选法求出130W(严格的话应该是求第100001个素数)以内的所有素数。 然后判断给的数是否是素数即可。 如果不是素数,那么就找出它在素数素组内的上界和下界,输出两个素数的差值即可。 筛选法求素数可见:

2014-11-16 12:48:06 1308

原创 POJ 2262 Goldbach's Conjecture(素数相关)

POJ 2262 Goldbach's Conjecture(素数相关)http://poj.org/problem?id=2262题意: 给你一个[6,1000000]范围内的偶数,要你将它表示成两个素数相加和的形式。如果存在多组解,请输出两个素数差值最大的解。分析: 首先我们用素数筛选法求出100W以内的所有素数。 筛选法求素数可见: http://blog.csdn.net/u013480600/article/details/411200

2014-11-15 11:15:55 1042

原创 POJ 2739 Sum of Consecutive Prime Numbers(素数)

POJ 2739 Sum of Consecutive Prime Numbers(素数)

2014-11-14 17:11:49 1555

原创 POJ 3978 Primes(求范围素数个数)

POJ 3978 Primes(求范围素数个数)http://poj.org/problem?id=3978题意: 给你一个区间范围A和B,要你求出[A,B]内的素数个数。其中B<=100000。分析: 首先我们求出2到10W的素数表,把每个素数按从小到大的顺序保存在prime数组中。然后我们用二分查找找到A的下界和B的上界,然后用上界-下界即为素数个数。 程序实现用了两种筛选法来求素数表。两种筛选法都是基于每个自然合数都可以分解为:最小素因子p*剩余部分q。

2014-11-14 16:10:04 4743 2

原创 HDU 4512 吉哥系列故事——完美队形I(LCIS最长公共上升子序列)

HDU 4512 吉哥系列故事——完美队形I(LCIS最长公共上升子序列)http://acm.hdu.edu.cn/showproblem.php?pid=4512题意: 吉哥这几天对队形比较感兴趣。  有一天,有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则称之为完美队形:  1、挑出的人保持他们在原队形的相对顺序不变;  2、左右对称,假设有m个人形成新的队形,

2014-11-14 11:26:55 1270

原创 HDU 1423 Greatest Common Increasing Subsequence(最长公共上升LCIS)

HDU 1423 Greatest Common Increasing Subsequence(LCIS)http://acm.hdu.edu.cn/showproblem.php?pid=1423题意:       给你两个数字组成的串a和b,要你求出它们的最长公共严格递增子序列的长度(LCIS).分析:       首先我们令f[i][j]==x表示是a串的前i个字符与b串

2014-11-13 23:36:08 1649

原创 HDU 1025 Constructing Roads In JGShining's Kingdom(构建道路:LIS问题)

HDU 1025 Constructing Roads In JGShining's Kingdom(构建道路:LIS问题)http://acm.hdu.edu.cn/showproblem.php?pid=1025题意: 有2n个点分布在平行的两条直线上, 上面那条是富有城市的1到n个点(从左到右分布), 下面那条是贫穷城市1到n个点(从左到右分布). 现在给出每个贫穷城市需要连接的富有城市的编号, 即(i,j)表示i贫穷城市只能连接j号富有城市 , 问你最多能构建几条贫穷城市到富有城市

2014-11-06 11:02:37 1164 1

原创 POJ 1887 Testingthe CATCHER (LIS:最长下降子序列)

POJ 1887 Testingthe CATCHER (LIS:最长下降子序列)http://poj.org/problem?id=3903题意: 给你一个长度为n (n<=200000) 的数字序列, 要你求该序列中的最长(严格)下降子序列的长度.分析: 读取所有输入, 将原始数组逆向, 然后求最长严格上升子序列即可. 由于n的规模达到20W, 所以只能用O(nlogn)的算法求. 令g[i]==x表示当前遍历到的长度为i的所有最长上升子序列

2014-11-05 15:15:20 1098

原创 POJ 3903 Stock Exchange (LIS:最长上升子序列)

POJ 3903 Stock Exchange (LIS:最长上升子序列)http://poj.org/problem?id=3903题意: 给你一个长度为n (n<=100000) 的数字序列, 要你求该序列中的最长(严格)上升子序列的长度.分析: 由于n的规模达到10W, 所以只能用O(nlogn)的算法求.令g[i]==x表示当前遍历到的长度为i的所有最长上升子序列中的最小序列末尾值为x.(如果到目前为止, 根本不存在长i的上升序列, 那么x==INF无穷大)假设当前遍历到了第j个值即a

2014-11-05 14:44:14 1479 1

原创 POJ 1631 Bridging signals(LIS:最长上升子序列)

POJ 1631 Bridging signals(LIS:最长上升子序列)http://poj.org/problem?id=1631题意: (题意比较繁琐)本质就是: 给你一个长为n(n<=40000)的整数序列, 要你求出该序列的最长上升子序列LIS.分析: 如果用O(n^2)的算法的话, 可能会超时. 所以用O(n*logn)的算法.令g[i]==x表示当前遍历到的长度为i的所有最长上升子序列中的最小序列末尾值为x.(如果到目前为止, 根本不存在长i的上升序列, 那么x==INF无穷大)

2014-11-05 12:36:29 1247

原创 POJ 2533 Longest Ordered Subsequence(LIS:最长上升子序列)

POJ 2533 Longest Ordered Subsequence(LIS:最长上升子序列)http://poj.org/problem?id=2533题意: 给你一个长度为n的数字序列, 要你求该序列中的最长(严格)上升子序列的长度.分析: 解法一: O(n^2)复杂度. 令dp[i]==x 表示以第i个数字结尾的上升子序列中最长的为x长度. 初始化: dp[0]=0且dp[i]=1 i>=1时. 状态转移: dp[i] =

2014-11-05 11:19:32 1022

原创 HDU 1503 Advanced Fruits(LCS变形且输出解)

HDU 1503 Advanced Fruits(LCS变形且输出解)http://acm.hdu.edu.cn/showproblem.php?pid=1503题意: 给你两个字符串s1和s2, 要你输出它们的并串s. 其中s1是s的一个子序列且s2也是s的一个子序列且s是所有符合前面要求的最短字符串.分析: 令dp[i][j]==x表示s1串的前i个字符和s2串的前j个字符组成的串的LCS长度为x. 我们先求出LCS的dp数组值. 然后按照POJ2250:

2014-11-04 16:49:56 1096

原创 POJ 1080 Human Gene Functions(求两字符串相似度:LCS变形)

POJ 1080 Human Gene Functions(求两字符串相似度:LCS变形)http://poj.org/problem?id=1080题意: 给你两个由字符A,C,G,T构造的字符串s1和s2, 现在你可以在这两个字符串中插入空格, 使得两串长相等(但是不能使得s1的空格对应s2的空格位置). 然后给你s1的特定字符对应s2中特定字符所能获得的分数矩阵: 问你最后两个字符串所能获得的最大分数是多少?分析: 本题很类似于求字符串最短编辑距离或者求

2014-11-04 15:02:54 1219

原创 POJ 1159 Palindrome(字符串变回文:LCS)

POJ 1159 Palindrome(字符串变回文:LCS)http://poj.org/problem?id=1159题意: 给你一个字符串, 问你做少需要在该字符串中插入几个字符能是的它变成一个回文串.分析: 首先把原字符串和它的逆串进行匹配, 找出最长公共子序列. 那么最长公共子序列的字符串肯定是一个回文串. 所以原串剩下的部分是不构成回文的. 我们只需要添加剩下部分的字符到对应位置, 原串自然就变成了一个回文. 所以本题的解为: n 减去 (原串与逆

2014-11-04 12:12:15 1069

原创 POJ 3356 AGTC(最小编辑距离)

POJ 3356 AGTC(最小编辑距离)http://poj.org/problem?id=3356题意: 给出两个字符串x 与 y,其中x的长度为n,y的长度为m,并且m>=n.然后y可以经过删除一个字母,添加一个字母,转换一个字母,三种操作得到x.问最少可以经过多少次操作分析: 我们令dp[i][j]==x表示源串的前i个字符变成目串的前j个字符需要x步操作. 初始化: dp[0][i]==i且 dp[i][0]=i. 上述前者表示添加源串

2014-11-04 10:29:49 1700

原创 POJ 2250 Compromise(最长公共子序列LCS)

POJ 2250 Compromise(最长公共子序列LCS)http://poj.org/problem?id=2250题意: 给你两段由空格分隔的语句, 要你求该两段语句的最长公共子序列. 且随便输出一个解即可. 注意每个单词需要看成我们一般处理字符串子序列的一个单独字符. 即每个单词是一个整体.分析: 与往常计算最长公共子序列一样的方式即可. 然后用DFS输出序列即可.本题与POJ1458提供的解法本质一样.http://blog.csdn.net/u0134806

2014-11-03 17:36:20 1961

原创 POJ 1458 Common Subsequence(最长公共子序列LCS)

POJ 1458 Common Subsequence(最长公共子序列LCS)http://poj.org/problem?id=1458题意: 给你两个字符串, 要你求出两个字符串的最长公共子序列长度.分析: 本题不用输出子序列,很简单,直接处理即可. 首先令dp[i][j]==x表示A串的前i个字符和B串的前j个字符的最长公共子序列长度为x. 初始化: dp全为0. 状态转移: If A[i]==B[j] then

2014-11-03 15:14:57 6946

原创 POJ 1849 Two(遍历树)

POJ 1849 Two(遍历树)http://poj.org/problem?id=1849题意: 有一颗n个结点的带权的无向树, 在s结点放两个机器人, 这两个机器人会把树的每条边都走一遍, 但是最后机器人不要求回到出发点. 问你两个机器人走的路总长之和的最小值是多少?分析: 首先本题只要求出树的直径, 然后用树的总长sum*2-树的直径就是所求结果. 下面一步步来说明为什么是这样的. 1.假设只有1个机器人遍历树, 且要求回到原点, 它最少需要走多少路?

2014-11-02 15:50:16 1598 1

原创 POJ 1985 Cow Marathon(树的直径)

POJ 1985 Cow Marathon(树的直径)http://poj.org/problem?id=1985题意: 有一个树结构, 给你树的所有边(u,v,cost), 表示u和v两点间有一条距离为cost的边. 然后问你该树上最远的两个点的距离是多少?(即树的直径)分析: 对于树的直径问题, <<算法导论>>(22 2-7)例题有说明. 具体解法: 首先从树上任意一个点a出发, (BFS)找出到这个点距离最远的点b. 然后在从b点出发(BFS)找到距离

2014-11-02 12:18:10 1560

原创 POJ 2631 Roads in the North(树的直径)

POJ 2631 Roads in the North(树的直径)http://poj.org/problem?id=2631题意: 有一个树结构, 给你树的所有边(u,v,cost), 表示u和v两点间有一条距离为cost的边. 然后问你该树上最远的两个点的距离是多少?(即树的直径)分析: 对于树的直径问题, <<算法导论>>(22 2-7)例题有说明. 具体解法: 首先从树上任意一个点a出发, (BFS)找出到这个点距离最远的点b. 然后在从b点出发(BF

2014-11-02 11:04:06 1327

原创 UVA 10163 Storage Keepers(两次DP)

UVA 10163 Storage Keepers(两次DP)http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1104题意:       有n个仓库(最多100个),m个管理员(最多30个),每个管理员有一个能力值P(接下来的一行有m个数,表示每

2014-11-01 16:28:16 1336

原创 HDU 4341 Gold miner(分组背包)

HDU 4341 Gold miner(分组背包)http://acm.hdu.edu.cn/showproblem.php?pid=4341题意: 一个人在原点(0,0)抓金子,每块金子是二维坐标平面的一个点(x,y)且y>0. 每块金子有一个价值v和获得需要的时间t。如果多个金子在一条从原点射出的直线上,那只能先抓近的,再抓远的。求在给定时间T下,所能获得的最大价值。分析: 首先想想如果所有点都不共线是什么情况? 就是在给定时间T内要获取最大的价值和的点, 且所有点都可

2014-10-31 16:24:07 1309

原创 HDU 3535 AreYouBusy(混合背包)

HDU3535 AreYouBusy(混合背包)http://acm.hdu.edu.cn/showproblem.php?pid=3535题意: 给你n个工作集合,给你T的时间去做它们。给你m和s,说明这个工作集合有m件事可以做,它们是s类的工作集合(s=0,1,2,s=0说明这m件事中最少得做一件,s=1说明这m件事中最多只能做一件,s=2说明这m件事你可以做也可以不做)。再给你ci和gi代表你做这件事要用ci的时间,能获得gi的快乐值。求在T的时间内你能获得的最大快乐值。分析:

2014-10-31 12:47:07 2302 2

原创 HDU 1712 ACboy needs your help(分组背包)

HDU 1712 ACboy needs your help(分组背包)http://acm.hdu.edu.cn/showproblem.php?pid=1712题意: 小杰有m天的时间去上n门不同的课. 对于第i门课来说, 如果小杰花j天的时间在该课上, 你们小杰可以获得val[i][j]的价值. 现在给出矩阵val[n][m], 要你求出小杰能获得的最大价值和?分析: 咋一看, n门课, m天的时间, 要我们求最大价值. 那么明显是从n门课中选出合适的几门, 是的总花费

2014-10-31 10:00:12 992

原创 POJ 3211 Washing Clothes(01背包)

POJ 3211 Washing Clothes(01背包)http://poj.org/problem?id=3211题意: 有m (1~10)种不同颜色的衣服总共n (1~100)件,Dearboy和她的girlfriend两个人要一起洗完全部衣服,为了预防色彩混合,他们每次只能同时洗同一种颜色的衣服,给出洗完每件衣服所需的时间time和它的颜色color,求出Dearboy和她的girlfriend最少用多少时间能洗完成全部衣服。分析: 由于每种颜色的衣服是分开洗的,

2014-10-30 16:14:15 1262

原创 POJ 3260 The Fewest Coins(多重背包+完全背包)

POJ 3260 The Fewest Coins(多重背包+完全背包)http://poj.org/problem?id=3260题意: John要去买价值为m的商品. 现在的货币系统有n种货币,对应面值为val[1],val[2]…val[n]. 然后他身上每种货币有num[i]个. John必须付给售货员>=m的金钱, 然后售货员会用最少的货币数量找钱给John.问你John的交易过程中, 他给售货员的货币数目+售货员找钱给他的货币数目 的和最小值是多少?分析: 本题

2014-10-30 11:29:03 1324

原创 POJ 1276 Cash Machine(多重背包)

POJ 1276 Cash Machine(多重背包)http://poj.org/problem?id=1276题意: 有n种货币, 其面值和数量分别为val[i]和num[i]. 现在给出一个m值, 问你由上面的货币能构成的最大的且不超过m的金额是多少?分析: 明显的多重背包问题. 令dp[i][j]==x表示用前i种货币能构成的<=j面值的金钱的最大值为x. 初始化: dp为全0. 我们对第i种物品进行分情况处理:

2014-10-29 15:51:44 989

原创 POJ 2392 Space Elevator(贪心+多重背包)

POJ 2392 Space Elevator(贪心+多重背包)http://poj.org/problem?id=2392题意: 题意:给定n种积木,每种积木都有一个高度h[i],一个数量num[i],还有一个限制条件,这个积木所在的位置不能高于limit[i],问能叠起的最大高度?分析: 本题是一道多重背包问题, 不过每个物品的选择不仅仅要受该种物品的数量num[i]限制, 且该物品还受到limit[i]的限制.这里有一个贪心的结论: 我们每次背包选取物

2014-10-29 15:07:40 1337

原创 HDU 3732 Ahui Writes Word(多重背包)

HDU 3732 Ahui Writes Word(多重背包)http://acm.hdu.edu.cn/showproblem.php?pid=3732题意: 初始有N个物品, 每个物品有cost[i]花费和val[i]价值, 你有m元钱, 现在问你最多能买多少总价值的物品? 其中N<=10W, m<=1W. 且cost[i]和val[i]都在[0,10]范围.分析: 本题初看直接用01背包来做是直观的想法. 但是考虑到01背包的复杂度为O(N*m), 这么

2014-10-29 11:29:31 1304

原创 HDU 3591 The trouble of Xiaoqian(多重背包+完全背包)

HDU 3591 The trouble of Xiaoqian(多重背包+01背包)http://acm.hdu.edu.cn/showproblem.php?pid=3591题意: 有一个具有n种货币的货币系统, 每种货币的面值为val[i]. 现在小杰手上拿着num[1],num[2],…num[n]个第1种,第2种…第n种货币去买价值为T(T<=20000)的商品, 他给售货员总价值>=T的货币,然后售货员(可能,如果小杰给的钱>T, 那肯定找钱)找钱给他. 售货员每次总是用最少的

2014-10-29 10:29:24 1334 1

原创 HDU 2844 Coins(多重背包)

HDU Coins(多重背包)http://acm.hdu.edu.cn/showproblem.php?pid=2844题意: 现在有价值val[1],val[2],…val[n]的n种硬币, 它们的数量分别为num[i]个. 然后给你一个m, 问你区间[1,m]内的所有数目, 由之前n种硬币来构造(即选取某些硬币使得这些硬币的价值和等于[1,m]区间的特定数), 最多能构造出这m个数中的多少个?分析: 基本的完全背包问题. 我们令dp[i][j]==x表示

2014-10-28 19:48:08 1227 2

原创 HDU 2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)

HDU 2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)http://acm.hdu.edu.cn/showproblem.php?pid=2191题意: 假设你有资金n元, 然后有m种大米, 每种大米价格为cost[i], 重量为val[i], 数量为num[i]. 现在问你用n元钱最多能买多重的大米?分析: 本题是典型的多重背包问题. 我们令dp[i][j]==x表示只购买前i种大米, 且总费用<=j时能购买的大米最大重量为x.

2014-10-28 19:45:40 1162

原创 HDU 1059 Dividing(多重背包)

HDU 1059 Dividing(多重背包)http://acm.hdu.edu.cn/showproblem.php?pid=1059题意: 现在有价值为1,2,3,4,5,6的6种物品, 它们的数量为num[i]( 1<=i<=6 )个. 现在要问的是能否把所有的的物品分成两份且这两份物品的价值总和相同 ?分析: 首先我们求出所有物品的价值和sum_val, 如果sum_val是奇数, 那么明显不能分. 那么sum_val为偶时, 我们令m=sum_val/2. 我能

2014-10-28 19:19:11 1108

原创 UVA 357 Let Me Count The Ways(完全背包)

UVA 357 Let Me Count The Ways(完全背包)http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=293题意: 有5种硬币: 1分 5分 10分 25分 和50分. 现在给你一个面值n, 问你有多少种方法能利用上述硬币组合出n分的金钱.分析: 典型的完全背包问题. 本题的限制条件: 硬币钱数正好等于n

2014-10-27 20:21:36 1269

原创 HDU 4508 湫湫系列故事——减肥记I(完全背包)

HDU 4508 湫湫系列故事——减肥记I(完全背包)http://acm.hdu.edu.cn/showproblem.php?pid=4508题意: 有n种食物, 每种食物吃了能获得val[i]点幸福度和cost[i]点热量, 现在湫湫每天吃东西的热量不能超过m点. 问她最多能获得多少点幸福度?分析: 基础的完全背包问题. 本题的限制条件是: 热量总量<=m 本题的目的条件是: 幸福度越大越好. 所以我们令dp[i][j]==x

2014-10-27 19:56:17 1080

原创 HDU 3127 WHUgirls(完全背包)

HDU 3127 WHUgirls(完全背包)http://acm.hdu.edu.cn/showproblem.php?pid=3127题意: 现在有一块X*Y的矩形布条, 然后有n种规格的x[i]*y[i]的小布条, 每种布条可以卖出val[i]的价值. 问你原始的X*Y布条最多能卖多少价值? 其中每次切割布条只能水平或垂直的切, 且一刀到底.分析:

2014-10-27 19:22:39 1579

原创 HDU 1248 寒冰王座(完全背包:入门题)

HDU 1248 寒冰王座(完全背包:入门题)http://acm.hdu.edu.cn/showproblem.php?pid=1248题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.死亡骑士:"我要买道具!"地精商人:"我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个."死亡骑士:"好的,给我一个血瓶."说完他掏出那张N元的大钞递给地精

2014-10-27 15:52:59 1914 7

原创 HDU 1284 钱币兑换问题(完全背包:入门题)

HDU 1284 钱币兑换问题(完全背包:入门题)http://acm.hdu.edu.cn/showproblem.php?pid=1284题意: 在一个国家仅有1分,2分,3分硬币,将钱N (N<32768) 兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。分析:基础的完全背包问题.

2014-10-26 16:41:21 4121

原创 HDU 2159 FATE(完全背包:二维限制条件)

HDU 2159 FATE(完全背包:二维限制条件)http://acm.hdu.edu.cn/showproblem.php?pid=2159题意: 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还

2014-10-26 16:21:41 1231

0day安全代码

0day安全的这本书第二版的所有源代码和信息可以来看看

2014-09-09

空空如也

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

TA关注的人

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