主题:第51次编程比赛 第一轮评测结果
renew [专家分:200] 发布于 2007-03-30 07:14:00
这是第一轮的测试结果。主要是筛选出较优的程序进行第二轮评测。
[color=FF0000]特别声明,最后排名.xls里的排名只是第一轮的排名,并不是最终的排名。[/color]
最终排名预计会在明天出来。
因为文件较大请从[url=http://upload.programfan.com/upfile/200703300707658.rar]这里[/url]下载。
有何异议请跟贴说明。
回复列表 (共47个回复)
21 楼
雨中飞燕 [专家分:18980] 发布于 2007-03-30 18:34:00
[quote]hehe 这个偶是知道滴~~~~~只是很费时~~不是超时啊~~~~~
根本就没接受~~只能是身高的数组类型不对吧
[/quote]
超过10秒就是超时-,-
不过详细原因偶就不清楚了-,-
22 楼
renew [专家分:200] 发布于 2007-03-30 18:36:00
[quote]哎,最后没有输出\n,除了最后一个,其余结果全部算错。
但是题目没有说要"%d\n"或者cout<<n<<endl啊[/quote]
并不是没有换行的问题。实际上是您程序上的缺陷,如果用VC编译再手工去评测“表面上”是不会有问题的。G++也一样。
while(++i <= n)
{
if(stack.empty() || h[i] < stack.back().height) ------请注意这边
stack.push_back(_elem(i, h[i]));
else
{
while(!stack.empty() && (i==n || h[i]>=stack.back().height))
{
total += (i-stack.back().index-1);
stack.pop_back();
}
if(i < n) stack.push_back(_elem(i, h[i]));
}
}
在那里有个小问题,呵呵,自己找找,我就不讲出来了。加了一条语句后,您的程序就可以得满分了!
因为程序效率的因素(其实是用了STL,动态开辟内存等),虽然程序可以得满分,但很遗憾,您程序还是不能进入第二轮评测。
这是新的评测结果。(没法发图片,请将就着看吧-,-)
测试点 使用内存 运行时间 结果 得分
1 504 KB 296 MS Accept 10
2 504 KB 312 MS Accept 10
3 500 KB 265 MS Accept 10
4 940 KB 203 MS Accept 10
5 1328 KB 218 MS Accept 10
6 516 KB 281 MS Accept 10
7 640 KB 156 MS Accept 10
8 940 KB 328 MS Accept 10
9 940 KB 296 MS Accept 10
10 504 KB 234 MS Accept 10
23 楼
renew [专家分:200] 发布于 2007-03-30 18:39:00
[quote][quote][quote][quote]
这个没有关系的,数据类型不符合的在测试的时候已经帮你改过了,int会改成long,不符合规范输入输出的会看情况替你修改的[/quote]
貌似偶的没有改~~~~
[em18][em18][/quote]
你的代码遇到逆序数据就超时很严重[/quote]
hehe 这个偶是知道滴~~~~~只是很费时~~不是超时啊~~~~~
根本就没接受~~只能是身高的数组类型不对吧
[/quote]
不好意思,忘了说明了,每个数据点,程序运行的时间最长只能为10秒,否则就当超时处理。
53个程序,10个数据点。我这边能承受的最大限度就是1个数据点10秒了。如果超过10秒再得出结果也就没太大意义了。
24 楼
7zeal [专家分:370] 发布于 2007-03-30 19:37:00
呵呵谢谢啊~~
偶的程序有5个Wrong Answer~~
5 个ACCEPT
也就是说这个评测系统在超时很多的情况下,会按Wrong Answer处理是吗??[em18][em18]
25 楼
renew [专家分:200] 发布于 2007-03-30 19:55:00
不会当Wrong Answer处理,应该是你结果不对。
26 楼
crossbow [专家分:150] 发布于 2007-03-30 20:34:00
[quote][quote]楼主辛苦了!请问你用的是哪个测评系统?
我原来下载一个cena,竟然不会用,有哪位朋友用过cena的,请告知一下方法,谢谢![/quote]
呵呵,我用的不是cena(其实这个也蛮好用的,以前有几个省的NOIP好像就是用它测的)。
我是借用学长写的内核judge(评测时间和内存等),再自己写了个小网站,用这个来评测的。[/quote]
renew应该是fzu的吧
27 楼
__Sa [专家分:0] 发布于 2007-03-30 20:39:00
楼主非常负责任
顶!!!!!
28 楼
fjqqj [专家分:90] 发布于 2007-03-30 21:45:00
用cena测,我的程序是无输出,其它有的是什么超时,崩溃的,没有看到一个有分数的~cena到底怎么测的哦?
29 楼
天边蓝 [专家分:1810] 发布于 2007-03-30 21:59:00
楼主辛苦了!
30 楼
jia4082 [专家分:0] 发布于 2007-03-30 22:20:00
[quote][quote]综合大家的成果改进了一下,应该是最快得了^^
long CountShort(long n, long *height)
{
long cnt[50001]={0}, i, j;
long sum = 0;
//cnt[i]储存i与右边不矮于他的第一个j的序号差(j-i)
for(cnt[n-1] = 1, i = n-2; i >= 0; i--)
{
for(j = i+1; j < n && height[i] > height[j]; j += cnt[j]);
cnt[i] = j-i;
sum += cnt[i]-1;
}
return sum;
}[/quote]
long cnt[50001]={0};光是这步初始化就慢了-,-[/quote]
这个慢不慢到是无所谓,关键是long cnt[50001]占用了50001 * sizeof(long),
至少200k的栈空间,受得了么
我来回复