自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDU 2012 素数判定(素数)

HDU 2012 素数判定(素数)http://acm.hdu.edu.cn/showproblem.php?pid=2012题意:水题一枚 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。分析: 本题的数据范围很小,求出表达式在-39到50内的所有可能值可以得到下面的数:1523 1447 13731301 1231 1163 1097 1033 971 911853 797 7

2014-11-16 15:50:00 2490

原创 HDU 1431 素数回文(回文素数)

HDU 1431 素数回文(回文素数)http://acm.hdu.edu.cn/showproblem.php?pid=1431题意: 给你两个整数a,b。(5 <= a < b <= 100,000,000)要你按顺序输出[a,b]区间内的所有回文素数。分析: 定理:如果一个数是回文且有偶数位,那么它能被11整除。 根据上面定理我们可知我们只需要找到区间[2,1000W)内的素数即可。(想想为什么)上面b的范围直接缩小了10倍。 剩下的工作就是用

2014-11-16 15:26:25 1602

原创 HDU 1262 寻找素数对(素数)

HDU 1262 寻找素数对(素数)http://acm.hdu.edu.cn/showproblem.php?pid=1262题意: 哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.做好了这件实事,就能说明这个猜想是成立的.由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.分析:显然先用筛选法求出10000以内的所有素数,然后对于给定的数X。 一定

2014-11-16 14:51:13 1617

原创 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 1747

原创 POJ 3518 Prime Gap(素数)

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

2014-11-16 12:48:06 1323

原创 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 1053

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

POJ 2739 Sum of Consecutive Prime Numbers(素数)

2014-11-14 17:11:49 1578

原创 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 4763 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 1281

原创 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 1689

原创 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 1188 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 1113

原创 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 1490 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 1258

原创 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 1030

原创 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 1107

原创 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 1239

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

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

2014-11-04 12:12:15 1083

原创 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 1720

原创 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 1995

原创 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 6996

原创 POJ 1849 Two(遍历树)

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

2014-11-02 15:50:16 1631 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 1595

原创 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 1340

原创 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 1347

0day安全代码

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

2014-09-09

空空如也

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

TA关注的人

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