题目:http://poj.org/problem?id=2480
首先要会欧拉函数:先贴欧拉函数的模板,来源于吉林大学的模板:
//欧拉函数PHI(n)表示的是比n小,并且与n互质的正整数的个数(包括1)。
unsigned euler(unsignedx)
{// 就是公式
unsigned i, res=x;
for(i = 2; i < (int)sqrt(x ...
分类:
其他好文 时间:
2014-05-12 07:14:06
阅读次数:
368
这个题乍一看很简单,实际上还挺有技巧的。我最开始的想法是找一个特殊值标记,遇到一个0,把他所对应的行列中非零的元素标记成这个特殊值,0值保持不变,然后再从头遍历一次,碰到特殊值就转化成0。
问题是这个特殊值怎么确定,题目中没有把取值范围给出,我怀着侥幸的心理用了最大和最小的int,都被揪了出来。。如果找一个不存在于数组中的值,这个复杂度太高了。
有没有其他更好的方法呢?当然有。这个思想很巧妙,...
分类:
其他好文 时间:
2014-05-12 06:54:39
阅读次数:
193
题目链接:10253 - Series-Parallel Networks
白书的例题。
这题也是需要把问题进行转化,一个并联可以分为几个串联,然后串联可以分成边。
如此一来,最后叶子结点种数会是n,问题转化为去分配叶子结点,使得总和为n。
书上有两种方法,一种直接去递归,利用组合数学的方式去计算答案。
一种是推出递推式:
设dp[i][j]为一共j个叶子结点的树,子树的叶子最多的为i...
分类:
Web程序 时间:
2014-05-12 06:22:04
阅读次数:
447
如果C同时派生了基类A和基类B,那么C的对象的内存是如何分布的呢?基类指针pa和基类指针pb对这块派生类C对象的内存所存储的内容又做和解析?或者说pa和pb指向的地址是否是C对象的首地址呢?
1.继承是按照类为整体进行组织的,且如果有继承虚函数,那么将有多余的一个虚函数表指针。
2.基类指针指向派生类后,同样是按照指针强制转化原则来解析派生类对象的部分区块内容(指针截断)
3.多继承中,各个基类的指针指向派生类后,各自基类指针指向的是派生类中与本身基类相关的派生类区块首地址。...
分类:
其他好文 时间:
2014-05-11 15:10:19
阅读次数:
309
//求gcd(a, b)
LL gcd(LL a, LL b)
{
return b ? gcd(b, a%b) : a;
}
//求整数x和y,使得ax+by=d, 且|x|+|y|最小。其中d=gcd(a,b)
void gcd(LL a, LL b, LL& d, LL& x, LL& y)
{
if(!b)
{
d = a;
x = 1;
y = 0...
分类:
其他好文 时间:
2014-05-11 14:45:32
阅读次数:
240
功能:任意输入一个字符串,去掉其中的空格后反序输出
编译器使用的是MASMPlus
;#Mode = DOS
MAXLEN = 64 ;设置字符串的最大长度
SPACE = ' ' ;空格
datasg segment
buffer db MAXLEN+1,0,MAXLEN+1 dup(0) ;字符串输入缓冲区
string db MAXLEN+3 dup(0)...
分类:
其他好文 时间:
2014-05-11 14:25:57
阅读次数:
353
import java.util.Scanner;
public class FixedCapacityStackOfStrings {
private String[] a;
private int N;
public FixedCapacityStackOfStrings(int cap){
a=new String[cap];
}
public boolean isEmpty...
分类:
其他好文 时间:
2014-05-11 14:09:33
阅读次数:
251
import java.util.*;
// 下压栈(LIFO) 能动态调整数组大小的实现...
分类:
其他好文 时间:
2014-05-11 13:56:11
阅读次数:
238
要求就是把字符串转化为整形,按照我们的理解就可以逐字符遍历,转化为整形即可,比如字符串"123454",我们只要取出第零个字符'1'-‘0’就可以得到数字1,然后把1乘以10,再加上‘2’-‘0’·····这样依次就可以得到转化之后的整形数字。当然有几个地方需要注意:
1)字符串可能以正负号开始,也可能包含一些其他的非数字型字符,是不能转化为数字的,是忽略还是报错看需求
2)越界,字符串转化到整形数字之后的数字串可能超出表示范围,超出的可以置为INT_MAX或者INT_MIN。...
分类:
其他好文 时间:
2014-05-11 06:56:19
阅读次数:
463
Insert title here
/*
* 用.为对象添加属性
用关键字delete删除属性
用[]添加属性
和.的不同
r.name==r["name"];
r.name只能添加字符串属性
[]添加属性,功能强大,可以动态添加属性
*/
var r=new Object();
alert(typeof(r));
//添加属性
r.name="jobs";
ale...
分类:
编程语言 时间:
2014-05-11 06:05:06
阅读次数:
380