上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: 问题描述:n个元素的集合{1,2,, n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15 个不同的非空子集如下:{{1},{2},{3},{4}},{{1,2},{3},{4}},{{1,3},{2},{4}},{{1,4},{2},{3}},{{2,3},{1},{4}},{{2,4},{1},{3}},{{3,4},{1},{2}},{{1,2},{3,4}},{{1,3},{2,4}},{{1,4},{2,3}},{{1,2,3},{4}},{{1,2,4},{3}},{{1,3,4},{2}},{{2,3,4},{1}},{{1,2,3,4}}给 阅读全文
posted @ 2011-07-12 09:54 Matrix海子 阅读(20069) 评论(0) 推荐(2) 编辑
摘要: 快速排序1.算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1)分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。 (2)快速排序的基本思想 设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为: ①分解:在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pi. 阅读全文
posted @ 2011-07-10 21:10 Matrix海子 阅读(1871) 评论(0) 推荐(0) 编辑
摘要: 对给出的n个数,求出其所有的排列。思路:对于R={r1,r2,r3.......rn},其全排列可以这样去计算,perm(R)=riperm(R-ri);(1<=i<=n)即以ri为前缀不变,对剩下所有的元素进行排列。即分别以r1,r2,r3,....rn作为前缀不变,对剩下的所有元素进行全排列即为所得到的结果。同理对于perm(R-ri)的求解也是一个相同的过程,因此可以采用递归的思想去解决。#include<iostream>using namespace std;void swap(int &a,int &b){ int temp=a; a=b; 阅读全文
posted @ 2011-07-10 11:08 Matrix海子 阅读(1049) 评论(0) 推荐(0) 编辑
摘要: 在前面已经提到了整数划分的问题,在那个问题中,只需要求出整数划分的个数,如果要求将整数划分的所有划分方法也输出,该如何求解?如对于整数6,输出的结果就应该是: 6 5+1 4+2 4+1+1 3+3 3+2+1 3+1+1 2+2+2 2+2+1+1 2+1+1+1+11+1+1+1+1+1 我们可以采用集合的思维去考虑,比如对于整数6,则初始集合相当于{1,1,1,1,1,1} 从1+1+1+1+1+1到2+1+1+1+1实际上就相当于我从左边那一堆{1,1,1,1,1,1}的集合中拿 两个1出来相加然后再把结果放回集合当中得到{2,1,1,1,1}.若这个时候我继续拿集合里面的两个 1.. 阅读全文
posted @ 2011-07-10 10:11 Matrix海子 阅读(1485) 评论(1) 推荐(1) 编辑
摘要: Longest Ordered SubsequenceTime Limit: 2000MSMemory Limit: 65536KTotal Submissions: 18853Accepted: 8147DescriptionA numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ..., aiK), where 1 < 阅读全文
posted @ 2011-07-09 23:19 Matrix海子 阅读(3057) 评论(0) 推荐(0) 编辑
摘要: 一.C语言中的static关键字 在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。 (1)修饰局部变量 一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是在这里要注意的是,虽然用static对局部变量进行修饰过后,其生命周期以及存储空间发生了变化,但是其作用域并没有改变,其仍然是一个局部变量,作用域仅限于该语句块。 在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一 阅读全文
posted @ 2011-04-20 20:06 Matrix海子 阅读(18800) 评论(0) 推荐(2) 编辑
摘要: 一.副作用(side effect) 表达式有两种功能:每个表达式都产生一个值( value ),同时可能包含副作用( side effect )。副作用是指改变了某些变量的值。 如: 1:20 //这个表达式的值是20;它没有副作用,因为它没有改变任何变量的值。 2:x=5 // 这个表达式的值是... 阅读全文
posted @ 2011-04-20 15:08 Matrix海子 阅读(7804) 评论(5) 推荐(7) 编辑
摘要: 一.运算符的优先级 在C++ Primer一书中,对于运算符的优先级是这样描述的: Precedence specifies how the operands are grouped. It says nothing about the order in which the operands are evaluated. 意识是说优先级规定操作数的结合方式,但并未说明操作数的计算顺序。举个例子: 6+3*4+2 如果直接按照从左到右的计算次序得到的结果是:38,但是在C/C++中它的值为20。 因为乘法运算符的优先级高于加法的优先级,因此3是和4分组到一起的,并不是6与3进行分组。这就是运算符 阅读全文
posted @ 2011-04-20 11:42 Matrix海子 阅读(9182) 评论(4) 推荐(7) 编辑
摘要: 一.C语言中的const const是C语言中保留的一个关键字,它用来限定一个变量是只读的,即不可变的。程序中使用const可以在一定程度上提高程序的健壮性,但是程序中使用过多的const,可能在对代码的阅读时增加一定的难度。 (1)用const修饰一般变量 注意在C语言中,用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外); 如: const int n; 这种声明方式是错误的 const int n=5; 正确 void fun(const int n); 正确 const char a; 错误 char * const p; 错误 const char *p;正确(. 阅读全文
posted @ 2011-04-18 21:53 Matrix海子 阅读(15846) 评论(13) 推荐(3) 编辑
摘要: 素数的求法1.素数的定义 只能被1和它自己整除的自然数称为素数,特别规定1不属于素数。2.求法 (1)根据素数的定义,很明显,如果一个数是素数它的因子只包含1和它本身。 因此可以根据判别某个数的因子的方法来判断其是否是素数。int isprime(int n){ int i; for(... 阅读全文
posted @ 2011-04-17 18:20 Matrix海子 阅读(3086) 评论(5) 推荐(1) 编辑
摘要: BlueEyes' ProblemThe Problem袁源在学英语的时候遇到了一个难题。当他看到一个单词的时候,他不知道这个词他以前是否背过。(这种事也常发生在其他人身上)。为了解决这个问题,他想在读某篇文章之前,先统计这篇文章中每个单词出现的次数。如果是你,你会怎么实现'统计'这个过程呢? 输入本题只有一组数据.输入为一篇不换行的英语文章(包括各种常用符号,长度小于10000个字母).'单词'在这里定义为只包含52个大小写字母的连续字符串(大写和小写是不同的字母,每个单词的长度不超过100,整个文章总共的单词数不超过1000个,如I'll是两 阅读全文
posted @ 2011-04-16 16:30 Matrix海子 阅读(898) 评论(0) 推荐(1) 编辑
摘要: 更新Android SDK到3.0版本时,遇到Failed to rename directory E:\android\tools to E:\android\temp\ToolPackage.old01问题,导致无法更新,出现该问题的原因是由于3.0版本与较早的sdk版本之间文件结构有冲突,解决方法如下:1)将temp文件夹下的ToolPackage.new01改名为tools;2)将(1)中得到的tools文件夹拷到SDK的根目录下,覆盖原来的tools文件夹;3)重启SDK Manager.exe,再进行更新即可. 阅读全文
posted @ 2011-04-16 10:06 Matrix海子 阅读(9320) 评论(1) 推荐(1) 编辑
摘要: 拓扑排序 一.定义 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若<u,v> ∈E(G),则u在线性序列中出现在v之前。 通常,这样的线性序列称为满足拓扑次序(Topological Orde 阅读全文
posted @ 2011-04-16 09:46 Matrix海子 阅读(19443) 评论(3) 推荐(4) 编辑
摘要: 1075: BlueEyes and Apples (II)The Problem袁源除了喜欢吃苹果外,他在有空的时候还喜欢把苹果按重量由大到小排成一列.当然,这是为了方便以后从最大的开始吃,这样他就能永远都吃到最大的!但是他只有一部没有砝码的天平,于是他每次只能比较两个苹果的重量。现在就要请你帮忙,如果每次只给出两个苹果的重量关系,怎样才能把这些苹果都排列好呢?输入本题包括多组测试数据.每组测试数据的第一行为一个整数n(1<=n<=20),代表一共的比较次数,接下来的n行,每行包括两个大写字母x和y,代表x的重量大于y.当n=0时代表输入结束,这组数据不包括在需要计算的数据中. 阅读全文
posted @ 2011-04-16 09:04 Matrix海子 阅读(772) 评论(0) 推荐(1) 编辑
摘要: Humble NumbersA number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers.Write a program to find and print the nth element in this sequence.Input SpecificationT. 阅读全文
posted @ 2011-04-15 10:00 Matrix海子 阅读(2421) 评论(0) 推荐(0) 编辑
摘要: Windows 下搭建Android开发环境一.下载并安装JDK版本要求JDK1.6+,下载JDK成功后进行安装,安装好后进行环境变量的配置【我的电脑】-——>【属性】——>【高级】 ——>【环境变量】——>【系统变量】中点击【新建】:变量名:CLASSPATH变量值:…… \ jdk1.6.0_14 \ lib \ dt.jar;……\ jdk1.6.0_14 \ lib \ tools.jar选中“变量名PATH”,点击【编辑】:变量值: ;……\ jdk1.6.0_14 \ bin;(增加)注:“……”表示jdk1.6.0_14的安装路径;红字部分都是... 阅读全文
posted @ 2011-04-13 20:46 Matrix海子 阅读(5865) 评论(0) 推荐(1) 编辑
摘要: IP判断基于Internet的程序中,我们常常需要判断一个IP字符串的合法性。合法的IP是这样的形式:A.B.C.D其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001这种情况。现在,请你来完成这个判断程序吧^_^Input输入由多行组成,每行是一个字符串,输入由“End of file”结束。字符串长度最大为30,且不含空格和不可见字符。Output对于每一个输入,单独输出一行如果该字符串是合法的IP,输出YES,否则,输出NOSample Input202.115.32.24a.b.c.dSample OutputYESNO题. 阅读全文
posted @ 2011-04-13 18:53 Matrix海子 阅读(1783) 评论(0) 推荐(0) 编辑
摘要: (1)n!末尾有多少个0 第一种思路: n!=n*(n-1)*(n-2)*....3*2*1,而如果要出现0,必须得有2和5出现,但是明显n!中5的因子个数少于2的因子个数,即转化为求 n!中因子5的个数 int count(int n) { int sum=0; while(n) { sum+=n/5; n/=5; } return sum; } 第二种思路:计算n!,每次末尾出现0,则将0消去,计数器并自增1 int count=0; int ans=1; for(i=n;i>=2;i--){ans*=i;while(ans%10==0)//消除末尾的0{ans/=10; count 阅读全文
posted @ 2011-04-13 11:00 Matrix海子 阅读(1653) 评论(0) 推荐(1) 编辑
摘要: 阶乘N的阶乘定义为:N!=N×(N-1)×……×2×1请编写一个程序,输出N的阶乘的十进制表示中从最末一个非0位开始自低位向高位数的第M位。其中:0<=N<=10000,1<=K<=5例如:N=5,M=2,结果是1(5!=120) N=8,M=3,结果为0(8!=40320)输入:第一行一个整数M (1<=M<=100),代表测试数据的个数;接下来M行,每行两个整数N,K输出: 输出M行,每行一个整数,即测试数据的结果。 样例:输入:25 28 3输出:10题意:很明了,就是求n!十进制表示中的从最末一个非0位开始自低 阅读全文
posted @ 2011-04-13 10:22 Matrix海子 阅读(1037) 评论(0) 推荐(1) 编辑
摘要: C(n,k) Description求组合数 C ( n , k) 的奇偶性Input文件是多case的,每行输入一个 n (1<=n<=10^9)和 k(0<=k<=n) ,当 n 等于 0 且 k 等于 0 时输入结束Output对于每一个case,输出一行,为组合数 C ( n , k) 的奇偶性,奇输出1,偶输出0Sample Input2 02 10 0Sample Output10 题意:求C(n,k)的奇偶性。显然把C(n,k)的值直接求出来进行判断是不可行的。由于C(n,k)=n!/k!*(n-k)!,要判断奇偶性,即比较分子与分母含有因子2的个数,因此 阅读全文
posted @ 2011-04-12 19:47 Matrix海子 阅读(1224) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 下一页