Submission #1609275
Source Code Expand
#pragma region include #include <iostream> #include <iomanip> #include <stdio.h> #include <sstream> #include <algorithm> #include <iterator> #include <cmath> #include <complex> #include <string> #include <cstring> #include <vector> #include <tuple> #include <bitset> #include <queue> #include <complex> #include <set> #include <map> #include <stack> #include <list> #include <fstream> #include <random> //#include <time.h> #include <ctime> #pragma endregion //#include ///////// #define REP(i, x, n) for(int i = x; i < n; ++i) #define rep(i,n) REP(i,0,n) #define ALL(X) X.begin(), X.end() ///////// #pragma region typedef typedef long long LL; typedef long double LD; typedef unsigned long long ULL; typedef std::pair<LL,LL> PLL;// typedef std::pair<int,int> PII;// #pragma endregion //typedef ////定数 const int INF = (int)1e9; const LL MOD = (LL)1e9+7; const LL LINF = (LL)1e18+20; const LD PI = acos(-1.0); const double EPS = 1e-9; ///////// using namespace::std; ///////// #pragma region Math #pragma region template<class T> inline T gcd(T a, T b){return b ? gcd(b, a % b) : a;} #pragma endregion // 最大公約数 gcd #pragma region template<class T> inline T lcm(T a, T b){return a / gcd(a, b) * b;} #pragma endregion // 最小公倍数 lcm #pragma region LL powMod(LL num,LL n,LL mod=(LL)MOD){//(num**n)%mod num %= mod;// if( n == 0 ){ return (LL)1; } LL mul = num; LL ans = (LL)1; while(n){ if( n&1 ){ ans = (ans*mul)%mod; } mul = (mul*mul)%mod; n >>= 1; } return ans; } LL mod_inverse(LL num,LL mod=MOD){ return powMod(num,MOD-2,MOD); } #pragma endregion //繰り返し二乗法 powMod void solve(){ LL a,b,c; cin >> a >> b >> c; /* if(a<=1000 && c<=1000 ){ vector< vector<LL> > dp(c+1,vector<LL>(a)); dp[0][0] = 1; for(int i=1;i<a;++i){ dp[0][i] = (dp[0][i-1]*b ) % MOD; } for(int j=1;j<=c;++j){ dp[j][0] = 1; } for(int j=1;j<=c;++j){ for(int i=1;i<a;++i){ dp[j][i] = (dp[j-1][i]+dp[j][i-1]); if( dp[j][i] >= MOD ){ dp[j][i] -= MOD; } } } cout << dp[c][a-1] << endl; }else */ if( a <= 100000 && c <= 100000 ){ vector<LL> fact(100001); fact[0] = 1; for(LL i=1;i<=100000;++i){ fact[i] = (fact[i-1]*i) % MOD; } /* k!の逆元は powMod(fact[k],MOD-2)で求める :フェルマーの小定理 */ LL ans = 0; for(LL i=0;i<a;++i){ //(c-1)+(a-i-1) C (c-1) LL n = (c-1)+(a-i-1); LL k = c-1;//固定値 LL res = (fact[n]*powMod(fact[n-k],MOD-2)) % MOD; res = (res * powMod(fact[k],MOD-2) ) % MOD; res = (res * powMod(b,i) ) % MOD; ans += res; if( ans >= MOD ){ ans -= MOD; } } cout << ans << endl; } } #pragma region main signed main(void){ std::cin.tie(0); std::ios::sync_with_stdio(false); std::cout << std::fixed;//小数を10進数表示 cout << setprecision(16);//小数点以下の桁数を指定//coutとcerrで別 solve(); } #pragma endregion //main()
Submission Info
Submission Time | |
---|---|
Task | F - Range Sum Queries |
User | akarin55 |
Language | C++14 (GCC 5.4.1) |
Score | 12 |
Code Size | 3060 Byte |
Status | RE |
Exec Time | 326 ms |
Memory | 1532 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 12 / 12 | 0 / 48 | 0 / 40 | ||||||||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_1.txt, sample_2.txt, sample_3.txt |
Subtask1 | sample_1.txt, sample_2.txt, sample_3.txt, sub1_1.txt, sub1_2.txt, sub1_3.txt, sub1_4.txt, sub1_5.txt, sub1_6.txt, sub1_7.txt, sub1_8.txt, sub1_9.txt |
Subtask2 | sample_1.txt, sample_2.txt, sample_3.txt, sub1_1.txt, sub1_2.txt, sub1_3.txt, sub1_4.txt, sub1_5.txt, sub1_6.txt, sub1_7.txt, sub1_8.txt, sub1_9.txt, sub2_1.txt, sub2_2.txt, sub2_3.txt, sub2_4.txt, sub2_5.txt, sub2_6.txt, sub2_7.txt, sub2_8.txt, sub2_9.txt |
Subtask3 | sample_1.txt, sample_2.txt, sample_3.txt, sub1_1.txt, sub1_2.txt, sub1_3.txt, sub1_4.txt, sub1_5.txt, sub1_6.txt, sub1_7.txt, sub1_8.txt, sub1_9.txt, sub2_1.txt, sub2_2.txt, sub2_3.txt, sub2_4.txt, sub2_5.txt, sub2_6.txt, sub2_7.txt, sub2_8.txt, sub2_9.txt, sub3_1.txt, sub3_2.txt, sub3_3.txt, sub3_4.txt, sub3_5.txt, sub3_6.txt, sub3_7.txt, sub3_8.txt, sub3_9.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_1.txt | AC | 10 ms | 1532 KB |
sample_2.txt | AC | 2 ms | 1024 KB |
sample_3.txt | AC | 2 ms | 1024 KB |
sub1_1.txt | AC | 2 ms | 1024 KB |
sub1_2.txt | AC | 2 ms | 1024 KB |
sub1_3.txt | AC | 2 ms | 1024 KB |
sub1_4.txt | AC | 2 ms | 1024 KB |
sub1_5.txt | AC | 2 ms | 1024 KB |
sub1_6.txt | AC | 2 ms | 1024 KB |
sub1_7.txt | AC | 2 ms | 1024 KB |
sub1_8.txt | AC | 2 ms | 1024 KB |
sub1_9.txt | AC | 3 ms | 1024 KB |
sub2_1.txt | RE | 326 ms | 1024 KB |
sub2_2.txt | AC | 13 ms | 1024 KB |
sub2_3.txt | RE | 98 ms | 1024 KB |
sub2_4.txt | RE | 97 ms | 1024 KB |
sub2_5.txt | AC | 29 ms | 1024 KB |
sub2_6.txt | AC | 12 ms | 1024 KB |
sub2_7.txt | RE | 98 ms | 1024 KB |
sub2_8.txt | AC | 6 ms | 1024 KB |
sub2_9.txt | AC | 3 ms | 1024 KB |
sub3_1.txt | WA | 1 ms | 256 KB |
sub3_2.txt | WA | 1 ms | 256 KB |
sub3_3.txt | WA | 1 ms | 256 KB |
sub3_4.txt | WA | 1 ms | 256 KB |
sub3_5.txt | WA | 1 ms | 256 KB |
sub3_6.txt | WA | 1 ms | 256 KB |
sub3_7.txt | WA | 1 ms | 256 KB |
sub3_8.txt | WA | 1 ms | 256 KB |
sub3_9.txt | WA | 1 ms | 256 KB |