我见过有人用不同语言的缓冲区在在线评委中快速输入/输出。例如,http://www.spoj.pl/problems/INTEST/是用C完成的,如下所示:
#include <stdio.h>
#define size 50000
int main (void){
unsigned int n=0,k,t;
char buff[size];
unsigned int divisible=0;
int block_read=0;
int j;
t=0;
scanf("%lu %lu\n",&t,&k);
while(t){
block_read =fread(buff,1,size,stdin);
for(j=0;j<block_read;j++){
if(buff[j]=='\n'){
t--;
if(n%k==0){
divisible++;
}
n=0;
}
else{
n = n*10 + (buff[j] - '0');
}
}
}
printf("%d",divisible);
return 0;
如何使用python实现这一点?在
不过,这很可能不会提高性能—Python是解释性语言,因此您基本上希望尽可能多地在本机代码(本例中为标准库输入/解析例程)上花费更多时间。在
DR要么使用内置的例程来解析整数,要么得到某种为速度而优化的第三方库。在
我试图用python3解决这个问题,但无论我如何读取输入,都无法使其正常工作。然后我切换到在Python2.5下运行它,这样我就可以使用
在做了这个更改之后,我只需在for循环中一次一行地读取}的值,然后使用下面的循环读取输入的其余部分。在
^{pr2}$sys.stdin
的输入,就可以让它正常工作了。我使用raw_input()
读取第一行,并解析n
和{相关问题 更多 >
编程相关推荐