
算法题
文章平均质量分 76
hanchaoqi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
青蛙的约会
两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,原创 2012-11-02 22:04:48 · 480 阅读 · 2 评论 -
树的操作(构造,遍历,求高度,查找)非递归
// BTree1.cpp : 定义控制台应用程序的入口点//1.使用广义表构造二叉树//2.程序默认数据为:a(b(c,d),e(,f))//3.三种遍历使用非递归,求树的高度、查找节点使用递归#include "stdafx.h"#include#includeusing namespace std;#define ElemType char#define Statu原创 2012-11-02 22:43:48 · 1122 阅读 · 1 评论 -
ACM足球赛
NKUACM最近要举行足球赛,作为此次赛事的负责人,Lee要对报名人员进行分队。分队要遵循如下原则:一个人不能加入多支队伍;不认识的人不能分在同一队;如果a和b认识,b和c认识,那么认为a和c也认识;每支队伍上限8人,下限5人;尽量使队伍满员。由于参赛人数很多,Lee表示无能为力,所以请你帮助Lee编程解决比赛有多少队伍。Input第一行输入两个原创 2012-11-02 22:49:57 · 1447 阅读 · 0 评论 -
凯撒密码(加密与解密)
/************************************************************************//*caeser.c/* 凯撒密码是把明文字符按照相同的位移量向后移动/*比如明文can,位移量为3,密文为fdq/*本程序仅对英文字母和数字有效/*使用时将文件置于caeser.c同目录下,密文默认名字为cipher.txt/******原创 2012-11-02 22:21:04 · 5081 阅读 · 0 评论 -
混合运算器(1位数)
#include "stdafx.h"#include#include#define INIT_SIZE 100#define ADD_SIZE 10typedef struct{ char elem; int elem1;}SElemType;typedef struct{ SElemType *top; SElemType *base; int size;}St原创 2012-11-02 22:36:52 · 539 阅读 · 0 评论 -
ACM元老的密码
出于在通信中隐藏信息的需要,人类在很久以前就学会了对传递的信息加密。由于古时多数人并不识字,最早的秘密书写的形式只用到纸笔或等同物品,随着识字率提高,就开始需要真正的密码学了。最古典的两个加密技巧是:移位式(Transpositioncipher):将字母顺序重新排列,例如‘help me’变成‘ehplem’;替代式(substitutioncipher):有原创 2012-11-02 22:38:52 · 927 阅读 · 0 评论 -
Meizi的礼物
一天,Meizi送了Lee一个礼物,Lee很高兴,可是Meizi不让他当面拆开包装。经过一段安定祥和的时光后,Lee回到了宿舍。他迫不急待地想打开礼物,拆开包装后却发现盒子需要密码才能打开……Lee郁闷了,密码是什么呢?经过一番搜索,他发现盒子底下写有Meizi的留言:亲爱的,你从一个单词里选出一些字符按照原来的顺序组成新的单词,如果其它单词也都能用这个方法组出一样的新单词,那么所有这样的原创 2012-11-11 20:59:00 · 581 阅读 · 0 评论 -
圣诞岛的旅行
ProblemAngel最近无聊,去了圣诞岛(CX *^_^*),他喜欢无目的的乱逛,当然,他不会轻易地回头。Angel想去广场,那么,他什么时候才能到呢?你已经得到了CX的地图,地图上有N(N<= 100)个交叉路口,交叉路口之间有马路相连接(不超过1000条马路)。因为CX的人遵循奇怪的规则,道路都是单向的,不同的道路之间有一定的距离,我们假设Angel所在的地点为点1,广场所在点原创 2012-11-11 21:02:39 · 694 阅读 · 0 评论 -
堆排序
使用C++实现堆排序及相关操作,一切尽在代码中……#includeusing namespace std;#define MAX 999#define MIN -1#define OK 0#define ERROR 1int parent(int i);//返回为i的元素的父节点下标int leftChild(int i);//左孩子下标int rightChild(i原创 2012-12-01 10:55:32 · 395 阅读 · 0 评论 -
To Be an Dream Architect(2010年ACM亚洲预选赛杭州赛区第三题))
ProblemC. To Be an Dream ArchitectDescriptionThe “dreamarchitect” is the key role in a team of “dream extractors” who enter other’sdreams to steal secrets. A dream architect is responsible for原创 2012-11-11 21:07:45 · 769 阅读 · 0 评论 -
百度时间(2007年百度之星初赛第一题)
百度时间 Baidu的服务器上使用的不是北京时间,而是Baidu时间。Baidu时间的时分秒与北京时间相同,但是日期与北京时间不同,是用一个正整数表示从2000年1月1日开始经过了几天。现在就请大家设计一个程序将北京时间转换为百度时间。在本题中,闰年的年份是400的倍数,或者是4的倍数但不是100的倍数。比如2000和8888均为闰年,但6100不是。原创 2012-11-11 21:03:41 · 1445 阅读 · 0 评论 -
模拟医院挂号系统
// Hospital.cpp : 定义控制台应用程序的入口点。/**病人到医院看病排队看医生的情况,在病人排队过程中,主要重复两件事:(1)病人到达诊室,将病历交给护士,排到等待队列中侯诊(2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊要求:模拟病人等待就诊这一过程,程序采用菜单式,其选项和功能说明如下:(6) 上班——初始化排队队列。(1) 排队——输入排队病人的病原创 2012-11-02 22:34:04 · 3984 阅读 · 1 评论 -
环城汽车赛
环城汽车赛XYZ城要举行一场汽车赛,因为XYZ城的巿长是个怪人,所以这次汽车赛有特殊的规则。在这次比赛的环形赛道上设有N个汽车加油站。选手可以选择任意一个作为起点。比赛开始时每辆汽车油箱里都没有油。在到达第i个加油站时了,汽车可以有那加Oi升的油。(我们设一升油可以开一km,并和速度无关)。所以加油站的油加起来正好可以开完全程。最快开完全程(逆时针)的选手将获得第一名。当然原创 2012-11-02 21:54:35 · 579 阅读 · 0 评论 -
一道简单的acm题的三种解决方案(数组、单向链表、容器vector)与代码优化
简述:这是一道很简单的acm题,乍眼一看就想到用数组实现(fishing.cpp),的确数组实现毫无鸭梨28行代码搞定,但是数组不能动态分配内存,这会导致严重的内存浪费,于是想到单向链表(fishing1.cpp)。使用单向链表能动态分配内存并且便于随机访问,但是新的问题出现了——代码过于冗杂足足用了59行代码,并且程序可复用性较差。然后就是容器vector(fishing2.cpp),如果把做这原创 2011-11-19 21:36:05 · 954 阅读 · 0 评论 -
猪猪几何?
Andy和Mary养了很多猪。他们想要给猪安家。但是Andy没有足够的猪圈,很多猪只能够在一个猪圈安家。举个例子,假如有16头猪,Andy建了3个猪圈,为了保证公平,剩下1头猪就没有地方安家了。Mary生气了,骂Andy没有脑子,并让他重新建立猪圈。这回Andy建造了5个猪圈,但是仍然有1头猪没有地方去,然后Andy又建造了7个猪圈,但是还有2头没有地方去。Andy都快疯了。你对这个事情感兴趣起来原创 2012-11-02 22:29:46 · 895 阅读 · 0 评论 -
汉诺塔
#include#include//#includevoid hanoi(int n,char x,char y,char z);void move(char x,int n,char y);int flag=0;char x,y,z;int main(){int test=1;int num_disk;x='A',y='B',z='C'原创 2012-11-02 22:32:00 · 652 阅读 · 0 评论 -
树的构造与遍历(使用递归)
// BTree.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#define Status int#define OK 0#define ERROR 1#define MAX_LEN 100#define INIT_SIZE 100#define ADD_SIZE 10//树,结构定义typedef原创 2012-11-02 22:45:15 · 572 阅读 · 0 评论 -
huffman树的小小应用
/**功能描述:*1.输入任意字符串str[]*2.检索并统计不同的字符,将相异字符存入ch[]并将字符对应的个数作为权值存入weight[]*3.由权值,构造huffman树,对各个字符进行编码,并存入HC[]*4.输出各字符的编码*5.输出总字符串的编码*/#include#include#include#define OK 0#define ERROR 1#defi原创 2012-11-02 22:46:45 · 566 阅读 · 0 评论 -
通往Mauritius的道路(典型的Dijkstra算法应用)
Lee刚刚和Meizi步入婚姻的殿堂,Meizi想坐船去Mauritius度蜜月。这可难坏了Lee,因为各国间的航线错综复杂,各个国家航线之间的航船速度也不一定相同。由于Lee的Meizi迫不及待的想去Mauritius,所以Lee希望能以最短的时间到达Mauritus。希望你能帮助Lee解决这个难题。Input第一行包含两个正整数,第一个为可以到达的国家数n(2,国家名长原创 2012-11-02 22:48:46 · 1090 阅读 · 0 评论 -
拳皇争霸
为了促进各部门员工的交流,公司举办了一场全公司范围内的" 拳皇友谊赛" ,负责组织这场比赛的是公司的超级" 拳皇" 迷W.Z. W.Z 不想用传统的淘汰赛或者循环赛的方式,而是自己制定了一个比赛规则。由于一些员工(比如同部门或者相临部门员工)平时接触的机会比较多,为了促进不同部门之间的交流,W.Z 希望员工自己组成不同组。不同组之间的每两个人都会进行一场友谊赛而同一组内的人则之间不会打任何原创 2012-11-02 22:02:09 · 1128 阅读 · 0 评论 -
百度语言翻译机
2006年百度之星程序设计大赛初赛题目6百度语言翻译机时限1s百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套他们独特的缩率语。他们在平时的交谈,会议,甚至在各中技术文档中都会大量运用。为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩率语和专有名词翻译成日常语言。输入数据:输入数据包含三部分1. 第一原创 2012-11-02 21:50:28 · 792 阅读 · 0 评论 -
蛇形矩阵
Problem蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。Input本题有多组数据,每组数据由一个正整数N组成。(N不大于100)Output对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。Sample Input原创 2012-11-02 22:22:48 · 705 阅读 · 0 评论 -
母牛牧场
Problem设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?Input本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50)Output对每组数据,输出一个整数(独占一行)表示第N年时母牛的数量#includeint main(){ int year,cow_sum[50]; i原创 2012-11-02 21:58:00 · 674 阅读 · 0 评论 -
LeetCode:Permutations(全排列算法的递归与非递归实现)
全排列算法的递归与非递归实现全排列算法是常见的算法,用于求一个序列的全排列,本文使用C语言分别用递归与非递归两种方法实现,可以接受元素各不相同的输入序列。题目来自leetcode: Given a collection of numbers, return all possible permutations. For example, [1,2,3] have the followi原创 2015-03-11 17:25:56 · 2752 阅读 · 0 评论