- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试解决问题 SPOJ 上的比赛日.我尝试了以下方法:
我正在寻找最好的初始玩家,所以最初排名第一的玩家是最好的。在此之后我遍历所有玩家并为他们每个人尝试查看当前最好的玩家中是否有比这更好的,如果是这样那么这不是很好丢弃它(因为存在一些比这更好的玩家),否则我将其添加到最佳播放器列表中。最后我会输出最佳玩家的数量。
for(i=0; i<num; i++)
{
for(j=0; j<ctr; j++)
{
// i is already in best
if(i == best_n[j])
break;
if((elmts[i].a < elmts[best_n[j]].a) ||
(elmts[i].b < elmts[best_n[j]].b) ||
(elmts[i].c < elmts[best_n[j]].c))
{
continue;
}
else
{
break;
}
}
if(j>=ctr)
{
best_n[ctr] = i;
ctr ++;
}
}
num 是玩家数量,ctr 是目前最佳数组中的玩家数量。但我得到一个错误的答案。我试图再次运行一个循环来验证是否有任何球员比其他球员差,但这也会导致错误的答案。此外,我认为我的方法效率不高,在最坏的情况下为 n^2。你能帮我找出我的错误吗?我该如何改进它以使其更有效率。
最佳答案
看到的一个问题是您的算法需要删除 best_n
中当前优于的所有元素。
考虑:
1 5 5 // inserted into best at start
5 1 1 // inserted into best at start
3 4 4 // not worse than any of the above, insert into best
4 3 3 // not worse than any of the above, insert into best
2 2 2 // better than 3 4 4 and 4 3 3
(伪)代码看起来像这样:(如果当前在每场比赛中都更好,我们必须用当前替换另一个)
// define '<' as 'better than'
if (not best[j] < elmts[i])
if (elmts[i] < best[j])
remove best[j]
ctr--
continue
else break
高效解决方案:
关于c - SPOJ : The day of the competitors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735579/
我正在尝试处理在 Excel 中看起来有点复杂的东西,但它可能并不难。 查看上面的图片,我希望在 W 列中运行一个公式,该公式将执行以下操作: IF U2(仅使用单元格,但整个列都需要为真)> 0 A
我正在尝试解决问题 SPOJ 上的比赛日.我尝试了以下方法: 我正在寻找最好的初始玩家,所以最初排名第一的玩家是最好的。在此之后我遍历所有玩家并为他们每个人尝试查看当前最好的玩家中是否有比这更好的,如
这是问题的上下文。我的策略是将所有表连接为一个大的完整表,并按数据分组以满足需求。。但是,我从我的代码中得到以下错误:
我是一名优秀的程序员,十分优秀!