摘要: 要尽情的享受学习的过程! 昨天在听报告的时候学习了贪心算法,今天终于写了一到关于贪心算法的题目,虽然是最简单的。题目是典型的部分背包问题。用了一下快速排序。从中学到了如何对结构体进行排序,还有双精度的排序。因为cmp函数的返回值只能是int型的,所以不能只有一个return a-b ; ,是要返回一个整数的。所以就要判断一下就可以了,可以用一个开关语句就可以了。#include #include #define N 1010typedef struct link{ int j ; int f ; double price ;}Food ;int cmp( const void *a, con. 阅读全文
posted @ 2014-03-18 22:06 FREE小宝 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 还要注意的是考虑相邻二个命令都在一个楼层每一次命令从0开始。。。#includeusingnamespacestd;intmain(){intN;while(cin>>N){inttime=0,from=0,to=0;if(N==0)break;for(inti=0;i>to;if(to>from)time+=(to-from)*6+5;elsetime+=(from-to)*4+5;from=to;}cout<<time<<endl;}} 阅读全文
posted @ 2014-03-18 21:44 FREE小宝 阅读(114) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std;const double UB=43200;const double hm=11.0/120,hs=719.0/120,sm=59.0/10;const double T_hm=UB/11,T_hs=UB/719,T_sm=3600.0/59;int main(){double d;double s[3],e[3],ts[3],te[3];while(scanf("%lf",&d),d!=-1){s[0]=d/hm;s[1]=d/hs;s[2]=d/sm;e[0]=(360-d)/hm;e[ 阅读全文
posted @ 2014-03-18 18:52 FREE小宝 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 一 问题描述假设平面内有N个点,每个点以坐标(x, y)给出,N的数据量很大,如何求出其中最近的两个点。二 算法一种方法是暴力,通过枚举任意两个点,找到最小的,一共要比较C(n, 2)次,故实践复杂度为O(n2)。另外一种解法用到了分治的思想,步骤为:把所有点按x坐标的大小排序,从中间一份为二。最近点对有三种情况,都在左边,都在右边,左右都有递归求出都在左边和都在右边的情况,选一个最小值curmin。然后求出两边各有一个的情况得结果为tmp,求法请参考给个链接http://www.cnblogs.com/king1302217/archive/2010/07/08/1773413.html取t 阅读全文
posted @ 2014-03-18 18:46 FREE小宝 阅读(328) 评论(0) 推荐(0) 编辑