自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenhq1991的专栏

不是大牛,只是记录学习的过程

  • 博客(152)
  • 收藏
  • 关注

转载 java中==号和equals的比较

以前对这两个东西总是很模糊,今天特地查了下,记录下来!!或许很多人会说,==是比较内存地址,equals是比较内容。这种说法有点儿片面,equals是Object类中的方法,当你查看JDK中的源码后,你会发现equals方法很简单,就是public boolean equals(Object obj){return (this == obj);}相当简单啊 ,就一句话。而且里面还是

2012-10-23 21:06:58 946

转载 C++的64位整数

在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。  那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编译器对6

2012-10-22 14:40:15 789

转载 回车与换行

在Windows中:'/r'  回车,回到当前行的行首,而不会换到下一行;'/n'  换行,换到当前位置的下一行,而不会回到行首;回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。 在计算机还没有出现之 前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打1

2012-09-23 10:49:47 626

转载 Iterator 的一般用法

迭代器(Iterator)  迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。  Java中的Iterator功能比较简单,并且只能单向移动:  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一

2012-08-31 09:24:20 633

转载 Java 中 for 循环的写法

J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。         在Java程序中,要“逐一处理”或者说,“遍历”某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类

2012-08-31 09:21:20 899

原创 1029. Rabbit

1.一个简单的递归求和即可2.m = 1应该是特殊的情况#include#include#includeusing namespace std;class BigNum{public: BigNum() { this->num = "0"; } BigNum(string n) { this->num = n; } string getNum() {

2012-08-26 16:29:07 1015

原创 sicily--1159. Sum

1.练练重载函数2.记得之前也有一道类似的题目,同样也是在“最高进位”的问题上忘记考虑了#include#includeusing namespace std;class BigNum{public: BigNum() { this->num = "0"; } BigNum(string n) { this->num = n; } string getNu

2012-08-23 22:28:10 592

原创 sicily--1201. 01000001

