X-man

导航

2013年4月7日 #

hdu 1050Moving Tables(贪心)

摘要: 思路: 把走廊分为200段,记录每段被通过的次数,如果哪段通过次数最多,那么其自然耗费最多的时间(不可能2个人同时通过这一段)!#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){ int s[201]; int T,n; int a,b,t; scanf("%d",&T); while(T--) { memset(s,0,sizeof(s)); scanf("%d",&n); whil 阅读全文

posted @ 2013-04-07 21:57 雨钝风轻 阅读(165) 评论(0) 推荐(0) 编辑

各种查找算法效率比较

摘要: 一、需求分析1.问题描述:给定一个已经排好序的N个整数的序列(数据从1到N),在该序列中查找指定的整数,并观察不同算法的运行时间。考查3类查找算法:折半查找,平衡二叉排序树的查找,B-树的查找。2.基本要求:(1)分析最坏情况下,三种搜索算法的复杂度;(2)测量并比较三种算法在N=100,500,1... 阅读全文

posted @ 2013-04-07 20:16 雨钝风轻 阅读(2711) 评论(0) 推荐(0) 编辑

实习六 农夫过河问题

摘要: 一、需求分析 1.问题描述: 一个农夫带着一只狼、一只羊和一棵白菜,身处河的南岸。他要把这些东西全部运到北岸。他面前只有一条小船,船只能容下他和一件物品,另外只有农夫才能撑船。如果农夫在场,则狼不能吃羊,羊不能吃白菜,否则狼会吃羊,羊会吃白菜,所以农夫不能留下羊和白菜自己离开,也不能留下狼和羊自己离 阅读全文

posted @ 2013-04-07 20:15 雨钝风轻 阅读(2376) 评论(0) 推荐(0) 编辑

实习五 航空订票系统

摘要: 一、需求分析 1.问题描述: 试设计一个航空订票系统,基本要求如下: 每条航班所涉及的信息有:航班号,航班机型,起飞机场,降落机场,日期(星期几),起飞时间,降落时间,飞行时长,各等级的价格、乘员定额、余票量,订定票的客户名单(包括姓名,订票量,舱位等级(头等舱、公务舱、经济舱))以及等候替补的客户 阅读全文

posted @ 2013-04-07 20:14 雨钝风轻 阅读(1172) 评论(1) 推荐(0) 编辑

实习四 图及其应用 (题目: 图遍历的演示 )

摘要: 一、需求分析 1.问题描述: 很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示连通的无向图上行遍全部结点的操作。 2.基本要求: 以邻接多重表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列 和相应生成树的边集。 3.测 阅读全文

posted @ 2013-04-07 20:06 雨钝风轻 阅读(2515) 评论(0) 推荐(0) 编辑

实习三 树、二叉树及其应用 (题目:唯一地确定一棵二叉树 )

摘要: 一、需求分析 1.问题描述:如果给出了遍历二叉树的前序序列和中序序列,则可以构造出唯一的一棵二叉树。试编写实现上述功能的程序。 2.基本要求: 已知一棵二叉树的前序和中序序列,试设计完成下列任务的一个 算法: (1)构造一棵二叉树; (2)证明构造正确(即分别以前序和中序遍历该树,将得到的结 果与给 阅读全文

posted @ 2013-04-07 20:03 雨钝风轻 阅读(768) 评论(0) 推荐(0) 编辑

实习二 栈、队列和递归算法设计 (题目:停车场管理 )

摘要: 一、需求分析 1.每一组输入数据包括:汽车“到达”或“离去”信息、汽车牌照号码以 及到达或离去的时刻。 2.输出信息:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用。 3.测试数据 设n=2,输入数据为:(‘A’,1,5),(‘A’, 阅读全文

posted @ 2013-04-07 20:01 雨钝风轻 阅读(1099) 评论(0) 推荐(0) 编辑

实习一 线性表及其应用 (题目:一元稀疏多项式的加法运算 )

摘要: 一、需求分析 1.输入并建立两个多项式; 2.多项式a与b相加,建立和多项式c; 3.输出多项式a,b,c。输出格式:比如多项式a为:A(x)=c1xe1+ c2xe2+…+ cmxem,其中,ci和ei分别为第i项的系数和指数,且各项按 指数的升幂排列,即0≤e1<e2<…<em。多项式b,c类似 阅读全文

posted @ 2013-04-07 19:59 雨钝风轻 阅读(2254) 评论(0) 推荐(0) 编辑

hdu 2188 选拔志愿者(博弈)

摘要: 解题实录: 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。 因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个, 那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。 总之,要保持给对手留下(m+1)的倍数,就能最后获胜。#include<stdio.h>int ma... 阅读全文

posted @ 2013-04-07 19:53 雨钝风轻 阅读(160) 评论(0) 推荐(0) 编辑

STL系列之一 deque双向队列

摘要: STL系列之一 deque双向队列分类:STL 他山之石2011-11-08 09:5214855人阅读评论(12)收藏举报vectoriteratordeque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数:deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数据。因此deque在随机访问和遍历数据会比vector慢。具体的deque实现可以参考 阅读全文

posted @ 2013-04-07 19:34 雨钝风轻 阅读(190) 评论(0) 推荐(0) 编辑

hdu 3951 Coin Game (博弈)

摘要: 题意:给你n个硬币排成一圈,编号1-n,只能翻转连续的1~k个的硬币。翻最后一枚硬币者赢。思路:博弈 1) 若k=1,则一次只能去翻一枚,奇数先手赢,偶数后手赢。 2)若k>1: a: 先手一次翻完,先手赢; b: 先手不能翻完,第一次必定断环。只要后手一次翻完,或将其分为相等数量的两段, 之后先手怎么操作后手就怎么操作,后手必赢。#include<stdio.h>int main(){ int T; int t=0; int n,k; scanf("%d",&T); while(T--) { t++; ... 阅读全文

posted @ 2013-04-07 19:23 雨钝风轻 阅读(165) 评论(0) 推荐(0) 编辑

hdu 1022 Train Problem I (栈的操作,还水了半天)

摘要: 题意: 输入的两列字符串,第一列表示进入的顺序,第二列表示出去的顺序,问是否符合后进先出。#include<stdio.h>#include<iostream>#include<string.h>#include<stack>using namespace std;int main(){ int n,i,j,k; char a[5000],b[5000]; while(scanf("%d",&n)!=EOF) { stack<char>s; scanf("%s",a); scanf(&q 阅读全文

posted @ 2013-04-07 18:45 雨钝风轻 阅读(189) 评论(0) 推荐(0) 编辑

POJ 1702 Eva's Balance (数论,平衡三进制)

摘要: 题意: 给你一个天平,和一些砝码,只是这些砝码有点特殊,它的重量是1,3,9,27,……3^n。让你把一些砝码和一个给定的重量的物体放在左边,另一些砝码放在右边,使天平平衡(每个砝码最多用一个),你会怎么做呢?这是一个很有趣的事,不是吗?这就是用平衡三进制解决最好的一个例子: 比如我们假设这个物体的重量是20,那么我们可以这样做。首先我们把20(十进制)转化为三进制(202)(其实是砝码的三种状态,放左边,放右边,不放),然后我们按照一定的规则,把这些数转化成0,1,-1表示。规则就是: 数的每一位只有三种状态,且,变换后是原来的值,只是三进制的表示方式改变了 傻瓜式理解就是在... 阅读全文

posted @ 2013-04-07 11:05 雨钝风轻 阅读(776) 评论(0) 推荐(0) 编辑