【发布时间】:2015-05-19 09:12:25
【问题描述】:
我不知道为什么我在第 10 个案例中得到 WA, 我使用了 BIT 和组合。 问题链接:SPOJ INCSEQ
问题详情:给定一个由 N (1 ≤ N ≤ 10,000) 个整数组成的序列 S1, ..., SN (0 ≤ Si
这里是My Code
我认为 nCr 使用 Mod 功能存在问题。 他们不给出失败的测试用例,所以我没有任何失败的测试用例。
// Here i compute nCk
unsigned long long combination(ll n,ll k)
{
unsigned long long ans=1;
k=k>n-k?n-k:k;
ll j=1;
for(; j<=k; j++,n--)
{
if(n%j==0)
{
ans*=n/j;
}
else if(ans%j==0)
{
ans=ans/j*n;
}
else
{
ans=(ans*n)/j;
}
}
return ans%mod;
}
请帮忙
【问题讨论】:
-
请提供一个失败的测试用例的例子,并简要说明你的算法在做什么。您还应该只提供与问题相关的部分代码,如果其中有任何冗余。如果没有这些详细信息,您的问题将作为“离题”关闭,因为“为什么我的代码不起作用?”没有合理解释的问题是题外话。
-
你的
combination是错误的,因为对于大数,nCr的结果会大于long long的范围。 -
数量将是最大 n
标签: c++ c algorithm data-structures