摘要: 题目链接——〉http://acm.nefu.edu.cn/JudgeOnline/problem/137.jsp#include<iostream>#include<stdlib.h>usingnamespacestd;structUrl{intno,rel;stringurl;}page[10];intcmp(constvoid*a,constvoid*b){ //rel从大到小,no从小到大structUrl*c=(Url*)a;structUrl*d=(Url*)b;if(c->rel!=d->rel)returnd->rel-c->re 阅读全文
posted @ 2011-08-26 16:26 追逐. 阅读(1106) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定N个挤奶工取奶的起始时间和结束时间,求其中至少一个在取奶的最长时间和都没在取奶的最长时间。起止时间为5:00后以秒为单位的时间点,一个挤奶工对应一头奶牛。 又一道让BUG给挂掉的题,这次还更无语。input4100 200201 301302 402403 503output100 1 我运行的确实是"100 1"啊,可那测评系统非说我运行的是"100 0",无奈... > Run 2: Execution error: Your program did not produce an answer that was judged as 阅读全文
posted @ 2011-08-26 15:57 追逐. 阅读(269) 评论(0) 推荐(0) 编辑
摘要: http://duanple.blog.163.com/blog/static/709717672009049528185/历史上,Knuth在其<<Sorting and Searching>>一书的第6.2.1节指出:尽管第一个二分搜索算法于1946年就出现,然而第一个完全正确的二分搜索算法直到1962年才出现。而不经仔细斟酌而写出的一个二分查找经常遭遇off by one或者无限循环的错误。下面将讨论二分查找的理论基础,实现应用,及如何采用何种技术保证写出一个正确的二分程序,让我们免于思考麻烦的边界及结束判断问题。在c++的stl中有如下函数 lower_boun 阅读全文
posted @ 2011-08-25 21:10 追逐. 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 快速排序qsort真的很强大一、对int类型数组排序 int num[100]; int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp);二、对char类型数组排序(同int类型) char word[100]; int cmp( const void *a , const void *b ) { return *(char *)a - *(int *)b; } qsort(word,100,sizeof(... 阅读全文
posted @ 2011-08-25 19:51 追逐. 阅读(296) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2293 啥也不说了,一个简单的模拟让我弄成这样。 注意两个地方: 1. 最后不能用时间递增来模拟过程,要先求出每人hp<=0的时间,通过对比时间来决定胜负,否则会超时。 2. 过程中的取模要放到循环中,每次的相乘都取模,否则会乘法溢出。代码:#include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;intmain(){intn;cin>>n;inthp1,hp2,st1,st2 阅读全文
posted @ 2011-08-25 10:28 追逐. 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一个圆台的上底半径,下底半径和高,给出一定体积的水,求这些水在圆台内的体积。 简单的二分法逼近求高,过程中因为忘记了怎么求小圆台的上底半径而超时了几次。TLE代码:#include<iostream>#include<cstdio>#include<math.h>usingnamespacestd;doubleh=0,h1,r1,r2,r3,r;voidf1(){h1/=2;h+=h1;r3=r;r=(r+r2)/2;}voidf2(){h1/=2;h-=h1;r=(r+r3)/2;}intmain(){doublev1,v2;intm;doub 阅读全文
posted @ 2011-08-25 09:42 追逐. 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 数组、链表实现队列、栈-->http://acm.sdut.edu.cn/BBS/read.php?tid=3461粘一个看得懂,感觉比较实用的(其实别的都看不懂...)1#include<stdio.h>2#include<string.h>3intmain()4{5inta[1000],i,top,end1,b[1000],end2;6intm,n;7charstr[8];8top=end1=end2=0;9scanf("%d%d",&n,&m);10for(i=0;i<n;i++)11scanf("%d&q 阅读全文
posted @ 2011-08-20 20:27 追逐. 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一个由箭头组成的赛道,箭头起始点有标号,运动员从0点出发,只能沿箭头方向跑,到下一点后,可选择任意箭头继续跑。路线有以下特点: 1,每一点都能从出发点到达 2,每一点都可到达终点 3,终点无向外的箭头运动员要到达终点,不要求经过路线上所有点。但路线上有些点为必经点。若比赛分两天进行,要把赛道分成完全分离的两部分,这两部分只有一个分裂点有重合。 一. 找到所有必经点 二. 找到所有分裂点输入: 前n行,每行输入的数字为i点出发的箭头可到达的点,以-2结束 最后一行为-1,表示输入结束输出: 第一行输出必经点个数和所有的必经点 第二行输出分裂点个数和所有的分裂点先从路线中删除i点,用d 阅读全文
posted @ 2011-08-20 15:59 追逐. 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 题意: 有N座环形分布的城市,相邻城市编号相邻,现要建一座酒厂,每个城市对酒的需求不同,每桶酒每千米运费为1元。给定n各城市,所需酒的桶数以及城市间的距离,求酒厂建在哪个城市可使得运费最小。输入: 第一行为n,代表城市个数。以下n行分别有两个整数,代表第i个城市每日需酒量和与下一座城市的距离。输出: 输出最小运费。 可以使用枚举法,枚举酒厂在各个城市的情况,计算出相应运费得出最小值。也可简化计算,得出建在某一个城市的运费后可以依次推出其他可能的运费。将环形分布的城市根据距离当前酒厂的位置划分为两个区域,ld代表逆时针区域需求量,rd代表顺时针区域需求量,当酒厂从i移动到i+1后,逆时针区域城市 阅读全文
posted @ 2011-08-20 11:11 追逐. 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 题意: 长为L的月台上有M个人,每人与月台左端距离为Pi,有一列N个门的火车,每个门与最左端的距离为Di。已知每个人会选择离自己最近的车门上车,求火车停靠什么位置能使得所有人的移动距离和最大。输入: 第一行位L,M,N,第二行为Pi,第三行为Di。输出: 火车停靠的位置和所有人移动的最长距离和。 要使乘客移动距离最大,则应尽量使更多的乘客正对两个车门中央。初始时,最少可保证一个乘客正对车门中央,然后枚举所有满足此条件火车停靠的位置,计算最大移动距离。当火车停靠最左或最右端时,无法保证上述条件,所以要单独计算,最后与answer比较大小。#include<iostream>#incl 阅读全文
posted @ 2011-08-20 10:33 追逐. 阅读(922) 评论(0) 推荐(0) 编辑