自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 白话经典算法系列之六 快速排序 快速搞定

转自:http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排

2013-12-31 11:14:05 701

转载 算法时间复杂度的计算

原文地址:点击打开链接算法时间复杂度的计算近几年的信息学奥林匹克竞赛中,所有的试题都要求1秒钟内出结果,那么如何度量一个算法的时间复杂度就成为每个OI选手必须具有的基本功,要能在数据范围给定的情况下作出正确算法的选择。算法的时间复杂度是一个算法运行时间的相对量度。一个算法的运行时间是指在计算机上从开始到结束运行所花费的时间长短,它大致等于计算机执行一种基本操作(如赋值、比较

2013-12-31 10:30:44 1346

原创 poj 2373 Yogurt factory (贪心)

题目链接:点击打开链接刚开始wa的代码我现在还是没想通和后来AC的有什么区别。。。我感觉理论上真是一样的。。。只不过一个是先比较成本单价,再乘以个数。另一个是先算总价再比较啊。。求指教!!!!AC代码:#include#include#include#include#include#include#include#include#include

2013-12-23 12:11:42 940

原创 poj 2918 Tudoku

数独。题目链接:点击打开链接#include#include#include#includeusing namespace std;char mp[10][10];bool mk[10][10];vector h[10];vector s[10];void solve(){ for(int i=1;i<=9;i++) { fo

2013-12-21 21:12:18 1196

原创 poj 2718 Smallest Difference

题目链接:点击打开链接题意:有一列数,对其任意分成两组,每组按一定顺序可以组成一个数。            问得到的两个数的差最小是多少。要想两个数的差最小,就是对半分,暴力比较求最小值。关键就是用next_permutation()函数求这列数的全排列,排除前导零的情况。#include#include#include#include#def

2013-12-12 23:58:23 2674

原创 fukan出错点总结

1、algorithm中怎么判断等号的,就是!cmp(a, b) && !cmp(b, a)。如果一个排序,cmp(a, b)=0且cmp(b,a)=0表示什么意思,     (cmp(a, b) = true且cmp(b,a) = true表示什么意思), 表示a要排在b前面,b也要排在a前面,矛盾,会re。             所以 cmp函数写return 语句不

2013-12-10 13:17:50 889

原创 poj 3669 Meteor Shower (bfs)

题目链接:点击打开链接题意:M个陨石会在某个时间砸向地图某点,摧毁该点及其上下左右总共五个格子,也就是在这个时间以后这些格子就不能通过了,问主人公从(0,0)开始最少需要多少时间能到达安全的地方(也就是一直不会被摧毁的地方)先初始化所以格子的崩塌时间为INF(无限大),然后预处理出所有的时间。再BFS,如果没越界、没访问过而且 到达这点的时间将这

2013-12-10 13:06:39 1475

原创 poj 1011 Sticks -----dfs+剪枝

题目链接:点击打开链接比赛的时候老是想搜索加构造长度,以分的份数来搜,由于构成相等长度的长木棍不一定是相等的份数,自然思路混乱,想不出来。如果是以长度来分就好办了。先将所有的木棍降序排列。1、首先  要求的能拼成的长木棍的最小长度len  一定是 大于等于a[0],小于所有木棍的      总长度s的。并且len一定能整除sum。2、剪枝:

2013-12-10 08:25:03 1112

原创 poj 3278 Catch That Cow

题目链接:点击打开链接比赛的时候wa了十次。。。。因为那个网速太坑爹,我对BFS搜索的题注意点也不是很熟悉。。。。每次只知道没过,看不到提交结果。。。凭着感觉改终于改对了。。。注意点:1、写那个能不能走的判断条件时要把 越界的条件 写在  是否访问判断的前面,利用&&      如果前面不成立,后面就不判断的性质。这样才不会下标越界,出现RE。2

2013-12-09 18:50:37 770

原创 Codeforces Round #217 (diy.2) C. Mittens

题目链接:点击打开链接1、先将输入的不同颜色按照该颜色出现频率排序得到左边的。2、再把该颜色序列重新排序-----即从出现频率第二大的颜色移动到与上面那个序列第一个匹配。       得到右边的。3、统计左右不同的数量。吐槽1:我极度极度无语的是用GNU C++ 4.7 提交总是WA在第38组数据上。换了MS C++ (Microsoft Visual

2013-12-08 15:16:28 1339

原创 hdu 1596 find the safest road

题目链接:点击打开链接用dij算法算最大概率。只要把加法运算改成乘法就可以了。。WA了几次,因为没注意每次vis数组都要清零,而把vis清零的语句放在输入n之后执行。#include#include#include#define INF 0x3f3f3f3fusing namespace std;double edge[1010][1010]

2013-12-08 13:05:40 1191

原创 hdu 3342 Legal or Not (拓扑排序)

用拓扑排序判断有向图中是否存在环。题目链接:点击打开链接#include#include#include#include#includeusing namespace std;vector edge[510];int deg[510];stack dz;int n;void solve(){ int count=0; for(int

2013-12-07 22:25:57 1058

原创 Codeforces Round #217 (diy.2) B. Berland Bingo

题目链接:点击打开链接题意:N个人玩BINGO游戏,每个人手里都有一张卡片,卡片上有Mi个不同的数。每个人手里的卡片可能相同。            有一个人从箱子里取出编号为1-100的球,然后报出数,卡片上有相应数字的人可以划掉那个数字,最先            将自己卡片上所有数字划完的人WIN。如果同时完,则都输。问这些人的输赢情况。最关键的一句话就是怎么

2013-12-07 20:12:55 1336

原创 Codeforces Round #217 (diy.2) A. Rook, Bishop and King

比赛的时候就是因为 车 的步数ans3写错了啊。。。不是ans3=rr+cc-1,这样过不了1 3 3 7这组数据,而是用min(rr,ss)+(max(rr,ss)-min(rr,ss))。#include#include#include#include#include#include#include#include#include#include#inclu

2013-12-07 18:04:35 1236

原创 【清澄】A1013. 进制转换4

问题描述  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535啊,连d也要用long long啊。。。#include#include#include#in

2013-12-06 18:08:34 1402

原创 【清澄】A1012. 进制转换3

将10进制a转化为p进制。02147483647=2^31-1,它是第8个梅森素数哦!所以要用 long long。连除取余法。#include#include#includeusing namespace std;char ans[100];int main(){ long long n; int p; whil

2013-12-06 16:42:22 970

原创 【清澄】A1010. 进制转换1

把10进制整数转化为16进制数。#include#include#includeusing namespace std;char ans[100];int main(){ int n; while(scanf("%d",&n)!=EOF) { int r=0; if(n==0) {

2013-12-06 16:30:49 1136

原创 wust oj 1251 报数游戏

题目链接:点击打开链接题目大意:n个人报数,最左边的人(第1个)开始报1,然后2啦、3啦。。。第n个人报n。接着,编号为n-1的人报n+1。依次规律左右报数。当报到是7的倍数或者数字中含有7则拍掌。问第m个人第k次拍掌时所报的数是多少。分析:报数有规律:1、编号为1和n的人每次报的数间隔为2(n-1)2、除编号为1和n的两个人外,其余编号的人每次的间

2013-12-06 14:54:34 1765

原创 poj 1703 Find them, Catch them

还是种类并查集!!题目链接:点击打开链接题目大意:给出不属于同一集合的人的关系。给出询问并判断是不是同一个组织或者当前信息不能判断其关系。#include#includeusing namespace std;int fa[100010];int re[100010];void init(int n){ for(int i=1;i

2013-12-04 21:01:01 762

原创 poj 1182 食物链 (种类并查集经典题)

题目链接:点击打开链接题目大意:有n个动物,关于他们的食物链关系有K种说法,要判断这K种说法中假的说法个数。第一次知道并查集怎么解种类关系问题。参考博客:点击打开链接但是奇葩的是这题多组数据就wa,只有单组数据能过!!!值得注意的是,1、find函数必须用递归写,因为路径压缩时更新每个点到新的父亲的关系要从最后面      推到当前节点来

2013-12-04 20:24:17 854

原创 CodeForces 216A Tiling with Hexagons

已知大六边形的三边a,b,c。它的六条边边长分别是a,b,c,a,b,c。问其中能摆多少个小六边形。诶,居然就是把它分块,看成规则的平行四边形,然后加加减减。最后推出公式:res=ab+bc+ca-a-b-c+1比赛的时候实在是WA到不行,也不知道自己想的方向对不对,也可以说自己不清楚这种题大致思考的方向在哪。。规律该怎么找。所以就只好一排排的加,最后得

2013-12-02 00:06:12 1033

空空如也

空空如也

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

TA关注的人

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