Redian新闻
>
发两个测试给大家玩玩把
avatar
发两个测试给大家玩玩把# PDA - 掌中宝
g*0
1
Given a list of presentations with begin and end time that all need to
use a conference room. We want to optimize the utilization of the room
by allowing maximum hours of the conference room being used.
Note: Not optimizing for the maximum number of presentations (This
would be the greedy algorithm from the CLRS book).
Any idea?
avatar
l*n
2
对应于geekbench里面得memory和stream测试. stream测试比较确认, geekbench的网站
给出了相应的reference, 去相应网站下载了源码重新编译就是了. memory测试我估计
它是主要来源于这个测试程序: cachebench http://icl.cs.utk.edu/projects/llcbench/cachebench.html. Read/Write Sequential对应于cachebench的Read/Write Benchmark(hand tuned version), Stdlib Write/Copy对应于memset(), memcpy(), 然后自己增加了一个Stdlib Allocate.
STREAM: http://www.mediafire.com/download.php?j8miua5isyeigqh
MEMORY: http://www.mediafire.com/download.php?qkrgk3yej7hirfm
运行得话, ssh到android设备或者开个终端模拟器. STREAM测试直接就敲./stream就可
以了, MEMORY测试的话: ./cachebench -rwspt
avatar
d*d
3
I guess dp will do
avatar
g*e
4
背包问题

【在 g******0 的大作中提到】
: Given a list of presentations with begin and end time that all need to
: use a conference room. We want to optimize the utilization of the room
: by allowing maximum hours of the conference room being used.
: Note: Not optimizing for the maximum number of presentations (This
: would be the greedy algorithm from the CLRS book).
: Any idea?

avatar
c*n
5
could somebody prove that we can generate an optimal solution if occupied
hours (end time - begin time) are used for greedy choices?
avatar
s*y
6
[0,2] [3,12][14,15] [3,7][8,15]
greedy will be [0,2] [3,12][14,15]
but best should be [0,2][3,7][8,15]

【在 c*******n 的大作中提到】
: could somebody prove that we can generate an optimal solution if occupied
: hours (end time - begin time) are used for greedy choices?

avatar
c*n
7
Nice work!
then we should try DP

【在 s*****y 的大作中提到】
: [0,2] [3,12][14,15] [3,7][8,15]
: greedy will be [0,2] [3,12][14,15]
: but best should be [0,2][3,7][8,15]

avatar
g*y
8
写了一个ugly的实现,想法是把presentation按结束时间排序。最后结束时间T,M[0..
T]记录时间0..t的最大利用值。
M[A(n,1)] = max{A(n,1)-A(n,0)+max(M[0..A(n,0)]), max(M[0..A(n,1)])}
程序应该可以简化,要输出选择的presentation, 数据结构也要改。
public void maxUse(List list) {
Collections.sort(list, new Comparator() {
public int compare(int[] a, int[] b) {
return a[1] - b[1];
}
});

int N = list.size();
int T = list.get(N-1)[1];
int[] max = new int[T+1];

for (int i=0; iint[] a = list.get(i);
int v1 = getMax(max, a[1]);
int v2 = a[1] - a[0] + getMax(max, a[0]-1);
max[a[1]] = Math.max(v1, v2);
}

System.out.println(max[T]);
}

private int getMax(int[] max, int t) {
for (int i=t; i>=0; i--) {
if (max[i] > 0) return max[i];
}
return 0;
}
avatar
g*0
9
Yes, true dat!

【在 d*******d 的大作中提到】
: I guess dp will do
avatar
m*q
10
程序有点没看懂,看描述复杂度是O(n^2)?
这题应该可以O(nlgn)的

..

【在 g**********y 的大作中提到】
: 写了一个ugly的实现,想法是把presentation按结束时间排序。最后结束时间T,M[0..
: T]记录时间0..t的最大利用值。
: M[A(n,1)] = max{A(n,1)-A(n,0)+max(M[0..A(n,0)]), max(M[0..A(n,1)])}
: 程序应该可以简化,要输出选择的presentation, 数据结构也要改。
: public void maxUse(List list) {
: Collections.sort(list, new Comparator() {
: public int compare(int[] a, int[] b) {
: return a[1] - b[1];
: }
: });

avatar
i*d
11

你这个greedy的取值条件不对。
应该是首先按照结束时间排序,然后greedy的每次取最早结束的presentation.
并且remove有overlap的presentation
按照这个例子应该首先排序成
[0,2],[3,7],[3,12],[8,15],[14,15]
首先取 [0,2]
然后取 [3,7] 并remove有overlap的[3,12]
最后取 [8,15], 并remove掉[14,15]
结果就是[0,2],[3,7],[8,15]

【在 s*****y 的大作中提到】
: [0,2] [3,12][14,15] [3,7][8,15]
: greedy will be [0,2] [3,12][14,15]
: but best should be [0,2][3,7][8,15]

avatar
H*s
12
这题就是 weighted interval scheduling 吧。 每个conference 的 weight就是它的
长度, 然后要求就总weight最大。 DP 就可解一般O(n^2), 使用特殊数据结构可以O(
nlgn)
avatar
d*l
13
对,都不用什么特殊数据结构。按结束时间排序,d[i]表示前i个可以取到的最大时间
。对每个i,找到第一个满足start[i]>=end[j]的j,d[i]=max(d[i-1],d[j]+length[i]). 查找的过程用二分可以做到logn.

【在 H****s 的大作中提到】
: 这题就是 weighted interval scheduling 吧。 每个conference 的 weight就是它的
: 长度, 然后要求就总weight最大。 DP 就可解一般O(n^2), 使用特殊数据结构可以O(
: nlgn)

avatar
P*l
14
dp吧
给个greedy的反例:
[0,2][3,4][1,100]
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。