poj 1017 装箱子问题 贪心算法】的更多相关文章

题意:有1*1到6*6的的东西,需要用6*6的箱子将它们装起来.问:至少需要多少个6*6箱子 思路: 一个瓶子怎么装东西最多?先装石头,在装沙子,然后装水. 同样放在本题就是先装6*6然后5*5..... 想法上的一些解释:(如何装呢) 6*6物品n件,需要箱子n个 5*5物品n件,需要箱子n个,剩下 36n-25n个1*1的空余 4*4物品n件,需要箱子n个,剩下5n个2*2的空余,1*1也有也有空余 3*3物品n件,需要箱子(n+3)/4个(向上取余),如果只装1个3*3的箱子剩下5个2*2…
Description A factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products are always delivered to customers in the square parcels of the same height h as the products have and…
题意:雷达如何放置?在xoy二维平面坐标系里面,x轴上方的为岛屿,x轴下方的是雷达要放到位置,如何放使得雷达放的最少? 思路 肯定放在x轴上减少浪费是最好的选择 什么情况下,雷达无法到达呢?--以这个岛屿为圆心,d为半径,如果这个圆与x轴没有交点的话,就是无法覆盖到---即y>d 现在就可以这么想了,每个岛屿都当成圆心C,然后都取画圆,跟x轴的交点例如交点A,B.如果雷达放到AB之间那就是可以将刚才C覆盖住了.--转为区间贪心问题 区间贪心问题: 先将各个区间的左端点按照从小到大排序 然后按递增…
#include <iostream> using namespace std; /*248K 32MS*/ int main() { int s,d; while(cin>>s>>d) { int count=0; for(int i=5;i>0;i--) { if(s*i<(5-i)*d) { count=i; break; } } int total=s*count-d*(5-count); total*=2; if(count>=2) tota…
题意:有一个奶牛场,第i周的生产成本为c,需要数量为 y,每周的存储成本为s.问怎么安排使得成本最低? 思路: 成本最低是吧?求出每周的最低成本*该周需要的数量就是成本最低 每周的成本有两个:自己本周的成本或者上周的成本+存储的费用 思路2的代码实现: ; i < n; i++) { w[i] = min(w[i], w[i - ] + s); } 注意:本题涉及的数据比较大,需要用到 long long int型 解题代码: #include <iostream> #include &…
题意:奶牛挤奶问题,每只奶牛在[a,b]的时间内挤奶,要求挤奶的过程中不能不打扰,且只能自己一个人独享挤奶的机器.问最少需要多少个挤奶的机器? 思路: 对奶牛挤奶开始的时间从小到大开始排序. 将正在工作的奶牛放在"队列"中,这里采用的是"优先队列" 如果后面的一个奶牛的开始时间大于在队列中工作的结束时间,则不需要加机器,只需要将正在工作的奶牛pop出去,然后放入新的奶牛  否则要加机器 代码中对思路3的实现 pq.push(cow[]); ; i < n; i…
Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26670   Accepted: 7226 Description FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his…
POJ 1017 题意: 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6.  这些产品通常使用一个  6*6*h的长方体包裹包装然后邮寄给客户.因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量.他们很需要有一个好的程序帮他们解决这个问题从而节省费用.现在这个程序由你来设计.输入数据输入文件包括几行,每一行代表一个订单.每个订单里的一行包括六个整数,中间用空格隔开,分别为 1…
Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 59725   Accepted: 20273 Description A factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products are alway…
思想: (贪心算法 ,看到题目是中文才做的) 先对数组中的数据进行排序,从最小的数据计算 当前的顶点的可以滑行的最大值=max(周围可达的顶点的可以滑行的最大值)+1 这样计算最后产生的路径肯定是最大的 (看discuss中,有动态规划和dfs实现的代码,回头看看) #include <iostream> #include <algorithm> using namespace std; #define MAX 10005 /*488K 63MS*/ typedef struct…