gpt4 book ai didi

硬币-文件读取方法中的SPOJ TLE

转载 作者:行者123 更新时间:2023-11-30 21:37:29 25 4
gpt4 key购买 nike

在没有Maps帮助的情况下通过Memoization解决问题,由于读取文件的方法,我得到了TLE,根据我的说法,这不应该是这种情况。可能的原因是什么?

这是给出 AC - http://ideone.com/OX1XlD 的代码

在上面的代码中,对于扫描n,如果将while(scanf("%lld",&n)!=EOF)替换为

         scanf("%lld",&n)
while(n!=EOF){ do something

scanf("%lld",&n);
}

同样给出了 TLE。我不明白为什么。

最佳答案

我没有检查链接中的代码,但从问题中的代码来看,如果 while(scanf("%lld",&n)!=EOF),你是检查 scanf() 本身的返回值。

OTOH,说

   scanf("%lld",&n)
while(n!=EOF){

您正在检查 n 的值,这是一个完全不同的情况,如果 scanf() 失败,则为 undefined behaviour ,如果 n 没有提前初始化。

正确且首选的方法感谢风向标先生将检查scanf()中的项目数量,例如

if (1 != scanf("%lld",&n))

或者,

while ( 1 == scanf("%lld",&n))  //as in this case

EOF 是一种特殊情况,通常很少见。

关于硬币-文件读取方法中的SPOJ TLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31545718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com