自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 统计两个32位整数的bit位不同的个数

思路就是不断右移两个数,每次比较最低位是否相同,在比较最低位时通过将数和1进行与运算,就可以得到最低位的值。例如4和8,它们的二进制分别可表示为00000000000000000000000000000100和0000000000000000000000000001000.第一次:00000000000000000000000000000100 & 1 = 0000000000000000...

2018-05-11 23:23:34 614

原创 HDU 1280 前m大的数(计数排序)

问题描述: 还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就可以了。 给定一个包含N(N<=3000)个正整数的序列,每个数不超过5000,对它们两两相加得到的N*(N-1)/2个和,求出其中前M大的数(M<=1000)并按从大到小的顺序排列。

2016-06-04 15:36:28 329

原创 高精度加法(适用非负整数)

高精度加法(仅适用于非负整数)问题引入:当两个整数相加但是数字的位数太大,用现有的数据类型并不能存储,这时候可以采用数组,栈等数据结构对数据进行存储。本文仅采用数组对非负整数的高精度加法进行处理。主要思想:先用两个字符串数组a[]和b[]将所需计算的两个加数存储,然后再用两个整形的数组存储两个加数(a1[]和b1[]),此时存储的时候从数字的低位开始存储(例如个位数存储在a1[0]中),然后从两个数

2016-04-08 13:51:32 357

原创 switch-case和if-else的效率比较

偶然之间突然想到测试一下if-elseif、if、if-else、switch-case结构以及单纯通过遍历数组匹配的执行效率,发现选用正确的程序结构对于程序执行效率的影响还是挺大的。首先说说if-elseif、if、if-else三种的执行情况,对于这三种情况执行结果是。。差别不大,三种结果各循环1亿次,两次跑出来结果如下: 可见这三种结构看上去对程序的执行效率影响不是太大。同时又测试了if-e

2016-03-25 20:56:41 14793

原创 二分查找

好久没练手,突发奇想写了个二分查找,结果发现各种bug,果然代码还是得随时写着。。贴上代码纪念一下#include <cstdio>#include <algorithm>using namespace std;int binarySearch(int a[], int n, int key){ int left = 0, right = n - 1; while(left <=

2016-03-24 23:53:50 201

原创 HDU 1276 士兵队列训练问题(简单模拟)

问题描述: 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。样例输入: 本题有多个测试数据组,第一行为组数N,接着为N行新兵人数

2016-01-09 23:47:23 445

原创 HDU 1273 漫步森林 (纯数学问题)

问题描述: Gardon和小希每天晚上都喜欢到屋外的森林里散步,设森林里有N块空地,任意两块空地之间都有一条小径相通。他们每次从任意一块空地出发,经过所有的空地后回到原来的空地。 由于他们都喜欢新鲜的旅行,所以他们不希望对任何一条小径经过两次。那么请问,他们最多能保证多少次这种新鲜的旅行呢? 例如(图),当N=5时,他们只能保持两次这样新鲜的旅行。 样例输入: 输入包含多组数据,每组

2016-01-08 15:28:49 253

原创 二分图匹配

二分图是一种特殊的图 对于无向图G=(V,E),如果V可以分为两个互不相交的子集(X,Y),并且图中的每条边所依附的两点属于不同的子集,则图G则称为一个二分图。边的描述: e={x,y} x来自G的顶点集X,y来自G的顶点集Y定理:一个无向图G=(V,E)是二分图当且仅当G中无奇数长度的回路。二分图匹配:给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是

2016-01-07 22:48:45 747

原创 HDU 2055 An easy problem

很简单的问题,主要注意的地方在于,每次scanf(“%c %d”, &x, &y) 读取之前,需要前清除一下上一次最后输入的回车键,否则第一个字符会直接读入回车。AC代码:#include <cstdio>int main(){ int T; while(~scanf("%d", &T)) { char x; int y; f

2015-12-31 13:49:49 221

原创 HDU 1205 吃糖果(鸽巢原理)