1.在最后的输出时,要判断结果是否为0,也就是 ans 是否全为0或则是为空2./*if(ans.empty()) cout << 0; else { for(int i = ans.size() - 1; i >= 0; i--) { if(flag && ans[i] == '0') ; else { flag =

2012-08-16 18:33:21 739

原创 sicily--1040. Polly Nomials

1.sicily 上最难的就是读题啊!!!一直读不懂啊,一开始以为是 “指数 系数 指数 系数”,直到后来才猜到是“最高指数 系数 系数”2.要算最少的花费,则需要用到“秦九韶算法”只要系数不为0,则需要一个加法,一个乘法,还要计算系数的位数;如果系数为0,则只需要一个乘法3.最坑人的是,那个鸟居然会分辨 是不是0, 就是最后输入的常数, 如果常数为0,则不去做加法,直接忽

2012-08-16 17:46:54 877

原创 sicily--1775. Simple Sort

1.由于最近一直想学号优先级队列,所以还是用了优先级队列2.由一个优先级对列 seq 来储存最后输入的“优先级”信息,并按“优先级”由小到大排好序; 再创建一个优先级队列Q 按照 seq 排好的顺序的“下标”去“排序”元素3.重点就是两个优先级队列的比较函数 cmp #include#include#include#define M 10 //最多的列数using namesp

2012-08-15 23:13:13 1629

原创 sicily--1930. 排序

1.就是一个选择排序#include using namespace std;int main(){ int test_num; cin >> test_num; for(int i = 0; i < test_num; ++i) { int a[100] = {0}; int n; cin >> n;

2012-08-15 20:24:45 938

原创 sicily--1641. Binary Searchable

1.比较简单2.分析:因为题目说的是无论选择了哪个作为“pivot”, 都要能够“找到”假设要找的是 X, 若 在X的左侧有一个大于 X 的Y 存在, 那么当选择 Y作为“pivot”时,Y的右边包括了X都要被舍弃了,这样就没办法找到X了,所以,为了能找到X,必须要求X比其左侧的都要大;同理,可以知道,必须要求X比其右侧的都要小#include#includeusing names

2012-08-14 18:30:37 1772

原创 sicily--1482. 奖学金

1.用优先级队列模拟即可#include#includeusing namespace std;struct Node{ int snum;//学号 int chinese; int math; int english; int sum;//总分};struct cmp{ bool operator()(Node n1, Node n2) { if(n1.s

2012-08-14 16:39:58 1306

原创 sicily--1438 Shopaholic

1.水题2.为了要让“折扣”最大化,肯定是送的价格越大越好; 无论怎么搭配,价格最高的两个货品是没有办法赠送的,所以我们可以设计让接下来最贵的(排总第三)货品当作赠送的,类似的,排除这三个货品之后,剩余的也是买“前两个”送“第三个”递归运算,这样我们就可以得到最大的“折扣”了#include#includeusing namespace std;int main(){ int

2012-08-14 16:22:36 1065

原创 sicily--1351. Multi-key Sorting

1.一开始真的觉得很难很难,因为刚刚做了一个 KMP 的题目,个人觉得这个题目是不是在考察同样的东西,就是说如果两个连续的“区间”(1、2、3***个数字为一个区间)如果相同则可以舍去一个区间,这样我就一直在想可不可以往KMP上面去靠,但是怎么都不行2.后来一想,题目所说的是 "stable" ,那么无论即使前面的排序如何,只要后面的有另一个列的排序的话,那么前面的列顺序可以说就被破坏了,这么

2012-08-14 15:51:28 2885

原创 sicily--1341. 明明的随机数

无聊的计数#includeusing namespace std;int main(){ int num; while(cin >> num) { int entry[1000] = {0}; int randomNum = 0; for(int i = 0; i < num; i++)

2012-08-13 16:58:00 1799

原创 sicily--1252. Defining Moment

1.这题在网上的分类中属于排序部分,但是我怎么做都觉得这就是考 string 的应用2.坑爹的地方是前缀"re" 所对应的翻译是要在"word"的后方; 后缀"er" 所对应的反应要在原有的"word"的基础上在屁股加"s";“tion” 后要加"ing"3.最终输出的"word"是去除了前缀跟后缀之后剩下的,题目已经说明了去除之后不会为空的4.前缀一定是要从第0下标开始; 后缀一定是

2012-08-13 16:55:50 550

转载 C++中 string 的使用

--之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。     首先,为了在我们的程序中使用string类型,

2012-08-13 00:58:29 824

原创 sicily--1306. Sorting Algorithm

#include#includeusing namespace std;int main(){ int totalNum, interval; while(cin >> totalNum >> interval && totalNum != 0) { list numList; while(totalNum-- > 0)

2012-08-13 00:15:54 1430

原创 sicily--1282. Computer Game

1.KMP算法:http://blog.csdn.net/chenhq1991/article/details/78301932.因为题目说说的60000的长度是 code 的长度,主串的长度未知,所以要开大点3.有了KMP算法,这道题就很简单了,但是KMP对我来说的确很难理解#include#includeusing namespace std;int code_dimens

2012-08-12 20:48:33 1338

原创 sicily--1198. Substring

1.一开始觉得就将字符串排好序,将排在前的字符串放在“终”字符串的前列,直至拼接完所有的字符串; 但是没想到一直 WA,上网查了一下,发现了这个大大的问题://c和ca,是cac而不是cca;//ae和aec, 是aeaec 而不是 aecae2.分析一下:string1 = "cccca";string2 = "ccccb";        这两个字符串的比较需要比较到最后一个字符,

2012-08-09 00:33:12 462

原创 sicily--1134 积木分发

1.是一道水题2.利用优先级队列模拟即可3.“比较”的原则是:需求积木数少的优先给予;若需求一致,则拥有积木数多的优先给予#include#includeusing namespace std;struct Node{ int has;//该小朋友拥有的积木数 int need;//需要的积木数};struct cmp{ bool operator()(cons

2012-08-08 23:21:27 1158

原创 sicily--1097. LED Modding

1.还是比较水,用优先级队列模拟即可2.个人觉得应该注意的就是当“USB #include#include#include#include#includeusing namespace std;struct Node{ string name; int interval;};struct cmp{ bool operator()(const Node &n1,

2012-08-08 22:20:24 660

原创 sicily--1046. Plane Spotting

优先级队列参考:http://blog.sina.com.cn/s/blog_5e518b010100kbts.html1.一直在“比较”上错了,没有注意到/* A period P1 is better than another period P2 if: **the number of planes per quarter in P1 is higher than in

2012-08-08 19:45:46 741

转载 KMP算法详解

这写得太好了,KMP算法我上网找了很多的文章,也看了《算法导论》,但都是看得云里雾里,理解能力不够好,但是这篇文章总算是让我了解一个大概了,爽爆心情如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段。***************************正文************************************    我们这里说的KMP不是拿来放

2012-08-04 15:22:02 898

转载 KMP算法

这篇文章主要是讲了 KMP 的代码实现,如果要更详细的了解KMP的思想,推荐:http://blog.csdn.net/chenhq1991/article/details/7830193转自:http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.html在介绍KMP算法之前,先介绍一下BF算法。一.BF算法

2012-08-04 14:00:30 525

原创 静态代码块

1.静态代码块格式:static{ //静态代码块内执行的语句 //比如:初始化语句}2.静态代码块在类被加载的时候就运行,且优先于主函数(如果有的话),而且只运行一次 class StaticCode{  int num = 9;  static//静态代码块  {   System.out.print("a");  }

2012-08-03 13:51:55 6239 1

转载 Linux(CentOS 6.2)系统上安装Mplayer播放器

<!--@page {margin:2cm}p {margin-bottom:0.21cm}a:link {color:#0000ff}-->这个方法我亲自安装成功了,网上有太多一模一样的东西了,但是我一个都没有成功过,都会遇到一些不知道是什么的错误,当然,我也还是菜鸟,但是按照这个方法至少我解决了我的问题,真的太辛苦了,安装这个MplayerL

2012-08-02 13:58:49 6370

转载 如何在CentOS上安装电影播放器

转自:http://hi.baidu.com/dengkui1851/blog/item/0de16d8d4f2b2b1eb21bba28.htmlCentOS官方源里的电影播放器是根本就用不了的。所以这里我们要利用第三方源来安装。加入RPMforge源:sudo rpm -Uhv http://rpmforge.sw.be/redhat/el5/en/i386/rpmforge/

2012-08-02 13:38:03 1656

转载 Linux 时间同步配置

转自:http://blog.csdn.net/tianlesoftware/article/details/53155另外这个方法我也试过可以:http://orgcent.com/linux-ntpdate/一. 使用ntpdate 命令1.1 服务器可链接外网时    # crontab -e    加入一行:    */1 * * * * ntpdate 2

