您当前的位置:首页 > 学习 > 阅览室

比比谁的代码短:TLE测试赛结束

时间:12-05来源:作者:点击数:

另类编程挑战赛Time Limit Exceeded,这个比赛的得分算法很另类,它将根据你代码的总长度和特定字符的多少而定。在刚刚结束的测试赛中,有几个题目非常具有挑战性,参赛者提交的代码也是牛气冲天。

Power of 2

问题:

输入数据含有多行,每行一个正整数。对每个数,检查看它是否是2的幂,是则输出yes,不是则输出no。

你的程序不允许使用分号。

规定0也是2的幂。

得分:

S= length of code + number of whitespaces;

score = (250000)/(S^2);

样例输入:

2

3

4

5

0

样例输出:

yes

no

yes

no

yes

目前的最好结果为76分:

main(t){while(~scanf("%d",&t)&&puts(t&t-1?"no":"yes")){}}

Count 1 2 3

问题:

写一个程序,该程序运行后打印出从1到50 000的整数。

你不允许使用循环语句和跳转语句(for、while、goto)。

你不允许使用#define 。

得分:

S= length of code – number of whitespaces;

score = 11 + (500*400)/(S^2);

目前的最好结果为124分,仔细体会这段代码,非常的牛:

n;main(){n<5e4&&main(printf("%dn",++n));}

Segmentation Fault

问题:

写一个程序,该程序运行后打印出从1到5 000 000的整数。

你不允许使用循环语句和跳转语句(for、while、goto)。

你不允许使用#define 。

得分:

S= length of code - numer of whitespaces;

score = 51 + (500*1600)/(S^2);

这道题和上道题的区别就是:不加改进的递归会导致堆栈溢出。

目前的最好结果为234分,仔细观察这段代码,看他是怎样避免堆栈溢出的:

j;main(i){i>1e5||printf("%dn",++j)+main(i+1);i<2&j<5e6&&main(1);}

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门