问题描述: HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。样例输入: 第一行有一个整数T,接下来T组数据,每组数据占2行,第一行是一个整数N(0,1000000],第二行是N个数,表

2015-12-29 21:54:00 645

原创 HDU 1176 免费馅饼(DP)

问题描述: 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动

2015-12-29 21:38:46 246

原创 HDU 1175 连连看(DFS)

问题描述: “连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能将错就错了,连线不能从外围绕过。

2015-12-29 21:27:53 243

原创 HDU 2050 折线分割平面(DP)

问题描述: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。 样例输入: 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0,10000],表示折线的数量。 2 1 2样例输出: 对于每个测试实例,请输出平面的

2015-12-29 21:20:01 335

原创 HDU 2048 神、上帝以及老天爷(DP)

问题描述: HDU 2006’10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面、奖品丰厚的抽奖活动,这个活动的具体要求是这样的: 首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中; 然后,待所有字条加入完毕,每人从箱中取一个字条; 最后,如果取得的字条上写的就是自己的名字,那么“恭喜你,中奖了!” 大家可以想象一下当时的气氛之热烈,

2015-12-25 17:23:01 293

原创 HDU 2041 超级楼梯(DP)

问题描述: 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?样例输入: 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。2 2 3样例输出: 对于每个测试实例,请输出不同走法的数量1 2思路:对于最后一级楼梯来说,到达这级楼梯一步上来有两种可能(跨两级或者跨一级),它的总的

2015-12-24 21:48:04 337

原创 HDU 2037 今年暑假不AC(贪心)

问题描述: 假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)样例输入: 输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不

2015-12-24 20:46:27 277

原创 HDU 2036 改革春风吹满地(多边形面积)

样例输入: 输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆时针顺序给出的n个顶点的坐标(x1, y1, x2, y2… xn, yn),为了简化问题,这里的所有坐标都用整数表示。 输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理。3 0 0 1 0 0 1 4 1 0 0 1

2015-12-24 20:22:19 250

原创 HDU 2031 进制转换

问题描述: 输入一个十进制数N,将它转换成R进制数输出。样例输入: 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。 7 2 23 12 -4 3样例输出: 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。 111 1B -11思路:对于输入的每个数,用

2015-12-24 14:16:58 243

原创 HDU 2030 汉字统计

问题描述: 统计给定文本文件中汉字的个数。样例输入: 输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。2 WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa! 马上就要期末考试了Are you ready?样例输出: 对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。 [Hint:]从汉字机内码的特点考虑~14 9思路

2015-12-24 13:52:59 197

原创 HDU 1268 积木堆砌的城堡(贪心)

问题描述: 一天,小希用积木搭了个城堡,并且照了正面和侧面的照片(前视图和右视图)给Gardon看,让Gardon猜猜她究竟用了多少块积木;Gardon发现从这两张照片上只能看出每一列上最高的地方有多高,但是无法推测出具体的形状(见图1、2),但是好在小希给了Gardon多次机会,所以Gardon只需要知道大概的范围就可以采用“二分查找”法来计算正确的结果。现在Gardon请你帮忙,根据这两张图,

2015-12-22 21:56:28 631

原创 HDU 1257 最少拦截系统(DP和贪心)

分析和思路: 题目是求最长单调非增子序列的个数,对每一个新来的导弹,判断它与之前已经增加的所有拦截装置所能拦截的最小值,进行比较,如果找到第一个大于等于它的,就将这个最小值更新为新来的导弹的高度。问题描述: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹

2015-12-13 16:25:36 242

原创 HDU 1161 Eddy's mistakes(大小写转换)

题意:将输入的字符串中的所有大写字母转换为小写字母。思路:由于大写字母比其对应的小写字母的ASCII码小32,所以可以将所有大写字母的阿斯克码加上32,32=00100000=0x20 通过每一位和0x20或运算可以得到对应小写字母同理如果为要将小写字母转化为大写字母,可以将所有小写字母和11011111=0xDF进行与运算AC代码:#include <cstdio>#include <cstri

