随笔分类 -  贪心算法

只考虑眼前的最优解,很符合人的思考方式。(由于不是从问题的整体考虑,所以不够优秀)
摘要:描述进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果。输入第一行输入s,表示测试数据的组数; 每组数据的第一行包括两个整数w,n,80#include int person_weight[310];int main(){ int k, boat_max_weight, num_person... 阅读全文
posted @ 2013-09-22 19:23 心中的阿哲 阅读(297) 评论(0) 推荐(1)
摘要:描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。输入第一行是一个整型数m(m 2 #include 3 #define M 10001 4 5 struct time 6 { 7 int a; 8 int b; 9 }actv[M];10 11 int cmp(const void *a, const void *b)12 {13 struct time *m = (struc... 阅读全文
posted @ 2013-08-20 21:09 心中的阿哲 阅读(296) 评论(0) 推荐(0)
摘要:时间限制:1000 ms | 内存限制:65535 KB难度:5描述在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,N人所需要的时间已知;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这N人尽快过桥。输入第一行是一个整数T(1#include #define M 1001int time[M];int cmp(const void *a, const void *b){ return... 阅读全文
posted @ 2013-08-15 21:58 心中的阿哲 阅读(280) 评论(0) 推荐(0)