主题:第44次编程比赛结果~~~
首先非常抱歉的是这次题目出得非常的不好:
1、环境的不好,包括定下的gcc编译器,和unsigned long long范围,大部分朋友非常不适应,其实原来的两题的范围都是极大的,远远超过unsigned long long的范围,但这又需要大家处理巨型数的加减乘除和取余运算,比较麻烦,所以定下了整形的最大范围。
2、题目本身的不好,这次题目出得没有什么难度,不涉及很深的数据结构等知识,本意是希望能吸引更多的人参加,希望只要认真学过基础C/C++的都能写出来,但在细节方面则有很多讲究,"都能写出来"实现了,"细节讲究方面",没有实现。事前评估严重不到位。
不过大家辛辛苦苦写出来的程序还是要测试的:)
下面是测试的一下说明:
1、原来指定使用GCC编译器的,但是绝大部分选择了vc,所以最后的编译器选择了,vc2003
2、很多人的程序都不符合测试标准,我对不符合测试标准的进行了一些改动,具体如下:
(1)声明的更改,如果你程序里没有使用任何64位整形变量,则将unsigned long,改为unsigned __int64,如果你程序里有使用64为整形变量,只将这些变量声明改为unsigned __int64,如果你程序里没有使用上述的变量,那么我则将程序里所有整形变量的声明全部改为unsigned __int64而不会考虑需不需要更改
(2)相关函数的更改,如果你的程序里用到需要区分32位或64为变量的函数时,则更改为64位的函数
(3)很多朋友没有按照要求用程序接受参数,进行处理,而使用了标准输入输出,同意改为接受参数形式,第一题参数转数字的函数同意用_atoi64()
以下朋友程序格式完全符合要求,向他们表示感谢:
wlsss willzhanglala 独行者 liren0 scanf
有关标准程序:
这些题目都是我自己想出来的,所以没找到什么现成的标准程序,由于一开始考虑到的范围是非常巨大的,所以我用python写了个程序用作测试,因为python的长整型的范围几乎无限,并且精度到个位,所以我在这就不发出来了
下面开始测试:
第一题:
1:参数为20亿,程序结果都正确
在速度上,tenm,xylgg和flypampas的程序耗时在60ms左右,其他人都在40ms左右
2:参数为:1922337203685477580
答案:111011000101201111200020011001120020000102002002
结果:heibird,scanf答案错误,kofox,tenm,xylgg,wshong,flypampas超时
第一题:独行者,hotzenlotz,ITER,liren0,wlsss,难分上下
但取极限值2^64-1时
结果:100110120101002020101011001001110201202012011120101
得出正确答案的仅wlsss
第二题测试:
1、参数:accbac
答案:1573/5040 197/630
flypampas,xylgg答案出错
当字符串在除了首尾的其他地方出现a时,flypampas的结果会出错
速度测试基本一样
(又测试几组数据,算法基本正确)
当测试到参数:abbcabcacbcabacaca时,tenm第二次提交的程序
唯一得出了正确答案:3051461327/13332664800 67132149299/293318625600
答案没有超出范围,但其他朋友的程序在处理数据的时候超出了范围,tenm这点处理的最好
综合以上两题,wlsss没有解答第二题,tenm第二题略占优势,但第一题实现的有问题
所以我认为,冠军应该是:[color=FF0000]hotzenlotz[/color]
他两题实现的都还不错,请准备下次比赛
[color=0000FF]由于题目出的很不到位,所以冠军的选出比较困难,再次抱歉~~~[/color]
1、环境的不好,包括定下的gcc编译器,和unsigned long long范围,大部分朋友非常不适应,其实原来的两题的范围都是极大的,远远超过unsigned long long的范围,但这又需要大家处理巨型数的加减乘除和取余运算,比较麻烦,所以定下了整形的最大范围。
2、题目本身的不好,这次题目出得没有什么难度,不涉及很深的数据结构等知识,本意是希望能吸引更多的人参加,希望只要认真学过基础C/C++的都能写出来,但在细节方面则有很多讲究,"都能写出来"实现了,"细节讲究方面",没有实现。事前评估严重不到位。
不过大家辛辛苦苦写出来的程序还是要测试的:)
下面是测试的一下说明:
1、原来指定使用GCC编译器的,但是绝大部分选择了vc,所以最后的编译器选择了,vc2003
2、很多人的程序都不符合测试标准,我对不符合测试标准的进行了一些改动,具体如下:
(1)声明的更改,如果你程序里没有使用任何64位整形变量,则将unsigned long,改为unsigned __int64,如果你程序里有使用64为整形变量,只将这些变量声明改为unsigned __int64,如果你程序里没有使用上述的变量,那么我则将程序里所有整形变量的声明全部改为unsigned __int64而不会考虑需不需要更改
(2)相关函数的更改,如果你的程序里用到需要区分32位或64为变量的函数时,则更改为64位的函数
(3)很多朋友没有按照要求用程序接受参数,进行处理,而使用了标准输入输出,同意改为接受参数形式,第一题参数转数字的函数同意用_atoi64()
以下朋友程序格式完全符合要求,向他们表示感谢:
wlsss willzhanglala 独行者 liren0 scanf
有关标准程序:
这些题目都是我自己想出来的,所以没找到什么现成的标准程序,由于一开始考虑到的范围是非常巨大的,所以我用python写了个程序用作测试,因为python的长整型的范围几乎无限,并且精度到个位,所以我在这就不发出来了
下面开始测试:
第一题:
1:参数为20亿,程序结果都正确
在速度上,tenm,xylgg和flypampas的程序耗时在60ms左右,其他人都在40ms左右
2:参数为:1922337203685477580
答案:111011000101201111200020011001120020000102002002
结果:heibird,scanf答案错误,kofox,tenm,xylgg,wshong,flypampas超时
第一题:独行者,hotzenlotz,ITER,liren0,wlsss,难分上下
但取极限值2^64-1时
结果:100110120101002020101011001001110201202012011120101
得出正确答案的仅wlsss
第二题测试:
1、参数:accbac
答案:1573/5040 197/630
flypampas,xylgg答案出错
当字符串在除了首尾的其他地方出现a时,flypampas的结果会出错
速度测试基本一样
(又测试几组数据,算法基本正确)
当测试到参数:abbcabcacbcabacaca时,tenm第二次提交的程序
唯一得出了正确答案:3051461327/13332664800 67132149299/293318625600
答案没有超出范围,但其他朋友的程序在处理数据的时候超出了范围,tenm这点处理的最好
综合以上两题,wlsss没有解答第二题,tenm第二题略占优势,但第一题实现的有问题
所以我认为,冠军应该是:[color=FF0000]hotzenlotz[/color]
他两题实现的都还不错,请准备下次比赛
[color=0000FF]由于题目出的很不到位,所以冠军的选出比较困难,再次抱歉~~~[/color]

您所在位置:

