随笔分类 - 贪心
摘要:题意:有n个地点,知道了每个地点的坐标,现在要选择一些地点建加油站,并且总花费最少(其中1号位置必须建立加油站)。在 i 点建立加油站需要花费为2^i。 建立加油站要求能使得汽车从1点开始走遍全图所有的点并回到1点,途中汽车加油次数不限,每个加油站的使用次数不限,汽车每次加满油之后最多能行驶 的距离为D。分析:要尽量不在号比较大的点建加油站,如果在n号点建立加油站,则总费用会大于在除n 以外的所有点都建加油站的总费用。可以先尝试把除了n点以外的所有 点建立加油站,观察是否满足要求。若满足则说明我们必然不会在n点建立加油站,若不满足我们就一定要在n点建加油站。若需要建,我们就建,然后就不 用再考
阅读全文
摘要:题意: 一个人有一把剑,剑有一个耐久度m,现在有n个敌人,每个敌人都对应一个ai值和bi值,ai表示 杀掉这个敌人需要消耗ai的的武器耐久度,同时可以获得他的剑并且可以用他的剑杀死bi个敌人, 问最多可以杀掉多少个敌人。分析: 有两种情况: ①只杀 bi为 0 的; ②杀了某个bi不为 0 的敌人,那么所有bi不为 0 的最后都会被杀掉, 这种情况只要枚举多少个bi不为0 的敌人是花自己的耐久度去杀的,找一个最优解 要让用耐久度杀的敌人消耗的耐久度尽可能小,需要实现按照ai排序,找ai最小的每次。#include<cstdio>#include<cstring>#inc
阅读全文
摘要:题意:给出 n 个木板的重量值和长度 然后每个木板的PDV = 压在他上面的木板的重量值之和-该木板的长度值求所有木板中PDV值最大的最小给出一个 n 表示木板的数量接下来 n 行表示每块木板的重量值和长度值求PDV最大的最小分析:①如果排序为 a b 则a的PDV = sum-wb b的PDV = sum+wa-sb②如果排序为 b a 则b的PDV = sum-sb a的PDV = sum+wb-sa要想第一种方法要想最大值的PDV < 第二种方法最大值则 wa+sa < wb+sb所以排序然后找这种最优方法中的最大值#include<stdio.h>#includ
阅读全文
摘要:题意: 知道了一些课程的开始和结束时间,要从中选择尽量多的课程,而且每五分钟只能选一次。分析: 因为每五分钟最多选一次,所以只要枚举总的开始时间,以后的时间就可以确定,总的开始时间最多为 4 种情况,找到其中的最大值即可。#include<stdio.h>#include<string.h>#include<stdlib.h>#define clr(x)memset(x,0,sizeof(x))struct node{ int st,en;}q[555];int v[555];int cmp(const void*p1,const void*p2){ nod
阅读全文
摘要:题意: 一个商店里有许多颜料盒,但是每个颜料盒里面没有 grey 这种颜色,而这种颜色可以由任意其他三种颜色配成,每个颜料盒里一开始有 50ml 的各种非 grey 颜色,告诉了 每种颜色和grey颜色的需求量,问最少需要多少个颜料盒才能够用。分析: 贪心。 可以对非 grey的颜色排序,每次找出量最少的三个颜色,在其中每个都 +1 ,然后就可以让 grey 颜色 -1, 这样到 grey 颜色配完之后,找出需求最多的颜色所需要的颜料盒即可。#include<cstdio>#include<cstring>#include<algorithm>using n
阅读全文
摘要:题意: 有n 个木头,知道了每个木头的长和宽,现在要用机器加工这些木头,加工的时候,如果加工过一个木头,再加工另一个木头的时候,如果这个木头的长和宽都大于或等于这个木头就不需要加热的时间,否则需要 1 分钟的加热时间,问加工完这些木头最少需要多少加热时间。分析: 贪心。 加工完一个木头后,尽量找长和宽都大于等于它的并且尽可能和它大小差不多的木头加工。 可以先对长排序,然后对宽排序。#include<cstdio>#include<algorithm>using namespace std;struct node{ int len,wi; bool flag;}q[500
阅读全文
摘要:题意: 有 n 个池塘,只能从第一个池塘开始走,可以在每个池塘中钓鱼,而且知道了每个池塘每五分钟钓鱼的数量都会下降一定额数值,且从池塘到下一个池塘之间都有一定的距离,知道了每个池塘走到下一个池塘的时间和每个池塘一开始能够钓鱼的数量,求在规定的时间内所能钓的最多的鱼的数量。分析: 枚举以每个池塘为终点的情况,找到最大值。 有个注意的地方就是,没枚举一个终点,先把这段路的每个间隔所花时间去掉,这样就可以每次贪心去找单位时间可以钓最多的鱼了,而且可以保证贪心到最后可以找到最优解。#include<cstdio>#include<cstring>#define clr(x)me
阅读全文
摘要:题意: 给 n 给任务,每个任务对应相应的截至时间和价值,总时间为 m ,每个任务消耗的时间为 1,问如何分配工作顺序可以得到最大价值。分析: 对任务按截至时间从大到小排序,从时间 t 开始,找到在符合时间 t 的最大价值的任务,然后 t--.View Code #include<stdio.h>#include<string.h>#include<stdlib.h>#include<queue>using namespace std;struct node{ int ti,va; const bool operator <(const s
阅读全文
摘要:题意: 给你 n 个绳子,从里面选出任意根绳子,求最大承受力, 当承受力大的和小的放在一起时,每个绳子的承受力和小的一样,分析: 先对绳子排序,然后求出以每个绳子为最小承受力的绳子的最大值。View Code #include<stdio.h>#include<stdlib.h>int cmp(const void*p1,const void*p2){ return *(int*)p1-*(int*)p2;}int a[10005];int main(){ int t,n,i; scanf("%d",&t); while(t--) { sca
阅读全文
摘要:Problem DescriptionThe annual Games in frogs' kingdom started again. The most famous game is the Ironfrog Triathlon. One test in the Ironfrog Triathlon is jumping. This project requires the frog athletes to jump over the river. The width of the river is L (1<= L <= 1000000000). There are n
阅读全文
摘要:Problem DescriptionDilworth is the world’s most prominent collector of Russian nested dolls: he literally has thousands of them! You know, the wooden hollow dolls of different sizes of which the smallest doll is contained in the second smallest, and this doll is in turn contained in the next one and
阅读全文
摘要:DescriptionAssume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the coasting, can only cover d distance, so an island in the sea can be covered by a radius i
阅读全文
摘要:Problem Description“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)Input输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100
阅读全文
摘要:Problem DescriptionHere is a famous story in Chinese history."That was about 2300 years ago. General Tian Ji was a high official in the country Qi. He likes to play horse racing with the king and others.""Both of Tian and the king have three horses in different classes, namely, regula
阅读全文
摘要:Description前段时间,某省发生干旱,B山区的居民缺乏生活用水,现在需要从A城市修一条通往B山区的路。假设有A城市通往B山区的路由m条连续的路段组成,现在将这m条路段承包给n个工程队(n≤m≤ 300)。为了修路的便利,每个工程队只能分配到连续的若干条路段(当然也可能只分配到一条路段或未分配到路段)。假设每个工程队修路的效率一样,即每修长度为1的路段所需的时间为1。现在给出路段的数量m,工程队的数量n,以及m条路段的长度(这m条路段的长度是按照从A城市往B山区的方向依次给出,每条路段的长度均小于1000),需要你计算出修完整条路所需的最短的时间(即耗时最长的工程队所用的时间)。Inpu
阅读全文
摘要:Problem DescriptionThe famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in the following figure. The floor has 200 rooms each on the north side and south side along the corridor. Recently the Company made a plan to reform its system. The reform includes mo
阅读全文


浙公网安备 33010602011771号