Submission #39108354
Source Code Expand
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define op(x) ((x&1)?x+1:x-1)
#define odd(x) (x&1)
#define even(x) (!odd(x))
#define lc(x) (x<<1)
#define rc(x) (lc(x)|1)
#define lowbit(x) (x&-x)
#define mp(x,y) make_pair(x,y)
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
using namespace std;
const int MAXN=1e6+10,LIM=1e6,mod=1e9+7;
void add(ll& x,ll y){x=(x+y)%mod;}
void sub(ll& x,ll y){x=(x-y+mod)%mod;}
ll mypow(ll a,ll n){
if(!n)return 1;
ll tmp=mypow(a,n/2);tmp=tmp*tmp%mod;
if(n&1)tmp=tmp*a%mod;return tmp;
}
ll myinv(ll a){return mypow(a,mod-2);}
ll fact[MAXN],rfact[MAXN];
void pre(){
fact[0]=1;
rep(i,1,LIM)fact[i]=fact[i-1]*i%mod;
rfact[LIM]=myinv(fact[LIM]);
per(i,LIM-1,0)rfact[i]=rfact[i+1]*(i+1)%mod;
}
ll C(ll n,ll m){
if(n<m || m<0)return 0;
return fact[n]*rfact[m]%mod*rfact[n-m]%mod;
}
ll P(ll n){return (n%2)?(mod-1):(1);}
ll n,m,L,R,ans;
namespace CFM{
ll G[MAXN];
ll F(ll V,ll S){
//前面m个取[0,V]和为S的方案数
if(S<0)return 0;
ll res=0;
rep(i,0,m)if(i*(V+1)>S)break;else{
ll rest=S-i*(V+1);
ll num=P(i)*C(m,i)%mod;
num=num*G[rest]%mod;
add(res,num);
}
return res;
}
ll calc(ll x,ll k){ //a[m]=x
ll res=F(x,k-(n-m)*(x+1));
if(x){
sub(res,F(x-1,k-(n-m)*(x+1)));
}
return res;
}
ll solve(ll k){ //和不超过k
//分母(1-x)^{-(n+1)}
ll ans=C(n+k,k); //总数
rep(i,0,k)G[i]=C(n+i,i);
//去掉xm不等于xm+1的
rep(a,0,k){
sub(ans,calc(a,k)*C(n,m)%mod);
}
return ans;
}
}
int main(){
pre();
cin>>n>>m>>L>>R;
m=n-m;
add(ans,CFM::solve(R));
sub(ans,CFM::solve(L-1));
cout<<ans<<endl;
return 0;
}
Submission Info
Submission Time
2023-02-22 17:27:34+0900
Task
F - Candy Retribution
User
Crying
Language
C++ (GCC 9.2.1)
Score
1000
Code Size
1803 Byte
Status
AC
Exec Time
204 ms
Memory
21596 KiB
Compile Error
./Main.cpp: In function ‘ll mypow(ll, ll)’:
./Main.cpp:21:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
21 | if(n&1)tmp=tmp*a%mod;return tmp;
| ^~
./Main.cpp:21:23: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
21 | if(n&1)tmp=tmp*a%mod;return tmp;
| ^~~~~~
Judge Result
Set Name
Sample
Subtask1
Score / Max Score
0 / 0
1000 / 1000
Status
Set Name
Test Cases
Sample
sample_01.txt, sample_02.txt, sample_03.txt
Subtask1
sample_01.txt, sample_02.txt, sample_03.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_34.txt, sub1_35.txt, sub1_36.txt, sub1_37.txt
Case Name
Status
Exec Time
Memory
sample_01.txt
AC
28 ms
19252 KiB
sample_02.txt
AC
24 ms
19068 KiB
sample_03.txt
AC
52 ms
20924 KiB
sub1_01.txt
AC
121 ms
20696 KiB
sub1_02.txt
AC
28 ms
19840 KiB
sub1_03.txt
AC
47 ms
20240 KiB
sub1_04.txt
AC
31 ms
20028 KiB
sub1_05.txt
AC
57 ms
20348 KiB
sub1_06.txt
AC
56 ms
20624 KiB
sub1_07.txt
AC
56 ms
20564 KiB
sub1_08.txt
AC
105 ms
20708 KiB
sub1_09.txt
AC
147 ms
20568 KiB
sub1_10.txt
AC
193 ms
21432 KiB
sub1_11.txt
AC
178 ms
21548 KiB
sub1_12.txt
AC
148 ms
21404 KiB
sub1_13.txt
AC
37 ms
21568 KiB
sub1_14.txt
AC
64 ms
21496 KiB
sub1_15.txt
AC
204 ms
21560 KiB
sub1_16.txt
AC
79 ms
21536 KiB
sub1_17.txt
AC
69 ms
20628 KiB
sub1_18.txt
AC
32 ms
21500 KiB
sub1_19.txt
AC
30 ms
20708 KiB
sub1_20.txt
AC
23 ms
19068 KiB
sub1_21.txt
AC
23 ms
19064 KiB
sub1_22.txt
AC
27 ms
19216 KiB
sub1_23.txt
AC
25 ms
19160 KiB
sub1_24.txt
AC
24 ms
19228 KiB
sub1_25.txt
AC
27 ms
19216 KiB
sub1_26.txt
AC
191 ms
21356 KiB
sub1_27.txt
AC
33 ms
21500 KiB
sub1_28.txt
AC
179 ms
21412 KiB
sub1_29.txt
AC
22 ms
19148 KiB
sub1_30.txt
AC
28 ms
19228 KiB
sub1_31.txt
AC
33 ms
21596 KiB
sub1_32.txt
AC
37 ms
21536 KiB
sub1_33.txt
AC
52 ms
21480 KiB
sub1_34.txt
AC
40 ms
21532 KiB
sub1_35.txt
AC
30 ms
21532 KiB
sub1_36.txt
AC
40 ms
21060 KiB
sub1_37.txt
AC
118 ms
21412 KiB