上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 182 下一页
摘要: 简单模拟,题意描述不清晰,我来仔细描述一下,flashget在下载一些文件,每个文件有一个初始大小,初始速度,最大速度。当一个文件下载结束后,他的速度(占用的带宽)会平均分配给别的任务(各文件的速度增加值相同),假设我们要把速度x分配给a个文件,那么就要给每个文件分配x/a的速度,前提条件是分配后该文件的速度不超过其最大速度。若超过了则不能给他分配这么多,只让它达到其最大速度即可。这样一来我们的下载速度就会有剩余,因为受到最大速度的限制,有些文件并没有被分配到x/a这么多的速度。对于剩余的速度怎么处理呢?就是除去那几个已经到达最大速度的文件,其余文件按照刚才的方法再分配一次剩余速度。模拟即可。 阅读全文
posted @ 2012-11-01 18:04 undefined2024 阅读(250) 评论(0) 推荐(0)
摘要: 题意:给出一张地图矩阵,上面有些墙和石头,在空地上行走不需要时间,墙不可穿越,石头可以慢慢打破也可以用工具打破,用工具打破不需要时间,慢慢打破需要相应的时间。每个入口对应不同的携带工具的数量,且只能从一个入口进入,再不能去别的入口。问要拿到宝藏需要的最少时间。分析:带堆优化的最短路。建图比较复杂,图中每个节点对应矩阵中的一个格的一种工具状态,矩阵中走到每个格身上可能剩余的工具数量为0~26个,因此矩阵中每个格对应最短路图中的27个节点,每个节点有两个属性一个是地图中的位置,一个是剩余工具的数量。下面向图中加边,矩阵中a,b两格相邻,如果a是石头,那么我们由节点(a,k)向节点(b,k)引边(k 阅读全文
posted @ 2012-11-01 14:45 undefined2024 阅读(243) 评论(0) 推荐(0)
摘要: 题意:给出n(2^31),求∑gcd(i, n) 1<=i <=n。分析:首先所有与n互质的数字x都满足gcd(x,n)=1。我们先计算这种等于1的情况,恰好是n的欧拉函数phi(n)。我们可以将上述情况视为跟n最大公约数为1的情况,现在我们将其推广至最大公约数为p的情况。对于对于所有满足gcd(x,n)=p(p为常数)的x,他们与n拥有相同的gcd,那么他们同时除以p之后,就会变得和n/p互质,这种数字x有phi(n/p)个,这些x的和为p*phi(n/p)个。所以我们要计算∑gcd(i, n) 1<=i <=n,只需要根据gcd的值不同,分类进行计算即可,总结成公式 阅读全文
posted @ 2012-10-30 00:24 undefined2024 阅读(835) 评论(0) 推荐(3)
摘要: 题意:给定每个点在平面内的坐标,要求选出一些点,在这些点建立加油站,使得总花费最少(1号点必须建立加油站)。在i点建立加油站需要花费2^i。建立加油站要求能使得汽车从1点开始走遍全图所有的点并回到1点,途中汽车加油次数不限,每个加油站的使用次数不限,但是汽车油箱有上限d(加满油可以跑距离d)。分析:突破口在于在i号点建立加油站的费用为2^i,这样特殊的花费会使得我们有一个贪心的规律,就是尽量不在号比较大的点建加油站,如果在n号点建立加油站的费用会大于在除n以外的所有点都建加油站的总费用。所以我们可以先尝试把除n以外的所有点建立加油站,观察是否满足要求。若满足则说明我们必然不会在n点建立加油站, 阅读全文
posted @ 2012-10-27 00:22 undefined2024 阅读(992) 评论(0) 推荐(0)
摘要: 简单题View Code #include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define maxn 105#define inf 0x3f3f3f3fstruct Elem{ char *s; int len;}elem[maxn];int n;char st[maxn][maxn];bool cmp(const Elem &a, const Elem 阅读全文
posted @ 2012-10-23 19:41 undefined2024 阅读(205) 评论(0) 推荐(0)
上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 182 下一页