自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 资源 (8)
  • 收藏
  • 关注

原创 关于STL中vector的内存管理与简单代码实现

vector 的内部实现其实就是一块连续内存,它和传统的array不同的是支持扩容,不用考虑越界。vector的迭代器就是最简单的指向容器内类型的指针。其内部有三个指针,start(指向数据存储区的首地址),finish(已使用的数据区的尾端),end_of_storage(指向容量尾端,容量一般富余),当遇到满载的情况,finish指针和 end_of_storage 指针相等,也就是容量用完的

2012-11-30 15:38:03 3750

原创 HDU 3925 Substring

http://acm.hdu.edu.cn/showproblem.php?pid=3925给出a,b,问 :若sum=a+c,且b是sum的子串,那么 c 最小是多少其中 a 很大(10^100)一点一点模拟就可以了,用b从a的低位开始比较,然后b左移补零,依次扫描a的长度import java.math.BigInteger;import java.util.

2012-10-19 20:30:10 1039

原创 HDU4027 Can you answer these queries?(Segment Tree)

“线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,它基本能保证每个操作的复杂度为O(lgN)。”“线段树并不适合所有区间查询情况,它的使用条件是“相邻的区间的信息可以被合并成两个区间的并区间的信息”。即问题是可以被分解解决的。”摘自董的博客,讲的很好HDU4027有一点不同的是,他的 区间更新操作 要做的是把每个数开平方根向下

2012-09-15 19:20:05 796

原创 HDU4273 Rescue(2012 ACM/ICPC Asia Regional Changchun Online)

三维凸包,贴模板过的,不解释……#include#include#include#include#includeusing namespace std;const int MAXN=1001;const int N = 500;const double EPS=1e-8;int g[MAXN][MAXN];struct Point{ double x,

2012-09-12 15:52:43 1163

原创 ZOJ2301(HDU1199) Color the Ball(离散化)

题意是说,有从 1 开始递增依次编号的很多球,开始他们都是黑色的,现在依次给出 n 个操作(ai,bi,ci),每个操作都是把编号 ai 到 bi 区间内的所有球涂成 ci 表示的颜色(黑 or 白),然后经过 n 次给定的操作后,求最长的连续白色区间的左端点和右端点。这里有个技巧,就是我们不用记录所有黑色区间的信息,黑色区间的信息只是用来更新白色区间的。需要记录的是每个白色区间的左端,右端。

2012-09-12 14:20:20 1341

原创 HDU4280 Island Transport(2012 ACM/ICPC Asia Regional Tianjin Online)

