int main() { int t; scanf("%d",&t); for (int cas=1;cas<=t;cas++) { int n,m; scanf("%d%d",&m,&n); printf("Case #%d: ",cas); if (n&1) { long long ans=0; for (int i=0;i<n;i++) ans=(ans+power(m,gcd(i,n)))%mod; ans+=power(m,(n+1)/2)%mod*n%mod; ans%=mod; ans=ans*getInv(n*2)%mod; printf("%I64d\n",ans); } else { long long ans=0; for (int i=0;i<n;i++) ans=(ans+power(m,gcd(i,n)))%mod; ans+=power(m,n/2)%mod*n/2%mod; ans%=mod; ans+=power(m,n/2+1)%mod*n/2%mod; ans%=mod; ans=ans*getInv(n*2)%mod; printf("%I64d\n",ans); } } return 0; }
long long calc(int n,int m,int p)//C(n,m)%p { init(p); long long ans=1; for (; n && m && ans; n/=p,m/=p) { if (n%p>=m%p) ans = ans*num[n%p]%p *getInv(num[m%p]%p)%p *getInv(num[n%p-m%p])%p; else ans=0; } return ans; }
Ensemble Distribution::getEnsemble(int iSize) const { std::vector<float> origValues = mEnsemble.getValues(); int numEns = iSize; if(!Global::isValid(iSize)) numEns = origValues.size(); // Create an ensemble by sampling values from the distribution std::vector<std::pair<float, int> > pairs(numEns); // forecast, ensemble index std::vector<float> invs(numEns, Global::MV); for(int i = 0; i < numEns; i++) { float cdf = (float) (i+1)/(numEns+1); float value = getInv(cdf); invs[i] = value; pairs[i] = std::pair<float, int>(origValues[i], i); } // Ensemble members should have the same rank as in the raw ensemble std::sort(pairs.begin(), pairs.end(), Global::sort_pair_first<float, int>()); std::vector<float> values(numEns, Global::MV); for(int i = 0; i < numEns; i++) { int index = pairs[i].second; float value = invs[i]; values[index] = value; } // Set up the ensemble Ensemble ens(values, getVariable()); ens.setInfo(getDate(), getInit(), getOffset(), getLocation(), getVariable()); return ens; }
void Player::useItem(lua_State* L, Item* i){ luaL_dofile(L, i->getScript()); for (int j = 0; j < invSize; j++){ if (i == getInv()[j]) index = j; } i->decrNum(); if (i->getNumberOf() <= 0){ for (int j = index + 1; j < invSize; j++){ inventory[j - 1] = inventory[j]; } inventory[invSize - 1] = NULL; invSize--; } }