ACM学习
文章平均质量分 64
japomica
这个作者很懒,什么都没留下…
展开
-
排序
1101 谁是中间那个问题描述 一天,农夫乔恩像往常一样来到了他的农场,他突然对他的耐久产奶量产生了兴趣。他想知道产奶量处于中间那头奶牛的产奶量是多少。“处于中间”意思是说,其中有一半牛的产量比它多,另一半牛的产量比它少。输入 仅包括一组测试数据,第一行一个正整数 N(1≤N≤10000),接下来 N 行,每行一个整数不会超过 1e6,第 i+1 行数字代表第 i 头牛的产原创 2013-06-11 21:22:04 · 428 阅读 · 0 评论 -
C++_引用类型
引用(reference)有时候也称作别名(alias),它可以用作对象的另一个名字。通过引用我们可以间接地操纵对象,使用方式类似于指针,但是不需要指针的语法。 在实际程序中,引用主要被用作函数的形式参数--通常将类对象传递给一个函数。 引用必须被初始化。 语法:int ival = 1024;// ok: refVal 是一个指向ival的引用int &refV转载 2013-07-28 09:47:59 · 512 阅读 · 0 评论 -
三十分钟掌握STL
三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:[email protected]概述STL的一个重要特点是数据结构和算法的分离。尽原创 2013-07-14 21:24:42 · 419 阅读 · 0 评论 -
#include<algorithm>里的函数
#include里的函数#include 非修改性序列操作(12个) 循环对序列中的每个元素执行某操作for_each() 查找在序列中找出某个值的第一次出现的位置find() 在序列中找出符合某谓词的第一个元素find_if() 在序列中原创 2013-07-14 21:17:02 · 416 阅读 · 0 评论 -
STL源码剖析---STL容器特征总结(含迭代器失效)
转载别人的,很有价值~~~~查看原网页点击此处Vector1、内部数据结构:连续存储,例如数组。2、随机访问每个元素,所需要的时间为常量。3、在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。4、可动态增加或减少元素,内存管理自动完成,但程序员可以使用reserve()成员函数来管理内存。5、迭代器失效插入:vect原创 2013-07-29 18:47:13 · 490 阅读 · 0 评论 -
标准C++中的string类的用法总结
要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstri原创 2013-07-29 20:29:21 · 414 阅读 · 0 评论 -
POJ题目分类
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:转载 2013-07-29 20:36:42 · 581 阅读 · 0 评论 -
STL sort源码剖析
STL sort源码剖析STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来过大的额外负荷,就改用Insertion Sort。如果递归层次过深,还会改用Heap Sort。本文先分别介绍这个三个Sort,再整合分析STL sort算法(以上三种算法的综合) --Introspect原创 2013-07-14 21:31:04 · 550 阅读 · 0 评论 -
训练计划
初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法转载 2013-07-29 20:23:35 · 509 阅读 · 0 评论 -
八皇后问题(递归)
1.引子 中国有一句古话,叫做“不撞南墙不回头",生动的说明了一个人的固执,有点贬义,但是在软件编程中,这种思路确是一种解决问题最简单的算法,它通过一种类似于蛮干的思路,一步一步地往前走,每走一步都更靠近目标结果一些,直到遇到障碍物,我们才考虑往回走。然后再继续尝试向前。通过这样的波浪式前进方法,最终达到目的地。当然整个过程需要很多往返,这样的前进方式,效率比较低下。2.适用范围原创 2013-08-05 16:32:52 · 425 阅读 · 0 评论 -
目前最快的N皇后问题算法!!!
#include #include #include long sum = 0, upperlim = 1; void test(long row, long ld, long rd) { if (row != upperlim) { long pos = upperlim & ~(row | ld | rd); while (pos) {原创 2013-08-05 16:34:12 · 775 阅读 · 0 评论 -
八皇后问题
1、介绍先上张图来说明用回溯法解八皇后问题的每一步: 2、程序对着严蔚敏的书写的,写好后运行竟然一次性成功了,没有任何bug,我鸡冻了。上代码: // N皇后问题#include using namespace std;#define N 8bool matrix[N + 1][N + 1] = {0};bool IsLegal转载 2013-08-05 18:11:21 · 569 阅读 · 0 评论 -
杭电oj题目分类
杭电oj题目分类1001 入门1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010 搜索题,剪枝很关键 1011 1012 简单题转载 2013-08-08 10:03:12 · 656 阅读 · 0 评论 -
POJ题目分类
初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法(d转载 2013-08-14 15:07:10 · 511 阅读 · 0 评论 -
HDUOJ题目分类
注:网上搜的第一篇 1001 这个就不用说了吧1002 简单的大数1003 DP经典问题,最大连续子段和1004 简单题1005 找规律(循环点)1006 感觉有点BT的题,我到现在还没过1007 经典问题,最近点对问题,用分治1008 简单题1009 贪心1010 搜索题,剪枝很关键1011 1012 简单题1013 简单题(有个小转载 2013-08-14 15:09:53 · 1042 阅读 · 0 评论 -
ZOJ题目分类
简单题#1001 -____-b A+B。#1110 Dick and Jane 胡乱枚举收缩一下情况就可以了。#1115 a[i+1] = a[i] 的全部数位上的加起来,直到剩下一个,直接模拟。#1414 太弱太弱,按照模 4 分类讨论一下即可。#1713 简单的字符串截取和字符计数。#1716 简单的二维数组区间求和,作累加,然后容斥一下;预处理 O(W*H),查询转载 2013-08-14 15:05:36 · 1902 阅读 · 0 评论 -
大数加法
题目描述:十进制大数的加法运算。输入描述:输入文件的第1行为一个整数N,表示输入文件中接下来有N组数据。每组数据最多包含100行。每一行由一个非常长的十进制整数组成,这个整数的长度不会超过100个字符而且只包含数字,每组数据的最后一行为0,表示这组数据结束。每组数据之间有一个空行。输出描述:对输入文件中的每组数据,输出它们的和。每两组数据的输出之间有一个空行。样例输入:原创 2013-09-08 19:42:28 · 709 阅读 · 0 评论 -
C++_const限定修饰符
常量==================================为了防止程序员因不小心的错误而修改掉某个变量的值,我们可以给这类型的变量加上const限定修饰符。 它把一个对象转换成了一个常量(constant)。这样在程序中任何改变这个值的企图都将导致编译错误。因此它被称为是只读的。语法:const int bufSize = 512;常量必须初始化: 因转载 2013-07-28 09:46:21 · 416 阅读 · 0 评论 -
C++_字符串类型
C++提供了两种字符串的表示。C风格字符串=============================字符串被存储在一个字符数组中,一般通过一个char*类型的指针来操纵它。所以一般看到一个char*类型的指针,那就是C风格的字符串。该char*类型的指针指向的就是是该字符数组的第一个元素。如const char *st = "The expense of spiri转载 2013-07-28 09:45:19 · 476 阅读 · 0 评论 -
大数模板
#include #include #include //允许生成1120位(二进制)的中间结果#define BI_MAXLEN 105#define DEC 10#define HEX 16class CBigInt{public://大数在0x100000000进制下的长度 unsigned m_nLength;//用数组记录大数在0x10000000翻译 2013-06-11 21:47:41 · 440 阅读 · 0 评论 -
浮点数求最大公约数
double gcd(double x,double y){ double r=x-floor(x/y)*y; while(fabs(r)>eps) { x=y; y=r; r=x-floor(x/y)*y; } return y;} double原创 2013-06-10 20:11:16 · 1302 阅读 · 0 评论 -
#include<queue>的经典应用
使用queue之前,要先利用构造函数一个队列对象,才可以进行元素的入队,出队,取队首和队尾等操作;(1)queue() queue q; 或者 queueQ[10000]; (2).queue(const queue&) 复制构造函数 例如:用一行代码利用queue对象q1,创建一个以双向链表为底层容器的queue对象q2queue> q1;queue> q2(q1);(翻译 2013-06-05 15:13:04 · 1544 阅读 · 0 评论 -
逆序输出一个整数
#include#includeusing namespace std;int reverse(int x){ int num=x,renum; while(num!=0) { renum=renum*10+num%10; num=num/10; } return renum;}int main(){ int x,ans; whil原创 2013-06-16 11:45:28 · 592 阅读 · 0 评论 -
前m大的数
HUD1280Problem Description还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就可以了。给定一个包含N(N Input输入可能包含多组数据,其中每组数据包括两行: 第一行两个数N和M, 第二行N个原创 2013-06-17 14:47:51 · 518 阅读 · 0 评论 -
插入排序
经典排序算法 – 插入排序Insertion sort 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。 图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。代码原创 2013-06-07 19:30:05 · 477 阅读 · 0 评论 -
STL源码剖析---list
灰常给力的STL源码剖析~查看原网页点击这里 相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。 list不仅是一个双向链表,而且还是一个环状双向链表。另外,还有一个重要性质,插入操作和接原创 2013-07-29 18:35:25 · 552 阅读 · 0 评论 -
STL源码剖析---vector
某位大牛写的,很有学习价值~原址vector容器概述 vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内原创 2013-07-29 18:13:51 · 425 阅读 · 0 评论 -
STL源码剖析---deque
值得一看!查看原网页点击这里 一、deque的中控器 deque是连续空间(至少逻辑上看来如此),连续线性空间总令我们联想到array或vector。array无法成长,vector虽可成长,却只能向尾端成长,而且其所谓的成长原是个假象,事实上是(1)另觅更大空间;(2)将原数据复制过去;(3)释放原空间三部曲。如果不是vector每次配置新空间时都有留下一些余裕,其成长原创 2013-07-29 18:39:43 · 617 阅读 · 0 评论 -
位运算应用口诀和实例
位运算应用口诀和实例 位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算转载 2013-07-30 14:17:36 · 424 阅读 · 0 评论 -
Ugly Numbers
Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ... shows the first 11 ugly numbers. By convention, 1 is included. Writ原创 2013-07-31 10:48:39 · 2146 阅读 · 0 评论 -
数独求解(Sudoku) C++版
今天翻手机里的游戏时,找到了以前经常玩的九宫格,也就是数独。拼出一个20个已知数字的数独后,我又想写代码解数独了...思路比较清晰,依旧是DFS,感觉应该不难写。花了2个小时搞定代码,用手机里的数独游戏测试了几次,全部通过...意外发现PKU 2676就是数独求解,用我写的代码交了2次全是TLE...看了Discuss以后得知要AC必须从后面开始搜...囧,数据问题,数据问题...恩,转载 2013-07-31 08:36:08 · 1510 阅读 · 0 评论 -
HDU 1047 Integer Inquiry(高精度加法)
HDU 1047 Integer Inquiry(高精度加法)Integer InquiryTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6755 Accepted Submission(s): 1723原创 2013-07-25 19:12:02 · 498 阅读 · 0 评论 -
ZOJ 1242
Carbon DatingTime Limit:2 Seconds Memory Limit: 65536 KBUntil the second half of the 20th century, determining the actual age of an archaeological find had been more or less a matter of转载 2013-07-26 15:13:34 · 486 阅读 · 0 评论 -
TSP 路径构造算法
TSP 路径构造算法(tour construction algorithm)[email protected]前言:Tsp是经典的NP问题之一,其现实意义也是不言而喻的。该问题的研究很有些年头了,现在多集中于新型智能算法,如模拟退火,禁忌搜索,蚁群算法,粒子群算法,遗传算法等。这些算法虽很有效,但使用良好的初始解得时候,效果会更优。本文系统介绍并详细讲解了前辈们的关于构建优良TSP路转载 2013-07-27 08:07:05 · 3458 阅读 · 1 评论 -
zoj 3323 Somali Pirates
#include#include#include#includeusing namespace std;int main(){ int ncases; char ch; cin>>ncases; getchar(); //一个字符一个字符判断 while(ncases--) { ch=getchar();原创 2013-07-26 16:18:20 · 586 阅读 · 0 评论 -
编程中无穷大常量的设定技巧
转自:http://page.renren.com/601487394/note/883716691如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7f原创 2013-09-21 19:13:20 · 699 阅读 · 0 评论