摘要: http://www.lydsy.com/JudgeOnline/problem.php?id=1029/* * 题目: * 每个任务需要ai时间完成,并且需要在时间bi或之前完成,问如何安排任务完成顺序,使得完成 * 任务的数量最多 * * 分析: * 贪心,先对期限排序,然后用最大堆维护需要完成的时间ai * 1.当now + ai <= bi时,ans + 1 ,更新now,把ai插入到堆中 * 2.当now + ai > bi时,若堆的最大元素大于ai时,将该元素(aj,bj)替换为ai,得到的序列答案 * 不会减少。因为替换之后,时间期限bi必定大于bj,所以可以完成该任 阅读全文
posted @ 2012-12-17 11:49 yejinru 阅读(197) 评论(0) 推荐(0)
摘要: 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1819分析:暴力枚举需要添加、删除以及替换的字符,然后建立trie树进行判断是否存在该字符串,然后利用trie树存的信息进行判重时间貌似有点慢。329611yejinru1819Accepted21468kb1232msC++/Edit2193 B2012-12-16 17:34:39#include <cstdio>#include <iostream>#include <cstring>using namespace std;const int k 阅读全文
posted @ 2012-12-17 09:15 yejinru 阅读(360) 评论(0) 推荐(0)
摘要: 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1821 给出n个野人的坐标,n个野人分别属于k个部落,现在问如何划分野人,使得每个部落之间的距离最小(部落之间的距离是部落中距离最近的两个野人的距离)分析: 对于所有的距离排序,然后利用并查集合并即可关键代码:(对于n==m时,特判。) for(int i=1;i<=tot;i++){ int x = edge[i].x; int y = edge[i].y; x = find_set(x); y = find_set(y); if(x!=y){ father[y] = x; n -. 阅读全文
posted @ 2012-12-17 09:11 yejinru 阅读(185) 评论(0) 推荐(0)