主题:第54次变成比赛结果
yxs0001 [专家分:9560] 发布于 2007-05-31 14:49:00
姓名 题目true通过 题目2通过 题目1用时 题目2用时
iAkiak TRUE TRUE 0 16
arfi TRUE 0 6750 outtime
System64 TRUE 0 13188 outtime
shen08343 TRUE TRUE 15484 813
poemsea TRUE 0 16047 outtime
小黑骑DK TRUE TRUE 31047 0
wangfangbob 0 TRUE outtime 0
SeZhang 0 TRUE outtime 15
goal00001111 0 TRUE outtime 891
latalata 0 TRUE outtime 13656
xylgg TRUE 0 outtime outtime
leejqy_1 0 0 outtime outtime
maths_dxj TRUE 0 outtime outtime
leejqy_2 0 0 outtime outtime
pysn 0 0 outtime outtime
surgeonlao 0 0 outtime outtime
wuchengwei 0 0 outtime outtime
冠军就是 iAkiak 了,不用记小分了
[size=4][size=3][size=2][color=FF0000]致歉声明:因为本人的偷懒行为,造成了不良影响,特此道歉,请大家谅解[/color][/size][/size][/size]比赛主要比的是算法,iAkiak第一题算法最优(程序出了点问题),第二题算法仅次于小黑骑DK wangfangbob,下次比赛还请iAkiak出题。
最后更新于:2007-06-01 07:45:00
回复列表 (共41个回复)
沙发
yxs0001 [专家分:9560] 发布于 2007-05-31 14:53:00
共有16人参加比赛,leejqy提交了两份代码,分别记为 leejqy_1,leejqy_2
编译未通过的有两个
wangfangbob 第一题
<math.h>函数库中有下面两个函数
log是基于自然对数e的
log10是基于底数10的
没有log2函数
要做底数为2的:
log2(x)=log(x)/log(2);
pysn 飘雨少年 第一题
代码未写在函数中
以上代码没有测试
运行期错误:
SeZhang::solve 变量 j没有赋初值 在j声明处改为 j=0;数组越界 没有测试
surgeonlao::solve a[100][12] a[i-1][n1++]=n%2; 数组越界
maths_dxj::solve 没有足够内存分配
int *store = new int[m+1];//用于存储可能满足条件的数
store[0] = 1;
int *cnt = new int[m+1];//用于记录上述存储的数种1、0个数差
int *bb = new int[m+1];
xylgg::Q 数组越界
以上代码没有测试
其他:
xylgg::solve 函数中有 cout 速度很慢 未测试速度
测试数据
m=90000000;
k=100000;
只测一次,发现不用测下去了。
板凳
wangfangbob [专家分:380] 发布于 2007-05-31 15:01:00
C99里是有log2的
3 楼
飘雨少年 [专家分:400] 发布于 2007-05-31 16:35:00
[quote]
pysn 飘雨少年 第一题
代码未写在函数中[/quote]
晕倒,忙着提交,少粘贴了函数名了。
不知道还能不能再给测试一下,就想知道效率怎么样。
[code=c]
namespace pysn
{
int solve(int m)
{
int count=0;
for(int i=1;i<m+1;i++)
{
int numOfB1=0,numOfB0=0;
int one=1,forward0=0;
do
{
if(one&i)
{
numOfB1++;
forward0=0;
}
else
{
numOfB0++;
forward0++;
}
one<<=1;
}while(one);
if(numOfB0-forward0>numOfB1) count++;
}
return count;
}
}
[/code]
4 楼
wangfangbob [专家分:380] 发布于 2007-05-31 17:01:00
至少devc++里的math.h里是有log2的,C99标准里是有log2的
要是楼主的编译器实在没有的话,就用
for ( bound = 0, temp = m; temp > 0; ++bound, temp >>= 1 )
{}
替换语句bound = ( int )log2 ( m ) + 1;
不知道还能不能再给测试一下
5 楼
flushtime [专家分:200] 发布于 2007-05-31 17:08:00
对呀,以后出题的最好给出编译环境~
6 楼
iAkiak [专家分:8460] 发布于 2007-05-31 17:08:00
不是吧- -
第二题的logn的还没看懂呢,wangfangbob,小黑骑DK,能不能讲讲原理?
7 楼
iAkiak [专家分:8460] 发布于 2007-05-31 17:11:00
还有,只测一次是不够的。
8 楼
latalata [专家分:60] 发布于 2007-05-31 17:48:00
好厉害,iAkiak的效率那么高
9 楼
wangfangbob [专家分:380] 发布于 2007-05-31 17:55:00
iAkiak:
我测试你的程序怎么
for ( i = 1; i < n; ++i )
{
iAkiak :: solve( i );
}
老出问题
10 楼
latalata [专家分:60] 发布于 2007-05-31 18:17:00
yxs0001:我的第一题测试的速度好像挺快的,怎么会超时呢,可以看看测试吗?
我来回复