如何解决为什么黑客地球 - Charged up Array一个代码被接受而另一个代码产生错误答案
我正在尝试解决来自在线评委 Hacker Earth 的 Charged Up Array 问题。
https://www.hackerearth.com/practice/data-structures/arrays/1-d/practice-problems/algorithm/charged-up-array-f35a5e23/
我想出了解决方案并为该问题编写了几乎相同的两种不同代码
第一个是:
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
int T,n,i;
long long int subset_Containg_Ai,x,sum;
scanf("%d",&T);
while(T--)
{
sum = 0;
scanf("%d",&n);
//subset_Containg_Ai = (long long int)pow(2,(n-1));
//printf("Subset = %d\n",subset_Containg_Ai);
for(i=0; i<n; i++)
{
scanf("%lld",&x);
if(x>= pow(2,(n-1)))
{
sum = (sum + x ) % 1000000007;
}
}
printf("%lld\n",sum);
}
return 0;
}
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
int T,&n);
subset_Containg_Ai = (long long int)pow(2,&x);
if(x>=subset_Containg_Ai)
{
sum = (sum + x ) % 1000000007;
}
}
printf("%lld\n",sum);
}
return 0;
}
在第二个代码中,我使用了一个额外的变量“subset_Containg_Ai”,并使用它与变量“x”进行比较,而不是每次都调用函数 pow。我认为这会提高代码的效率。相反,这第二个代码被法官显示为“错误答案”!谁能告诉我这里发生了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。