- 博客(23)
- 资源 (16)
- 收藏
- 关注
原创 vs中ANSI编码和UNICODE编码及二者的兼容性问题
ANSI编码的字符集是多字符集,也就是每个字符的编码宽度不相等。UNICODE编码的字符集是宽字符集,每个字符的编码都是两个字符。有些操作系统仅支持多字符集,有些操作系统仅支持宽字符集,当然更多的操作系统是两种字符集都支持。为了兼容两种字符集,vs编译器为使用宏定义的方法来选择编译成多字符集还是宽字符集,下面分别介绍:1.多字符集(ANSI)字符型是char const ch
2016-12-24 22:52:37 5167
原创 Dev-C++调试技巧
如果可以随意选的编译器,那固然是好事。但是,有些比赛或者考试就往往规定了要编译C++只能用Dev-C++,该编译器简单易上手,但也造成了它功能上的局限性。因此,必须掌握一些使用Dev-C++开发调试的技巧。1.批量输入对于输入量比较大的情况,如果每次都一个字母一个字母地敲,必然会耗费大量的时间。一个简答的做法就是批量输入。下面为demo:建立项目时,为调试的方便,最好不好使用中文名。
2016-12-19 23:11:28 8500
转载 如何在cmd命令行中查看、修改、删除与添加环境变量
首先明确一点:所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改。也就是说当关闭此cmd命令行窗口后,将不再起作用。永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方法目前没试验过),另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量(查看详细)。其次,明确一下环境变量的作用。它是操作系统用来指定运行环境的一些参数。比如临时文件夹位置
2016-12-19 22:14:01 1112
原创 李开复:算法的力量|万变不离其中
程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为
2016-12-18 00:03:20 593
原创 幂取模算法
问题描述:输入正整数a、n和m,输出的值。方法一:依此乘以a并取模#include#includeusing namespace std;int pow_mod(int a, int n, int m){ int ans = 1; for (int i = 0; i < n; i++)ans = (int)((long long)ans * a % m); return a
2016-12-17 22:35:55 661 1
原创 大整数取模
问题描述:输入正整数n和m,输出n mod m的值。问题分析:根据n和m的取值范围,可以取n为char*类型,m为int类型。首先mod运算具有如下性质:需要注意的是,有可能小于0,所以要先加n。而当n=时,中间结果会溢出,所以计算时应该先强制类型转换为long long 型。对于输入的n,把大整数写成“自左向右”的形式:1234=((1*10+2)*10)*10+4,然后
2016-12-17 22:31:55 4426 2
原创 求直线上的整数点算法
问题描述:求直线上有多少个整数点(x,y)满足。问题分析:把直线方程进行移项,得到。假设已经得到直线上一个点的坐标,假设直线存在另外一个点坐标为,那么把两点代入直线得到方程,整理得到。假设,上上式两边同除g,可以得到,其中。把等式再变形得到,此时的和互素,必定是的整数倍,即k可以为任意整数。整理得到,。由上面的分析知道,只需要就出方程的任意一组解,就可以求出其他解。
2016-12-17 22:24:59 4465 2
原创 归并排序
归并排序是一种高效算法,按照分治的三步法,归并排序的三个步骤如下:划分问题:把序列划分为尽量相等的两半。递归求解:把两半元素分别排序。合并问题:把两个有序表合并为一个。总结为一句话就是,先排列最小的两个相邻的数然后合并两个相邻的序列。程序流程图如下:程序实现如下:#includeusing namespace std;void merg_sort(in
2016-12-17 22:06:27 609 1
原创 最大连续和
问题描述:给出一个长度为n的序列,求出最大连续和。就是找出1尽量大。方法一:直接枚举i,j,找出连续和最大的i,j。#include#includeusing namespace std;int A[1000],n;int main(){ cin >> n; for (int i = 1; i > A[i]; int sum = A[1]; for (int i =
2016-12-17 22:00:02 852 1
原创 八数码问题
问题描述:如下如所示,a,b分别表示两种状态,每个九宫格中的数字都是0~8共9个数字的任意一种排列,现在要把算出a状态移动到b状态的最佳步骤(移动步数最少)。移动的规则是0方块与上下左右任意一块互换位置。问题分析:把每种状态看成一个结点,0块与上下左右块互换位置后形成的状态为之前状态的相邻结点。由此可以见,不过是一个用BFS搜索最短路径的问题。那么问题来了,由于9和数字的全排列
2016-12-17 21:52:24 2181 2
原创 子集生成算法
1. 增量构造法基本思路:一次选出一个元素放到集合中。算法流程:使用前序遍历的方法,因为A中元素个数不确定,每次递归调用都要输出当前集合。另外,为了避免出现类似于{1,2}按照{1,2}和{2,1}输出两次,可以使用定序的技巧,即规定集合A中所有元素的编号从小到大排列,对应于程序中的int s=cur?A[cur-1]+1:0;和for(int i=s;i#incl
2016-12-12 23:28:21 1012 1
原创 素数环问题
问题:输入正整数n,把整数1,2,3,…,n组成一个环,使得相邻两个整数之和均为素数。输出时从整数1开始逆时针排列。n样例输入:6样例输出:1 4 3 2 5 61 6 5 2 3 4方法一:直接枚举法#include#include#includeusing namespace std;int isp[200],A[200];int is_prime(int
2016-12-12 23:16:23 2008 1
原创 八皇后问题
1. 问题:在棋盘上放置8个皇后,使得它们互不攻击,每个皇后的攻击范围为同行同列和同对角线,要求找出所有解。思路:不难发现恰好每行每列放置一个皇后,如果用C[x]表示第x行皇后的列编号,则问题变成了全排列生成的问题。流程图如下:代码实现:#include#includeusing namespace std;int n,cnt;int C[100];void
2016-12-12 23:14:00 712 1
原创 全排列算法
所谓全排列算法,就是输入n个数据,然后输出该n个数据的所有的排列情况。1.每个元素不相同情况下的排列。排列的用计算机程序的思路来考虑就是递归地往数组A里添加元素的过程,如果放完了元素就输出并回溯。为了形象说明情况,我们举个例子,并给出算法的流程图和程序实现。demo:输入n,输出1~n的全排列。流程图:程序实现:#includeusing namespace st
2016-12-11 22:13:00 1320 1
转载 算法中伪代码的书写
伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。 它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它是半角式化
2016-12-10 15:08:13 34744
转载 c++中<string.h>、<string>和<string.h>的区别
string.hstring.h是C语言里面关于字符数组的函数定义的头文件,常用函数有strlen、strcmp、strcpy等等,更详细的信息可以自己查看(面向过程)cstringCString常用于MFC编程中,是属于MFC的类,如从对话框中利用GetWindowText得到的字符串就是CString类型,CString定义在afx.h头文件中。CString为Visu
2016-12-09 23:27:24 2709
原创 python之旅之HelloWorld!
python作为第三大语言,以其简明强大而闻名于世。近日由于工作需要,决定开始一场python只旅。首先说明一点,本人用的开发环境是虚拟机下的RedHat,如果有读者还不懂如何搭建开发平台,欢迎在下面留言。本博文转为初学者打造,高手麻烦绕道~~1.以命令行的方式运行进入linux系统,输入python即可进入python的运行环境,如下所示:在里面可以像matlab一样输入
2016-12-06 21:48:29 515
转载 刘汝佳《算法竞赛入门经典》推荐题目
题号全部为uva题号另附两个参考网站:1.uva崩的时候用下面这个可以代替http://acm.hust.edu.cn/vjudge/problem/toListProblem.action2.没有输入的正确答案可以用下面这个生成http://uvatoolkit.com/problemssolve.PHP一、基础题目1.
2016-12-04 22:05:00 1752
原创 122 - Trees on the level
#include#include#include#includeusing namespace std;const int maxn=10000+5;struct Node{ bool have_value; int v; Node *left,*right; Node():have_value(false),left(NULL),right(NULL){}};b
2016-12-04 21:37:26 453
原创 C++中整型随机数发生器的写法
#include#includeusing namespace std;int main(){ for(int i=0;i<100;i++) cout<<int((double)rand()/RAND_MAX*100)<<endl; return 0;}rand()函数在头文件cstdlib中,RAND_MAX是可以rand()返回值的上限。为了得到一个[0,1]之
2016-12-03 23:31:29 589 1
原创 gdb使用技巧
1.断点的设置①普通断点: b n(注:n为行号),或者是break n。此方法过于简单,不再举例说明。②条件断点:b n if 逻辑表达式注:以上两种断点类型中tbreak设置方法与break相同,只不过tbreak只在断点停一次,过后会自动将断点删除,break需要手动控制断点的删除和使能。demo:1 #include2 using n
2016-12-03 22:51:48 957
转载 vi快捷键一览表
进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filena
2016-12-03 21:13:01 561
原创 C++/C中基于数组的链表(静态链表)
1.用数组描述的链表,即称为静态链表。在C语言中,静态链表的表现形式即为结构体数组,结构体变量包括数据域data和游标CUR。游标指示器指示其后继结点在结构数组中的相对位置(即数组下标)。定义如下:const int maxn=10000;struct StaticNode{ ElemType data; int cur;};StaticNode StaticList[max
2016-12-02 22:43:35 2944
Approximation Algorithms.rar
2020-04-26
牛津字典(欧路词典).txt
2020-03-29
STL_帮助文档
2016-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人