算法
沢田悠二
I write PHP .
展开
-
11076 浮点数的分数表达
11076 浮点数的分数表达 Description在计算机中,用float或double来存储小数有时不能得到精确值,若要精确表达一个浮点数的计算结果, 最好用分数来表示小数,有限小数或无限循环小数都可以转化为分数,无限循环小数的循环节用括号标记出来。如: 0.9 = 9/10 0.(3) = 0.3(3) = 0.3(33) = 1/3 当然一个小数可以用好几种分数形式来表示原创 2015-04-19 12:26:22 · 1367 阅读 · 2 评论 -
8603 子集和问题
8603 子集和问题(必做)时间限制:1000MS 内存限制:1000K提交次数:795 通过次数:262题型: 编程题 语言: C++;C;VC;JAVADescriptionS是一个整数集合,S={x1,x2,...,xn},c是一个整数。这里集合元素xi(1<=i<=n)和c都是整数,可能为负。子集和问题就是:判断是否存在S的一个子集S1,使得:...原创 2015-01-07 21:55:54 · 508 阅读 · 0 评论 -
11079 可以移动的石子合并
11079 可以移动的石子合并(必做)时间限制:1000MS 内存限制:1000K提交次数:0 通过次数:0题型: 编程题 语言: C++;C;VC;JAVADescription有n堆石子形成一行(a1,a2,…,an,ai为第i堆石子个数),现要将石子合并成一堆,规定每次可选择至少2堆最多k堆移出然后合并,每次合并的分值为新堆的石子数。若干次合并后,石子最...原创 2015-01-07 21:56:04 · 197 阅读 · 0 评论 -
8602 区间相交问题
8602 区间相交问题(必做)时间限制:1000MS 内存限制:1000K提交次数:1966 通过次数:468题型: 编程题 语言: C++;C;VC;JAVADescription给定x轴上n个闭区间,去掉尽可能少的闭区间,使剩下的闭区间都不相交。注意:这里,若区间与另一区间之间仅有端点是相同的,不算做区间相交。例如,[1,2]和[2,3]算是不相交区间。 ...原创 2015-01-07 21:56:14 · 289 阅读 · 0 评论 -
11077 最长公共子字符串
11077 最长公共子字符串(必做)时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0题型: 编程题 语言: C++;C;VC;JAVADescription求两个输入序列的最长的公共子字符串的长度。子字符串中的所有字符在源字符串中必须相邻。如字符串:21232523311324和字符串312123223445,他们的最长公共子字符串...原创 2015-01-12 14:04:50 · 353 阅读 · 0 评论 -
10303 数字三角
10303 数字三角(必做)时间限制:1000MS 内存限制:65535K提交次数:117 通过次数:56题型: 编程题 语言: C++;C;VC;JAVADescription问题描述:给定一个由n行数字组成的数字三角形,如下图所示。试用动态规划算法,计算出从三角顶部至底部的一条路径,使得该路径经过的数字总和最大。注意每个数字只能走向下一行左边或右边的数...原创 2015-01-12 14:05:18 · 261 阅读 · 0 评论 -
11076 浮点数的分数表达
11076 浮点数的分数表达 Description在计算机中,用float或double来存储小数有时不能得到精确值,若要精确表达一个浮点数的计算结果, 最好用分数来表示小数,有限小数或无限循环小数都可以转化为分数,无限循环小数的循环节用括号标记出来。如: 0.9 = 9/10 0.(3) = 0.3(3) = 0.3(33) = 1/3 当然一个小数可以用好几种分数形...原创 2014-10-21 17:16:07 · 373 阅读 · 0 评论 -
8594 有重复元素的排列问题
8594 有重复元素的排列问题(必做)时间限制:1000MS 内存限制:1000K提交次数:1610 通过次数:656题型: 编程题 语言: C++;C;VC;JAVADescription设集合R={r1,r2,...,rn}是要进行排列的n个元素,其中r1,r2,...,rn可能相同。试着设计一个算法,列出R的所有不同排列。即,给定n以及待排的n个...原创 2014-10-21 17:17:19 · 344 阅读 · 0 评论 -
9718 整数因子分解
9718 整数因子分解(必做)时间限制:1000MS 内存限制:1000K提交次数:0 通过次数:0题型: 编程题 语言: C++;C;VC;JAVADescription大于1的正整数 n 都可以分解为 n = x1 * x2 * ... * xm, 每个xi为大于1的因子,即1<xi<=n 。例如:当n=12时,共有8种不同的分解式:...原创 2014-10-22 19:41:46 · 422 阅读 · 0 评论 -
10343 划分凸多边形(必做)
10343 划分凸多边形(必做)时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0题型: 编程题 语言: C++;CDescription问题描述:一个正凸N边形,可以用N-3条互不相交的对角线将正N边形分成N-2个三角形。现在要求读入N边形的N(N≤20),输出不同划分方法的总数(要求解的是划分方法数,而不需要输出各种划分法)。这里,...原创 2014-11-04 19:24:46 · 899 阅读 · 0 评论 -
11089 多机最佳调度
11089 多机最佳调度时间限制:13000MS 内存限制:65535K提交次数:0 通过次数:0题型: 编程题 语言: 无限制Description假设有n个任务(n<=100),m台机器(m<=50),任务可以由任何一个机器完成,完成任务i需要的时间为ti,请设计两种算法(一种采用贪心算法,另一种采用回溯算法),找出完成这n个任务的最佳调度,使...原创 2015-01-07 21:55:39 · 205 阅读 · 0 评论 -
17085 工作分配问题
17085 工作分配问题(必做)时间限制:20000MS 内存限制:65535K提交次数:0 通过次数:0题型: 编程题 语言: C++;C;VC;JAVADescription有n件工作分配给n个人,将工作i分配给第j个人需要支付劳务费用Cij。请为每人分配一个工作,并使得总劳务费用达到最小。 输入格式第一行一个正整数n(1...原创 2015-01-07 21:54:59 · 638 阅读 · 0 评论 -
fastPow( 比pow好用、灵活的)
#include <iostream> using namespace std; int main(){ int a,b; cin >> a >> b; int res = 1; while(b){ cout << b; if(b&1) ...原创 2015-01-05 10:31:23 · 640 阅读 · 0 评论 -
鸽舍原理
鸽舍原理:也称“抽屉原理”或利克雷原则,它是一个重要而又基本的数学原理,应用它可以解决各种有趣的问题,并且常常能够得到令人惊奇的结果,许多看起来相当复杂,甚至无从下手的问题,利用它能很容易得到解决。原理1:把n+1个元素分成n类,不管怎么分,则一定有一类中有2个或2个以上的元素。原理2:把多于m×n个物体放到n个抽屉里,那么一定有一个抽屉里有m+1个或者m+1个以上的物体。原理2-原创 2015-04-19 12:28:28 · 4400 阅读 · 0 评论 -
freopen - C/C++文件输入输出利器
freopen以前经常使用,比较方便,可以当作模板,在中间替换为自己的代码即可使用。1234567891011121314#include // 实际使用中发现freopen也包含在iostream.h中,C++代码#include 即可。 int main(){原创 2015-04-19 12:26:17 · 454 阅读 · 0 评论 -
8594 有重复元素的排列问题
8594 有重复元素的排列问题(必做)时间限制:1000MS 内存限制:1000K提交次数:1610 通过次数:656题型: 编程题 语言: C++;C;VC;JAVADescription设集合R={r1,r2,...,rn}是要进行排列的n个元素,其中r1,r2,...,rn可能相同。试着设计一个算法,列出R的所有不同排列。即,给定n以及待排的n个可能重复的元原创 2015-04-19 12:26:28 · 649 阅读 · 0 评论 -
9718 整数因子分解
9718 整数因子分解(必做)时间限制:1000MS 内存限制:1000K提交次数:0 通过次数:0题型: 编程题 语言: C++;C;VC;JAVADescription大于1的正整数 n 都可以分解为 n = x1 * x2 * ... * xm, 每个xi为大于1的因子,即1<xi<=n 。例如:当n=12时,共有8种不同的分解式:12 = 1212原创 2015-04-19 12:26:40 · 989 阅读 · 0 评论 -
10303 数字三角
10303 数字三角(必做)时间限制:1000MS 内存限制:65535K提交次数:117 通过次数:56题型: 编程题 语言: C++;C;VC;JAVADescription问题描述:给定一个由n行数字组成的数字三角形,如下图所示。试用动态规划算法,计算出从三角顶部至底部的一条路径,使得该路径经过的数字总和最大。注意每个数字只能走向下一行左边或右边的数字,而不原创 2015-04-19 12:30:04 · 1040 阅读 · 0 评论 -
11088 整数划分问题
11088 整数划分的扩展问题(必做)时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0题型: 编程题 语言: C++;C;VC;JAVADescription下面有整数划分问题扩展出的多个题例:(1)正整数n划分为若干正整数之和,最大加数不超过m的划分数(2)正整数n划分为不超过m个正整数之和的划分数(3)正整数n划分为若干...原创 2015-01-05 10:14:20 · 381 阅读 · 0 评论 -
17082 两个有序数序列中找第k小
17082 两个有序数序列中找第k小(必做)时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0题型: 编程题 语言: C++;C;VC;JAVADescription已知两个已经排好序(非减序)的序列X和Y,其中X的长度为m,Y长度为n,现在请你用分治算法,找出X和Y的第k小的数,算法时间复杂度为O(max{logm, logn})。...原创 2015-01-05 10:21:28 · 310 阅读 · 0 评论 -
8596 最长上升子序列
8596 最长上升子序列(必做)时间限制:300MS 内存限制:1000K提交次数:255 通过次数:118题型: 编程题 语言: C++;C;VC;JAVADescriptionA numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of t...原创 2015-01-05 10:23:04 · 346 阅读 · 0 评论 -
最大子字段和(常见和最优思路)
#include <iostream>#include <stdio.h>using namespace std;int n;int a[100000];int maxsum(){ // 最优方法 int res =0,b=0; for(int i=0;i<n;i++){ //前面的子段和都为负数 if(b...原创 2015-01-05 10:25:29 · 292 阅读 · 0 评论 -
鸽舍原理
鸽舍原理:也称“抽屉原理”或利克雷原则,它是一个重要而又基本的数学原理,应用它可以解决各种有趣的问题,并且常常能够得到令人惊奇的结果,许多看起来相当复杂,甚至无从下手的问题,利用它能很容易得到解决。原理1:把n+1个元素分成n类,不管怎么分,则一定有一类中有2个或2个以上的元素。原理2:把多于m×n个物体放到n个抽屉里,那么一定有一个抽屉里有m+1个或者m+1个以上的物体。原理...原创 2014-11-12 01:20:02 · 842 阅读 · 0 评论