摘要: Calculating LCM is based on calculating GCD:Get LCM by Euclid algorithm :int LCM_Euclid(int &n,int &m){if(n==0||m==0) return 0;int a=n,b=m,k;while(a%b!=0){a%=b;swap(a,b);}return n*m/b;}View Code 阅读全文
posted @ 2013-10-06 14:47 光辉灿烂的日子 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 我的code: 超时,不知道怎么优化,望大神指点 1 #include 2 #include 3 #include 4 using namespace std; 5 6 struct StepPoint 7 { 8 int X,Y,Val; 9 const bool operator q; 18 q.push(beginP); 19 while (!q.empty()) 20 { 21 StepPoint p=q.top(); 22 q.pop(); 23 StepPoint p... 阅读全文
posted @ 2013-08-27 22:13 光辉灿烂的日子 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 此篇文章转载自http://blog.csdn.net/dj0379/article/details/8516896处于收藏的心态,怕原作者把博客更新之后自己找不到带来的麻烦,索性在自己的博客里保存了一份,知道抄袭给网络环境带来的不良影响也深感体会,望见谅const的作用const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。(一)const修饰参数。const只能修饰输入参数。1、如果输入参数是指针型的,用const修饰可以防止指针被意外修改。2、如果参数采用值传递的方式,无需cons 阅读全文
posted @ 2013-08-22 12:02 光辉灿烂的日子 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题目:A*B Problem时间限制:1000 ms | 内存限制:65535 KB难度:2 描述设计一个程序求出A*B,然后将其结果每一位相加得到C,如果C的位数大于等于2,继续将C的各位数相加,直到结果是个一位数k。例如:6*8=48;4+8=12;1+2=3;输出3即可。 输入第一行输入一个数N(0 2 #include 3 using namespace std; 4 5 char a[15],b[15]; 6 int results[30],len_results=0; 7 8 int* Mulit(char *a,char *b) 9 {10 int len_a=... 阅读全文
posted @ 2013-08-22 10:02 光辉灿烂的日子 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 今天偶然注意了一下C++中malloc的源代码定义,发现有一点疑问,_cdecl 是什么,似曾相识啊,哦,知道了,这和C# 中P/Invoke 有一些关系C#调用WINAPI时:[System.Runtime.InteropServices.DllImport("user32.dll")] 其中一个参数涉及到调用约定,即CallingConvention。/*调用约定有以下三种:*_stdcall调用:_stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。WIN32 Api都采用_stdcall调用方式,这样的宏定义说明 阅读全文
posted @ 2013-08-19 14:26 光辉灿烂的日子 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 这两天一直在试着调用C++编写的Dll动态链接库来实现一些功能,初学总是遇见各种各样的问题,这次要实现一个改变系统时间的小功能,从而找到SetSystemTime这个系统API,SetSystemTime的原型为: 1 BOOL WINAPI SetSystemTime( 2 _In_ const SYSTEMTIME *lpSystemTime 3 ); 4 5 typedef struct _SYSTEMTIME { 6 WORD wYear; 7 WORD wMonth; 8 WORD wDayOfWeek; 9 WORD wDay;10 WORD wHour... 阅读全文
posted @ 2013-08-16 11:24 光辉灿烂的日子 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 好长时间没温习过算法了,简单的快排都不知道怎么写了,好在抽出时间再温习一下...1、快速排序最坏情况运行时间为O(n2),平均情况运行时间为O(nlgn)2、快速排序和合并排序一样,也是基于分治模式的。3、快速排序算法的关键是Partition 过程,它对子数组A[p..r] 进行了重排:Partition(A,p,r){x←A[r]i←p-1for j←p to r-1 do if A[j]≤ x then i←i+1 exchange A[i]↔A[j]exchange A[i+1]↔A[r]return i+1} 1 #include 2 using namespace st... 阅读全文
posted @ 2013-08-08 11:21 光辉灿烂的日子 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 动态规划是对最优化问题的一种新的算法设计方法。由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的没计法对不同的问题,有各具特色的表示方式。不存在一种万能的动态规划算法。但是可以通过对若干有代表性的问题的动态规划算法进行讨论,学会这一设计方法。多阶段决策过程最优化问题——动态规划的基本模型在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。因此各个阶段决策的选取不能任意确定,它依赖于当前面临的状态,又影响以后的发展。当各个阶段决策确定后,就组成一个决策序列,因而也就确定了整个过程的一条活 阅读全文
posted @ 2012-08-29 01:08 光辉灿烂的日子 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 基本原理 该算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[ i ],顶点Yj的顶标为B[ j ],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,对于任一条边(i,j),A[ i ]+B[j]>=w[i,j]始终成立。 KM算法的正确性基于以下定理: 若由二分图中所有满足A[ i ]+B[j]=w[i,j]的边(i,j)构成的子图(称做相等子图)有完备匹配,那么这个完备匹配就是二分图的最大权匹配。 首先解释下什么是完备匹配,所谓的完备匹配就是在二部图中,X点集中的所有点都有对应的匹配或者是 Y点集中所.. 阅读全文
posted @ 2012-05-08 23:05 光辉灿烂的日子 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 我在VC2008中編譯完成了一個工程,但一運行則出現找MSVCR80.dll,之後提示找不到coredll.dll,随後提示找不到MMVCP70.dll和MMVCR70.dll這些Dll,把逐一把相應的dll考到程序的目錄中,以爲終于可以運行了,沒想到卻提示“無法定位序數1346于動态鏈接庫COREDLL.dll上”,經過調試發現是在程序涉及到XPCOM組件的時候,才會出現無法定位序數問題,是因为调用函数system(“pause”); 但问题是有时却可以使用system(“pause”)? 阅读全文
posted @ 2012-05-07 12:50 光辉灿烂的日子 阅读(287) 评论(0) 推荐(0) 编辑