2015-12-13 14:16:52 329

原创 HDU 1253 胜利大逃亡(BFS)

BFS在三维空间的简单应用。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253通过这道题目深刻领会了深搜和广搜应用场合的区别(大神请直接无视),对于迷宫问题在求最短的路径的时候最好采用广搜,节省了时间。而如果求是否能够走出迷宫,则可以用深搜,深搜比广搜节省了空间,但是时间复杂度较高。AC代码:#include <cstdio>#include <

2015-12-13 13:33:13 286

原创 HDU 1251 统计难题

惊奇地发现这个题字典树超内存,所以采用了map对于添加的每个单词的所有前缀都进行统计出现次数,这样效率低一点,但是不会超内存。问题描述: Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).样例输入: 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的

2015-12-12 23:41:30 233

原创 HDU 1238 Substrings

问题描述: You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given strings.样

2015-12-12 22:46:59 206

原创 HDU 1248 寒冰王座(完全背包)

问题描述: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.死亡骑士:”我要买道具!”地精商人:”我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个.”死亡骑士:”好的,给我一个血瓶.”说完他掏出那张N元的大钞递给地精商人.地精商人:”我忘了提醒你了,我们这里没有找

2015-12-11 20:48:35 303

原创 HDU 1243反恐训练营(最长公共子序列)

HDU 1243反恐训练营(最长公共子序列简单应用)问题描述: 这次训练比赛的规则是这样的:1、每个队员从出发点开始,沿着一条唯一的笔直道路跑直到终点,途中不允许往回跑,否则将被取消比赛资格。 2、出发前,每个队员的枪膛内都被装了顺序一样的、用小写英文字母标明类型的子弹序列,每位队员被告知这一序列的信息;同时,每位队员也被告知恐怖分子即将出现的序列和类型(同样用小写英文字母标明类型)。 3、在

2015-12-11 15:12:00 362

原创 HDU 1233还是畅通工程(最小生成树)

HDU 1233还是畅通工程(简单最小生成树)问题描述: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。样例输入: 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N

2015-12-11 11:23:04 313

原创 HDU1232 畅通工程(并查集)

HDU1232 畅通工程(并查集学习) 问题描述: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 样例输入: 4 2 1 3 4 3 3 3 1 2 1 3 2 3 5 2 1 2 3

2015-12-11 00:23:50 269

原创 统计阶乘结果的末尾0的个数

统计结成结果的末尾0的个数今天看到一道题目,是让求解 1024! 末尾的0的个数。对于这个问题,作者首先想到了蛮力法。。先将阶乘的结果计算出来放入数组然后统计末尾0的个数。这样做的话首先得先进行较大规模的阶乘运算然后再得到所需结果。从另一个角度来考虑,得到0的最简方式为 2*5=10 ,故可以考虑阶乘数中2和5两个因子的个数,然而当阶乘数较大的时候,因子2的个数是远大于因子5的个数的,所以可以

2015-05-28 00:40:57 871

转载 矩阵快速幂(学习)

矩阵快速幂(学习)转自:http://www.cnblogs.com/vongang/archive/2012/04/01/2429015.html两矩阵相乘,朴素算法的复杂度是O(N^3)。如果求一次矩阵的M次幂,按朴素的写法就是O(N^3*M)。既然是求幂,不免想到快速幂取模的算法,这里有快速幂取模的介绍,a^b %m 的复杂度可以降到O(logb)。如果矩阵相乘是不是也可

2015-05-26 23:39:19 267

原创 进制转换(itoa函数的使用)

十进制整数与2,8,16进制数之间的转换将整型十进制数转化为所需要的进制数,并以字符串的形式返回。char* itoa(int value, char* string, int jinzhi);value —— 所需要转换的数string —— 转换后的字符串jinzhi —— 所期望的转换的进制所属标准库:stdlib.h程序实例:#include...

2015-05-23 23:48:49 1812

空空如也

空空如也

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

TA关注的人

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