12 2014 档案
摘要:经同学推荐,学习了下Python语言,看Python的介绍,它本身是一个面向对象的解释型脚本语言,我初看到这句话的时候就在想,一个脚本语言还搞成面向对象?有这个必要么?原谅我肤浅了一把。 它还被俗称为胶水语言,就是能够把其他语言结合在一起。它自己介绍的特点:慢。简洁。 其实,在刚开始学的时候...
阅读全文
摘要:本文系转载:http://www.ituring.com.cn/article/131613一、混乱之初一开始 K 是整数王国的国王。整个国家还算太平。后来出现了一个叫做 M 的家伙,比所有人有强壮,他把 K 给揍扁了,自己当了国王。于是整个国家出现了混乱,弱肉强食:100杀死了99,98又和10合...
阅读全文
摘要:本文系转载:http://blog.sina.com.cn/s/blog_a661ecd50101cv41.html 我们先研究这个问题的一部分:哪些素数是两平方数之和?为什么我们先研究素数,有个很重要的原因是:若两个正整数都是两平方数之和,那么它们的乘积也是两平方数之和。道理很简单,设两个正...
阅读全文
摘要:一个数的序列bi,当b1 a[j]。只有这样才能保证序列是上升的。对比最长上升子序列的长度这类问题,我们可以发现,其实这两个DP问题思想是完全一样的,他们的代码也可以说是一样的,代码的不同之处只是问的不同而在求值处不同而已? 代码如下: #include using namespace st...
阅读全文
摘要:给你一段包含负数的序列,问你这段序列的最大和是多少?并且打印出最大和区间?例如假设有两个序列如下: 5: 6 -1 5 4 -7 7: 0 6 -1 1 -6 7 -5 很容易看出第一个包含5个元素的序列的最大和是14.区间从1到4.第二个最大和是7,区间可以有两个,从1到6或则从6到6...
阅读全文
摘要:1 #include 2 #include 3 using namespace std; 4 #define N 10010 5 #define M 1000010 6 7 char S[M], T[N]; 8 int next[N]; 9 10 void Get_next()11 {12 ...
阅读全文
摘要:本文系转载:http://www.cnblogs.com/Lyush/archive/2012/08/06/2625113.html 欧拉函数的作用已不用再明说什么,只是苦于数论方面的知识实在欠缺,一直搞不懂原理,先转载一篇自己慢慢斟酌,感谢网上众多大牛的分享-----------------...
阅读全文
摘要:我们知道欧几里得扩展定理是同余方程ax≡b(mod c)解得有力方法。这个方程可能有解也可能没有解,下面给出有解的条件: 定理:同余方程ax≡b(mod c)有解,当且仅当gcd(a,c)|b,且方程有gcd(a,c)个解。 原因是求ax≡b(mod c)可以转化为求ax+cy=b。 令:...
阅读全文
摘要:给出方程a*x+b*y=c,其中所有数均是整数,且a,b,c是已知数,求满足那个等式的x,y值?这个方程可能有解也可能没解也可能有无穷多个解(注意:这里说的解都是整数解)? 既然如此,那我们就得找出有解和无解的条件! 先给出定理:方程a*x+b*y=c有解,当且仅当c%gcd(a,b)=...
阅读全文
摘要:我们都知道欧几里得算法是用来快速求两个数的最大公约数的算法,效率较高:2O(logn)。 我们先给出算法的实现: 1 int gcd_1(int a, int b) 2 { 3 if(b==0) return a; 4 return gcd_1(b, a%b); 5 } 6 ...
阅读全文
摘要:假设我们现在需要知道 ab 的后 n位数或前 n位数,简单直观的做法就是求出ab 的值,然后在分别取前n位或后n位,不过在 a,b很大的情况下显然是无法存储的。所以,直接求是不可能的了。 让我们先来看看后 n位如何求?因为我们只要后n位,那么我们都知道把ab 的值模上一个10n就是所求。根据求...
阅读全文
摘要:1 #include 2 #include 3 using namespace std; 4 #define N 1010 5 6 //两个数的最大公约数和最小公倍数 7 __int64 Gcd(__int64 a, __int64 b) 8 { 9 if(b==0)10 ...
阅读全文
摘要:给你两个数 a,b。问你区间 [1,N]中都是有多少个数是a,b的公倍数。当数据很大的时候,遍历肯定会超时。其实,我们可以首先求出 lcm(a,b)。因为我们知道(a,b)公倍数都是它最小公倍数的倍数。所以,我们只需要求[1,N]中lcm(a,b)的倍数------即在[1,N]中有多少个数能...
阅读全文
摘要:最长非上升子序列问题是一个经典的DP问题。如下给出完整的问题描述: 给你一串序列 A1,A2,A3,A4,A5........An。让你找出它的某个最长子序列 S1,S2,S3,S4.........Sm。使得 S1ans)14 ans = dp[j];15 ...
阅读全文
摘要:最近学了下最大流算法,大概思想算是懵懵懂懂了,现在想把模板记录下来,以备后面深刻学习之用。 1 #include 2 #include 3 using namespace std; 4 5 #define _clr(x, y) memset(x, y, sizeof (x)) 6 #def...
阅读全文
摘要:数据结构课作业之链式表。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 struct Node 7 { 8 char name[30]; 9 char telp[30]; 10 ...
阅读全文
摘要:数据结构课作业栈应用之运算表达式求值。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 #define Max 1005 8 9 template 10 class St...
阅读全文
摘要:数据结构课图作业之最短路:打印出从某个源点到其余所有顶点的具体路径和其最小路径长度。在整个算法中只要加上一个pre数组保存i点直接前驱即可。另在输出路径函数中,首先从终点往前推到起点(pre数组可以保证),并把沿途的点都加入到一个栈中。然后输出整个栈即是一条路径。#include using n...
阅读全文
摘要:给你两个数__int64 类型的整数 a ,b,c。问你,(a*b)%c的值是多少??我们知道: (a*b)%c = ((a%c)*(b%c))%c 。不过即使这样做,在c很大的情况下,(a%c)*(b%c)还是会越界。下面给出二进制的实现代码: 1 #include 2 #include...
阅读全文
摘要:以下是老师作为数据结构课的作业的要求,没有什么实际用处和可以探讨和总结的的地方,所以简单代码直接展示。宽度优先遍历: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 #define _clr(x, y) memset(x,...
阅读全文

浙公网安备 33010602011771号