摘要:
题目大意:给定n个居民的年龄(1-100),按从小到大输出输入:第一行一个整数n表示人数(0#include #include using namespace std;int main (){ int hashs[110]; int n,x; while(scanf("%d",&n),n) { memset(hashs,0,sizeof(hashs)); for(int i=0;i<n;++i) { scanf("%d",&x); hashs[x]++; } ... 阅读全文
摘要:
题目大意:你有n个部下,每个部下要完成一个任务,你需要花费bi去交代任务给第i个部下,随后他需要ji分钟去完成,现在你需要安排这些任务分配顺序,使得最终的完成任务时间(所有任务都完成)最小。输入:第一行一个整数n表示任务数。接下来n行为bi,ji代表交代任务的时间以及执行任务的时间。输出:每组数据输出最早完成所有任务的时间。分析:这道题目属于贪心,我们来考虑这样的情况。交换任务x、y(将y提到x前)分为以下两种情况:1、y比x早结束那么将任务y提到x前,完成这两个任务需要的时间比交换前的要晚。2、y比x晚结束若要求最后完成的时间比交换前则急需要B[x]+J[x]+B[y]>=B[y]+J 阅读全文
摘要:
题目大意:有头龙有n个头,你雇佣骑士去砍掉这些头,一共有m个骑士,一个骑士对应有一个能力值x,同时x也代表你雇佣他的费用,只有当能力值大于或等于龙头的大小时可以砍掉这个头,你现在需要计算的是杀死这头龙(砍掉所有龙头)最小的雇佣费用。输入:第一行两个整数,n,m当n,m都为零时结束接下来n行为头的大小、在接下来m行是m个骑士的能力值x。输出:每组数据输出最小的雇佣费用。分析:这道题目属于贪心,我们应该尽量选择能力值与头大小相近(大于等于)的骑士去砍这个头,这样所需要的费用是最少的,所以可以按骑士的能力值排序(小到大),再将龙头大小排序,然后循环判断是否i骑士可以杀死j龙头,如果可以,则雇佣该骑士 阅读全文