
算法数据结构
潇洒走一回LW
这个作者很懒,什么都没留下…
展开
-
优快云博客贴代码如何快速排版规范
看别人的代码有时候真痛苦,要是自己会的算法肯定不会参考别人的代码;但是别人的代码不规范,看起来太麻烦了,不整齐,看起来都费劲。所以这里教菜鸟们如何最快的实现代码的工整,排版规范……首先:到你想贴代码的时候或者放入代码的时候,你可以先把光标放到编程语言那个图标,选择C++,然后在框里粘贴上你的代码,点确定就得了,如下图:(下一步往下看->)然后再点上面说的那个图标的往右数第二个图标,原创 2013-09-24 17:05:49 · 3624 阅读 · 0 评论 -
POJ 1146 字符串的下一个全排列
思路:求出字符串的下一个全排列。刚开始想歪了,然后才记得用STL中algorithm库中的next_permutation函数,然后就搞字,很简单。代码如下:#include #include #include using namespace std;int main(){string a;while(cin>>a&&a!="#"){if(next_perm原创 2013-08-28 00:40:48 · 811 阅读 · 0 评论 -
COJ 1151 STL中的stack每日一水
X则入栈,Y则出栈,判断到最后一个字母时是不是为空,非空输出Joopoo,空输出pzjay.#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int main(原创 2013-10-12 16:14:12 · 648 阅读 · 0 评论 -
COJ 1084 双向队列deque
刚才处理文件的时候发现以前这题代码用的不是STL中的,所以就几分钟写了个加入博客就可以把文件删了……#include #include #include #include //包含优先队列#include #include #include #include #include #include #include #include using namespace std原创 2013-10-10 13:47:23 · 638 阅读 · 0 评论 -
POJ 1731 下一个全排列
思路:使用STL中的sort先排序好,然后再使用next_petmutation即可。#include#include#include#includeusing namespace std;int main(){ char a[205]; string b; int l; cin>>a; l=strlen(a); sort(a,a+l);原创 2013-09-08 16:47:17 · 748 阅读 · 0 评论 -
POJ 1833下K个全排列
利用next_permutation,这个不需多余判断,直接就可处理由最后一个排列跳转到第一个排列的过程。用G++会tle,得用c++.#include#include#includeusing namespace std;int main(){ int t,a[1026],n,k,i; scanf("%d",&t); while(t--) {原创 2013-09-08 22:11:13 · 708 阅读 · 0 评论 -
COJ 1065括号匹配:栈的简单应用
[STL]【数据结构】括号匹配Time Limit: 1000 ms Memory Limit: 65536 KBTotal Submit: 43 Accepted: 11 Description数据有一行,由(,),[,],{,}六种字符构成。现在判断这行括号是否合法,合法条件如下:1、每个左括号都有对应的右括号匹配,不得有多余的括号,比如这样正确:{}(原创 2013-09-28 16:11:06 · 732 阅读 · 0 评论 -
COJ 1239集合set的简单应用
Input There are only one case, including two lines, the fist line only contain one integer N, stands for the amount of raom digits . The second line contains N integers, stand for random digits (stu原创 2013-09-29 16:28:17 · 617 阅读 · 0 评论 -
COJ 1373 STL中的map每日四水
统计字母,水题……#include #include #include #include #include #include #include #include #include #include #include using namespace std;int main(){ mapp; map::iterator it; char k,a[原创 2013-10-12 22:04:47 · 636 阅读 · 0 评论 -
COJ 1383 STL中的set
[STL][007]字符串查找Time Limit: 5000 ms Memory Limit: 65536 KBTotal Submit: 40 Accepted: 1 Description现在给你一个字典,再给出几个字符串,让你查找,这些字符串是否在其中。Input第一行是两个整数M,N分别表示字典数和字符串数。第2至第M+1行,每一行是一原创 2013-10-12 23:46:26 · 677 阅读 · 0 评论 -
POJ 1256 全排列
题意:重要的是这句话:An upper case letter goes before the corresponding lower case letter. So the right order of letters is 'A'思路:刚开始我确实想用next_permutation(b.begin(),b.end())了,但是发现 'A'代码如下:#include#inc原创 2013-08-28 16:10:06 · 1002 阅读 · 0 评论 -
COJ 1064行编辑距离:STL栈的简单应用
【数据结构】行编辑程序Time Limit: 1000 ms Memory Limit: 65536 KBTotal Submit: 22 Accepted: 14 Description对若干行字符进行编辑处理,并实现以下功能:当出现‘#’时,当作退格符处理(即删除前一个字符,#不保留)。当出现‘@’时,清除本行中'@'前的所有字符(@本身不保留)。原创 2013-09-28 21:45:36 · 731 阅读 · 0 评论 -
NYOJ 35 表达式求值
一个模板了 哈哈/*这里主要是逆波兰式的实现,使用两个stack 这里用字符串来模拟一个stack,第一步,将中缀表达式转变为后缀表达式第二步,然后再使用一个stack,计算后缀表达式的结果,这一步很容易出错,考虑到浮点数的问题。*/#include #include #include #include #include #include using namespace s原创 2014-09-19 15:27:44 · 792 阅读 · 0 评论 -
stringstream对基本类型之间的方便转化
stringstream利用流,可以对基本类型之间进行很方便的转化。今天周赛标程里有,所以搜索了下,还觉得挺有用的,比sprintf好用,因为sprintf还要记住种种转换符号,烦都烦死了,这个利用流方便转化比较方便。直接贴代码:#include#include#include#include#includeusing namespace std;int main(){原创 2014-09-09 21:43:09 · 1488 阅读 · 0 评论 -
glibc中几个有用的处理二进制们的内置函数
说明:因为在牡丹江网络赛中看见北大AC非常简洁的代码里面把二进制用得是炉火纯青,在里面看见了处理二进制的函数,所以咱也学一下。(1)— Built-in Function: int __builtin_ffs (unsigned int x)Returns one plus the index of the least significant 1-bit of x, or原创 2014-09-09 22:07:43 · 1634 阅读 · 0 评论 -
二进制输入或文件的读取
fread(*p,sizeof(datatype),number,FILE *file);说明:p是所要接收的类型变量,datatype是基本类型,number是要读取多少个,*file是文件名,或者指从哪里读取。*file可以是文件名或者标准输入输出。fwrite类似。例如:UVALive 6426int main(){ int s[105][105];原创 2014-09-11 20:37:23 · 1235 阅读 · 0 评论 -
POJ 1068 括号匹配问题
思路:用模拟法,匹配成功的时候就输出就行了。代码如下:#include#includechar s[100];int p[100],r[100],w[100];int main(){int i,n,t,j;scanf("%d",&t);while(t--){scanf("%d",&n);memset(s,'(',sizeof(s));mems原创 2013-08-26 19:13:13 · 824 阅读 · 0 评论 -
COJ 1484合并排序set
[STL][004]合并排序Time Limit: 1000 ms Memory Limit: 65536 KBTotal Submit: 162 Accepted: 108 Description给出一组数字,当有两个或两个以上相同数字时将两个数字合并,然后按照从小到大的顺序对数字进行排序。Input第一行输入一个整数T,表示排序数字个数;接下来一原创 2013-10-10 14:36:46 · 695 阅读 · 0 评论 -
COJ 1236 STL中的map每日二水
[STL][003]又见A + BTime Limit: 1000 ms Memory Limit: 65536 KBTotal Submit: 55 Accepted: 48 Description读入两个小于100的正整数A和B,计算A+B.需要注意的是:A和B的每一位数字由对应的英文单词给出.Input测试输入包含若干测试用例,每个测试用例原创 2013-10-12 17:53:42 · 648 阅读 · 0 评论 -
怎么计算时间复杂度
怎么计算时间复杂度呢?我从网上找了好多,说得都不太清楚,我现在都没全部弄明白,有哪个大神懂的教教我吧……虽然没有全会,但是从百度上找了些例子,可以参考着算……常见的算法时间复杂度由小到大依次为: Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!)下面是具体的例子,从复杂度低的开始列举:O(1)Tem原创 2013-10-07 23:11:05 · 2241 阅读 · 0 评论 -
怎么计算空间复杂度(待完善)
只懂得了点意思,具体怎么计算的空间复杂度我现在也还不懂,先慢慢完善吧……求高人指点!!!空空间复杂度类似于时间复杂度的讨论,一个算法的空间复杂度(SpaceComplexity)S(n)定义为该算法所耗费的存储空间,它也是问题规模n的函数。渐近空间复杂度也常常简称为空间复杂度。空间复杂度(SpaceComplexity)是对一个算法在运行过程中临时占用存储空间大小的量度。一个算原创 2013-10-08 22:52:28 · 1092 阅读 · 0 评论 -
用随机数据测试自己的代码找出错误
这个方法不错,今天刚学会,哈哈 真是相见恨晚啊!!!具体步骤就是用别人对的代码运行一下,把他的代码改下用随机数测试,然后运行之后把这些数据复制,再运行自己的代码,粘贴确定;多测试几组就知道自己的代码错在哪了,哪些数据对不上了。#include //rand()和srand()的库函数#include //time(0)的库函数srand(time(0));随机种子,原创 2013-10-06 11:34:20 · 825 阅读 · 0 评论 -
memset对整形的初始化
感受:以前用过多少次memset函数初始化了,但是我还以为我已经对它很熟悉了。可是昨晚做DP题的时候正好要初始化,因为我的DP是求最小值,所以我就用了这个memset函数初始化100000000,没想到一直错,还以为自己的DP状态方程错了,没想到一步一步验证的时候居然是memset初始化出错了!!初始化一亿不行,然后我就百度了一下,才知道我没有理解memset的实质!实质:memset是一个一原创 2013-11-25 11:35:55 · 2461 阅读 · 0 评论 -
project euler problem 22对文件的处理
其实如果是小的输入的话,是个水题,但是这里是文件输入方式的,所以考查的是文件输入……刚才会了文件的读取之后,这题正好可以运用,哈哈……#include #include #include #include #include #include #include #include #include #include #include #include using names原创 2013-10-28 20:09:04 · 719 阅读 · 0 评论 -
project euler problem 35求一个数的所有循环数都是素数的总共有多少个
这题刚开始想到的是怎么求出这些循环数,然后求出来以后判断就容易多了。但是刚开始想的是用取模和相除的求出的循环数,但是有点麻烦,而且程序总有点问题,所以我就想了另外的一个思路。以前记得做题的时候有道题也是关于循环数的,而循环数可以先把它变成字符串,然后这个字符串再连接自己的字符串,如:15234,连接后为:1523415234,然后就可以知道这些循环数了,即第二个数为从第二位取5个数为:52341,原创 2013-10-20 16:33:25 · 898 阅读 · 0 评论 -
李开复:算法的力量
算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,转载 2014-01-22 23:40:50 · 602 阅读 · 0 评论 -
一位ACMer过来人的心得
转载看自:Peanuts_D博客:http://blog.youkuaiyun.com/aacm1992/article/details/7872387刻苦的训练我打算最后稍微提一下。主要说后者:什么是有效地训练?我想说下我的理解。很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了。其实,这既不是充分条件、也不会是必要条件。我觉得一般情况下,对于我们普转载 2014-01-22 23:43:20 · 679 阅读 · 0 评论 -
USACO:test文件提交方法
/*PROG:rideLANG:C++ID:liwei101*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PI acos(-1.0)#原创 2014-02-23 11:38:01 · 1845 阅读 · 0 评论 -
#include<bits/stdc++.h>包含C++的所有头文件
参考博客:http://blog.kuoe0.tw/posts/2014/01/31/install-gnu-gcc-on-os-x-and-use-the-header-bits-stdcplusplus-h-and-policy-based-data-structure做CF看见别人用这个函数,然后就能直接用vector,set,string那些函数了,摸不着头脑,感觉特神奇就百度了一下,原创 2014-04-28 14:18:42 · 20486 阅读 · 6 评论 -
数组,vector的sort快速降序方法
在sort中因为默认是升序的,所以一般我们需要降序的时候就……了。以前我在CF上看到有人用sort的数组降序方法,快速简单,然后刚才写425A - Sereja and Swaps题的时候又看到别人vector的降序方法,以前学习的时候怎么不知道呢,哈哈……虽然CF没多大建树,不过确实看到好多大神的编程方法以及优化方法,实在是很有用啊!很多时候不是我们不懂,而是我们不会优化,对系统的函数用原创 2014-04-28 13:25:00 · 10369 阅读 · 6 评论 -
POJ 1002多重映射:map的用法
487-3279Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 219752 Accepted: 38302DescriptionBusinesses like to have memorable telephone numbers. One way to原创 2013-08-21 00:21:26 · 899 阅读 · 0 评论 -
hdu 1896(2013.9.15周赛D题)优先队列
题意:某人走在路上会遇见一些石头,如果遇见第奇数个石子,则将它扔到前面,如果是偶数,则什么也不做,如果某一个位置上有多个石头,则先遇见扔的比较近的那个,现在给出一些石头的初始位置和能够扔的距离,问到最后最远处的石头离初始位置多远!思路:搞定了简单的队列,这优先队列也就简单多了,不过用到了重载,好点吃力的。刚开始会一点,所以看了学长们教的课件又百度好多资料才搞明白优先队列。不过还好,终于明白了。原创 2013-09-17 23:35:24 · 881 阅读 · 0 评论 -
COJ 1285 STL中的map每日三水(无限个输入按哪个快捷键得输出)
[STL]首富Time Limit: 3000 ms Memory Limit: 65536 KBTotal Submit: 129 Accepted: 39 Description世界上有钱的人很多,但总会被评出一个世界首富。比如Bill Gates就多年被评为世界首富。但是首富的钱是不固定的,有时候赚钱,有时候赔钱。现在我们知道很多很多首富的原创 2013-10-12 18:53:22 · 733 阅读 · 0 评论 -
codeblocks中对代码的三种测试时间方法
嘻……这几天周赛啥的卡时间太紧,别的队友优化常数太屌,所以只能学习下这个代码测试时间的方法了,上网找了两种方法,然后再加上队友的方法,三种都搬上来了。第一种:#includeint main(){ clock_t startTime=clock(); { //这里是我们要测试的代码; } clock_t endTime=clock();原创 2014-09-11 21:44:18 · 5729 阅读 · 0 评论