裸最大流,不过,可能是hdu的爆栈问题?或者是模板效率问题?貌似卡了不少同学,要不不应该这么惨的吧……当时dinic递归版交上发现是RE(stack over flow),于是LC果断认定是递归的问题,换了个非递归的dinic,7000ms+过掉。赛后pictureyong说 HDU 的栈本身就有问题,加个外挂试试(http://blog.csdn.net/hqd_acm/article/de

2012-09-09 23:52:32 3373 2

原创 用makefile编译C文件

makefile 其实功能挺强大的,这里只是简单谈谈编译C文件的方法。简单点说,makefile 描述的是目标文件,依赖文件与文件操作命令三部分内容,目标文件:依赖文件(一个TAB键)命令语句一个简单的例子:main.c#include#include#include "save.h"int main(){ int n=0;

2012-08-18 19:59:20 8471

原创 单调队列

单调队列的特点,一个是严格单调性(不是非递增或者非递减),这样方便求区间最值;另外一个就是队头队尾都可以出队,但是只有队尾能入队,这个特点是为了保证队列内没有区间外的元素。常见应用,区间求最值,还有动态规划的优化处理。POJ2823 Sliding Windo,就是典型的求区间最值问题,单调队列可解CODE:#include//const int N = 1000001;#defi

2012-08-15 11:15:15 777

原创 字典树(TrieTree)

字典树(TrieTree),常见应用于大量字符串的保存,统计,查找等操作,由于字符串的公共前缀没有重复保存,所以操作起来比较方便,效率很高,搜索引擎的文本词频统计就是它的经典应用之一。HDU1251 统计难题题目要求计算一个给定字符串在特定字符集中以某个单词的前缀身份出现的次数,裸字典树……CODE:#includeconst int MAX = 26;typ

2012-08-14 13:53:00 1356

原创 线索二叉树

线索二叉树的定义:(摘自数据结构自考网http://student.zjzk.cn/course_ware/data_structure/web/shu/shu6.4.1.htm)n个结点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。为了区分这个指针是指向前驱(或后继)还是指向孩子节点的,我们需

2012-08-03 11:15:23 1052 1

原创 二叉树的几种操作

二叉树,经典数据结构,应用广泛一般来讲二叉树的重点在于遍历,因为几乎所有关于二叉树的操作都可以通过遍历解决,同时二叉树的遍历(先根,中根,后根)也有比较强的应用性(比如数学表达式求值)下面给出常规的递归做法,递归好处很明显,代码简单易懂,代码里面的求树的深度,节点数,叶子节点数,也都用的是递归的方法/*********************************

2012-08-01 14:05:39 991

原创 中缀表达式转后缀表达式求值(栈的应用)

咱们熟悉的四则运算表达式,中缀表达式,例如 (12+3)*2-6/2利用堆栈的方法把中缀表达式转换成保值的后缀表达式(又称逆波兰表示法),并最终变为计算机可以直接执行的指令,得到表达式的值 挺简单的不假,也好理解,但就是一直无缘无故的卡着,卡的蛋疼……也不能说完全的无缘无故,其实是手生了吧,太生了……#include#include#include#include

2012-07-28 20:47:14 7333

原创 单链表反转

单链表反转,可以用循环做,当然也可以递归详见代码:#include#includestruct Node{ int data; Node * next;};/*3 -> 1 -> 4 -> 6 -> 2 (1)1 -> 3 -> 4 -> 6 -> 2 (2)4 -> 1 -> 3 -> 6 -> 2 (3)6 -> 4 -> 1 -> 3 -> 2

2012-06-18 03:52:20 1390

原创 恶心的行标,动手擦掉它

不知道你会不会遇到这种情况,在浏览器里看人家的代码的时候,一般网页自带的代码框是有行标的,当然这是方便你查看代码,但是,当你想要把其中一段代码贴出来,放到IDE里面Run一下的时候,杯具来了,每行开头都有几个可爱的数字……如果比较短的话,可以手动删掉,但是当你贴的是一段好几十行,甚至几百行的代码的时候,一行一行删除那几个数字,嗯,是很销魂的事情……该程序其实就是在文件重定向的同时,

2012-06-12 16:10:50 981 2

原创 循环队列

复习吧算是……参考:《大话数据结构》程杰#include#define N 30struct Queue{ int front,rear; int QueueSize; int data[N]; void InitQueue(){ front = rear = 0; QueueSize = N; for(int i=0;i<QueueSize;d

2012-06-04 10:46:30 725

原创 POJ2503 Babelfish(hash)

10W 的字符串查询,据说 二分,map,sort 各种过,没有尝试,写的hash,自己的hash函数 TLE 了,搜了个 UNIX 用的处理字符函数……真心弱爆了,一直以来,指针都没有理解透彻,真心渣渣……Code:#include#include#include#define Mod 39917#define N 12#define M 100001st

2012-05-31 15:36:07 853 2

原创 推箱子,12864液晶实物

嗯,首先要说的是,仿真和实物真心差的很远很远……所以YY的盆友一定不要想的太简单,就像我一样,一直以为仿真做完了,实物会很easy,其实不然,特别是我这种敲代码敲的比较多,上手焊电路比较少的来说,更是蛋疼的要死,按键我就焊了好几次……言归正传,之前写过仿真的推箱子(在这里)。实物我用的是CX12864B,具体的参数,网上多的是,略去不提。至于实物和仿真的区别,差不多有以下几

2012-05-28 23:52:57 3117 3

原创 POJ2002 Squares(hash)

给出N个点,问这些点能组成多少个正方形,N小于1000,显然的,思路是,先确定正方形的两个顶点,然后在点集中查找另外两个顶点至于查找,有两种做法,一个是二分,一个是hash,很明显,hash要快一些Node 1:二分 1157ms,具体见代码#include #include #include using namespace std;struct node{

2012-05-28 11:10:15 1002

原创 2012/5/26 0:56

对自己说,不要浮躁,沉住气,不要浮躁,不要浮躁,不要浮躁,不要浮躁,不要浮躁………………

2012-05-26 00:54:51 1033

原创 POJ Blue Jeans(string)

求 N 个字符串的最长连续公共子串,N 范围是 10 ,每个串最长 60,所以可以暴力……本来是没什么意思的,不过可以学习下string的几个函数参考:字符串分割 http://www.cnblogs.com/MikeZhang/archive/2012/03/24/MySplitFunCPP.htmlstring substr,findhttp://www.cnb

2012-05-10 10:34:03 1229 2

原创 POJ1840 Eqs(hash)

给出 a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 中的系数,还有x1,x2,x3,x4,x5范围[-50,50],求有几组 xi 的值满足等式 第一次碰 hash ,弱爆了的说,学着人家写的,用取余数建表,开始的时候,前三项建表,一直TLE……后来改成前两项建表,后三项查找,过去了。想想也是,建表时需要考虑去重问题,遍历链表会比较浪费时间,所以建表时应该尽量

2012-05-09 20:17:16 616

原创 POJ2299 Ultra-QuickSort(归并排序)

手好生啊,归并排序,敲了这么久……题目意思是用冒泡排序的交换方式(只能交换相邻的俩个元素)最少几次可以把给出的序列做成升序,N有50W归并同时,统计需要往后移动的元素移动的距离之和,即为答案Code:#include#includeconst int N = 500001;int a[N],tt[N];__int64 count;vo

2012-05-05 21:22:42 784

原创 简单计算器(java)

再次验证了一个真理,隔岸观火不如身临其境,亲自动手写过才知道有多蛋疼,以前光顾着YY了,面壁去……有些个bug目前还想不到怎么处理,欢迎板砖,欢迎鄙视~~import java.awt.*;import java.awt.event.*;import java.applet.*;import java.math.BigDecimal;import javax.swing.JFram

2012-01-31 17:23:50 1120 2

原创 电子时钟(51单片机定时器,1602液晶)

可怜的我第一次写中断,第一次用定时器……现在发现,其实课本上都是好东西,为嘛以前就看不进去呢= =!PS:表示液晶指令是个神奇的东西,挺好玩的说……电路图:代码:#include#include#include#include#define uint unsigned int#define uchar unsigned charuint num

2012-01-15 22:07:12 5291 4

原创 推箱子(proteus仿真)

推箱子游戏理念略过不提,之前用C写过一个控制台的,在这里(http://download.csdn.net/detail/l04205613/3653388),有兴趣可以看看,相信比下面的这一坨要好看的多……如果你的keil告诉你说代码太长的话,那就看看这个,下面的这个,30M,整下来吧,应该能用http://ishare.iask.sina.com.cn/f/15646302.htm

2012-01-13 17:20:10 2978 3

原创 漫长的赛季——记我的ACM/ICPC 2011赛季

从7月份开始的吧,我们一行人踏上了征程7月份,热是自然的,鼓噪的蝉鸣和炽热的阳光每天都如约而至,时刻提醒着每一个人夏的存在。有这么一群人,他们每天早上7点左右从床上爬起来,洗洗漱漱套上衣服,就往实验室走,路边的小店里买来的烧饼和豆浆就是他们的早餐,然后在路上,一边享用他们的早餐,一边谈天说地,或者瞎扯。说真的,二区宿舍到教学区的那段路,一个人走,总感觉是那么长,但是有了战友的陪伴,这么

2011-11-21 16:25:50 1514 2

原创 俄罗斯方块(C语言版)

思想很老套了,擦除+矩阵打表,都是前人的东西,这里就不班门弄斧了,只有膜拜,虔诚的膜拜……不过只有自己亲手敲过,才能体会各中艰辛,真的很蛋疼……以后玩游戏再遇到脑残的 bug 了还是留点口德吧,开发者各种不容易啊……还有就是我发现群众的想象力是惊人的,各种 idea ,各种变态的方块,有创意的,恶搞的方块层出不穷,网上一搜,发现只有你想不到的,没有人家还没做出来的,唉,创意啊,永远

2011-11-15 10:44:54 8462 14

原创 ZOJ3549 Little Keng(java大数,快速幂)

题意是说给出两个整数 m,n,然后有sum = 1n + 2n + 3n + ... + mn问sum末尾有几个0,。看人家报告的思路:问题等价与sum能被 10^k 整除,k 值是多少,快速幂求出 sum,然后枚举 k 的值即可。不过中间 sum 值会很大,用 java 写着方便一点,代码来自http://blog.csdn.net/xieshimao/article/detai

2011-11-02 15:32:28 2266

原创 矩阵乘法的应用(hdu1575,hdu1588,poj3070,poj3233,poj3613)

首先感叹下矩阵的强大,真心强大!然后推荐下 Matrix67 大神的神作:十个利用矩阵乘法解决的经典题目大神说的很明白了,我觉得再说啥都多余了,请直接去大神那里看吧,我只是刷了几道简单的入门题,贴下代码,和大家交流下:hdu1575 Tr A矩阵乘法 + 快速幂,很简单代码:#includeconst int mod = 9973;const int N

2011-11-01 12:50:47 2556 2

原创 HDU高精度总结(java大数类)

HDU1002 http://acm.hdu.edu.cn/showproblem.php?pid=1002代码:import java.math.BigInteger;import java.util.Scanner;import java.io.*;public class Main { public static void main(String[] ar

2011-10-14 16:41:38 5156 6

原创 ZOJ1111 Poker Hands(模拟)

终于啃下来了,我类个去啊,那题意,真心纠结啊……要是按我原来的理解,这个题基本就是无解,不过,后来 XY 在竟然 YY 个方法过了,问她,才知道,我理解错了……题意:就是那个叫豪斯的游戏,以前记得在电子词典上玩过的。说是两个人,一人发五张牌,根据花色,还有点数决定谁赢

2011-10-13 23:18:57 897

原创 SGU111 Very simple problem(大数开方)

题意是,给出一个大整数(范围 10^1000),求2次方不大于该数的最大数开始用的是C的高精度加上笔算开方,但是一整天都没出结果,我类个去啊……无奈找了个 java 的代码,先出出气……思想很简单,从1~10^500,区间二分求平方然后跟目标数比较。第一次

2011-10-12 20:58:01 1318

原创 神棍节献礼之——URAL1111 Squares(几何)

题意是有 N 个正方形,每个正方形给出一条对角线的两个顶点坐标,然后判断他们到指定点的距离的大小关系,按距离从近到远,升序输出这些正方形的编号。注意,正方形的边可能不和坐标轴平行,还有如果指定点在正方形内部的话,距离认为是 0 。方法很显然的,根据对角线的两点坐标计算出剩

2011-10-11 19:31:37 1299

原创 神棍节献礼之——TJU1111 MPI Maelstrom(最短路)

我用的floyd,很水,直接整。天大OJ的这个神棍题很有爱……原题链接:http://acm.tju.edu.cn/toj/showp1111.html代码:#include#include#include#define N 101#define

2011-10-11 10:05:05 1370

原创 神棍节献礼之——POJ1111 Image Perimeters(bfs)

题很简单,广搜,深搜自己随意就好。BFS 代码:#include#include#includeusing namespace std;#define N 31int n,m,mat[N][N],vis[N][N];int dir[8][2]={-1,0, 1,0, 0,-1, 0,1, -1,-1, -1,1, 1,-1, 1,1};struct node{ i

2011-10-11 09:58:40 1455 2

原创 POJ3254 Corn Fields(状态压缩)

状态DP的入门题,个人理解,状态DP实质是用2进制(或N进制)表示合法解,暴利枚举所有合法解的情况,然后统计。具体算法,不再复述,网上各种总结,各种详细,各种给力。代码出自dooder_daodao之手,贴来理解+YM:#include#define Legal

2011-10-09 09:44:31 1089

转载 【转载】死理性派恋爱法:拒绝掉前面37%的人

在每期《非诚勿扰》节目上,面对一位位男嘉宾,24 位单身女生要做出不止一次“艰难的决定”:到底要不要继续亮灯?把灯灭掉意味着放弃了这一次机会,继续亮灯则有可能结束节目之旅,放弃了未来更多的选择。在现实中,面对男生们前仆后继的表白,MM 们也少不了这样的纠结。如果遇到了一个优秀

2011-10-08 10:16:08 743 3

转载 【乔布斯05年斯坦福大学毕业典礼上的演讲】

Steve Jobs: Commencement Address at Stanford University"Stay Hungry, Stay Foolish." 求知若饥,虚心若愚史蒂夫·乔布斯(Steve Paul Jobs)苹果电脑公司和皮克

2011-10-06 11:55:28 984

转载 【转载】一个关于VC++6.0与标准C++差异处理的小技巧

原文地址:http://hi.baidu.com/3bian/blog/item/755c6bf4ac00582ebd3109e4.htmlVC++6.0对标准C++的支持并不太好,其中最常见的就是:#include//#define for if(0);else fo

2011-10-03 01:21:25 968

原创 HDU1569 方格取数(2)(最大点权独立集 + 最小点权覆盖集 = 总权和)

给出一个 N * M 的矩阵,每个格放着一个非负数,要求选出一些数,使他们的和最大,要求是有相邻边的格子里的数不能同时选。先说,我压根没想过这事网络流……因为方格取数(1)是个状态压缩……看了题解,才明白的:这个题由于数据范围较大,所以状态压缩过不去,需要用网络流,我

2011-09-28 15:21:21 2134

89C51汇编语言程序的设计与调试

89C51汇编语言程序的设计与调试,主要讲解三个方面内容:1,汇编语言程序设计概述。2,实用(汇编)程序设计。3,89C51芯片的介绍。

2011-10-12

贪吃蛇,C语言实现.rar

用C些的贪吃蛇,在控制台下实现的,所以图形界面不是很好,但是这种比较简单的游戏,可以帮助我们体会和理解图形显示技术的基本原理,欢迎轻拍!

2011-10-04

推箱子,VC下纯C实现.rar

写着玩的小游戏,用C写的推箱子,挺简陋的说,目前只有四关,希望可以和志同道合的朋友交流,一起成长。希望能帮助到你,本着开放交流的原则,下载应该是无障碍的

2011-10-02

Linux必学60个命令文件处理.doc

Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。

2011-09-28

C函数速查.chm

包含C语言完整的函数库,输入关键字,即可方便的查询,每个函数都会附带有示例程序,以及简明的说明,非常实用。

2011-09-28

Wine使用教程.pdf

许多人面临着拥有的软件不能在他的计算机上运行的困扰。随着 Linux 近来的 流行,因为操作系统的不同而发生的更加频繁。你的 Windows 软件不能在 Linux 上运行,而你的 Linux 软件不能在 Windows 上运行。

2011-09-28

MASM5.0使用方法.doc

masm5.0(简单,适合初学者),里面至少应包含masm.exe和link.exe,可能还包含其他的,不过我们只需要最基本的这两个,本文简单介绍了masm5.0的使用方法,但愿你能学好汇编。

2011-09-25

在ubuntu中安装wine使用windows软件

wine是一款用于虚拟使用windows的软件,你可以登陆官方网站,http://www.winehq.org /download 参看各种linux的安装方法,因为是国外的网站,都是英文,这里我只把在ubuntu中安装的方法翻译给大家,仅供参考,因为水平有限,如有错误请予指 正,方便他人参考

2011-09-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除