2012-08-01 22:50:02 458

原创 求数组b的最长不减子序列长度

从数组的第0个元素开始,顺序考察数组的每个元素,当数组的全部元素都被考察后才能求出数组的最长不减子序列。设数组为b,已考察了b[0]~b[i-1]的全部元素,求得当前最长的不减子序列长为k。当前正要考察b[i]是否会引起k值的增大,取决于b[i]是否会大于或者等于b[0]~b[i-1]中某个最长不减子序列的终元素。但需要注意,b[0]~b[i-1]中可能有多个长为k的不减子序列。很显然,在同样

2012-07-31 13:43:12 2363

原创 sicily--1299. Academy Awards

水题map 用于储存字符串出现的次数一开始直接遍历map 找出最大值输出,结果就WA 了,原来题目要求说 若有相同的次数要输出最早在 list 中出现的那个, 而 map 是会自动排序的,所以还需要再加入一个vector来存“顺序”, 最后通过遍历 vector 找出最大值来输出#include#include#include#includeusing namespace std;

2012-07-30 23:57:38 756

原创 sicily--1035. DNA matching

水题用一个map 容器储存系统所给的“核苷酸链”,以及其出现的次数; 遍历map 容器, 要配对成功,则必须在系统给出的“核苷酸链”即我们的map 中有存在, 而可以组成最多的链数就要看这互补的两条链出现的次数最少的那一方因为在遍历map时重复计算了同一条“双螺旋核苷酸链”, 顾最后结果需要除以2#include#include#includeusing namespace std;

2012-07-30 23:15:05 829

转载 sicily--1323. Switch text

一开始怎么都不理解题目,上网看了这个代码,顿时惭愧啊;将输入的两行当作一个 pair ,先操作第二行, 再操作第一行; 其他的就是不太熟悉 getline() 的用法了,它可以将一行字符串读入(包含空格)直至遇见回车符另assign 的用法见:http://blog.csdn.net/chenhq1991/article/details/7799172#include #includ

2012-07-29 15:48:46 821

转载 string assign 的用法

转自:http://www.cppblog.com/MemoryGarden/archive/2009/12/28/104244.aspx 1 // string::assign 2 #include iostream> 3 #include string> 4 using namespace std; 5  6 int main () 7 { 8   stri

2012-07-29 15:47:34 2410

原创 gets() 和 sets()

C语言编译系统提供了大量处理字符串的库函数,下面介绍几种常用的函数。使用字符串输入函数gets()和输出函数puts()时,要用#include命令将“stdio.h”头文件包含到源文件中。而使用其他的字符串处理函数时,要用#include命令将“string.h”头文件包含到源文件中。1. 字符串输入函数gets()调用gets()函数实现字符串的输入,其调用形式为:gets(字

2012-07-29 15:18:32 798

原创 sicily--1133. SPAM

题目不难,但是真的调试到我心都碎了while(s[i] == 45 || s[i] == 95 || (s[i] >= 48 && s[i] = 97 && s[i] = 65 && s[i] 用以判断是否符合邮箱地址的规范,包含了“0 - 9 ”、“A - Z‘、”a - z“、”_“、”-“、”.“的检查我觉得这道题关键的是有两个地方a)当前字符是"."的操作,判断head 或者是 tai

2012-07-29 15:05:05 978

原创 sicily--1129. ISBN

水题,也不知道为什么时间是设置10s#include#includeusing namespace std;int main(){ string s; while(cin >> s) { int weight = 10; int sum = 0; for(int i = 0; i < 11; i++) { if(s[i] >= 48 && s[i] <=

2012-07-28 21:10:58 787

原创 sicily--1753. 解码

烦人!但是水题#include#includeusing namespace std;void printChar(char c, int times){ for(int i = 0; i < times; i++) cout << c;}int main(){ string s; while(cin >> s && s[0] != 'X') { for(int

2012-07-28 20:42:46 854

原创 sicily--1509. Rails

用棧模拟不难// Problem#: 1509// Submission#: 878974// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/lice

2012-07-28 17:50:40 682

空空如也

空空如也

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

TA关注的人

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