提出 #18170654
ソースコード 拡げる
/*
after dusk passed,
there is a starry sky.
*/
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define m_k make_pair
#define mod 1000000007
#define int long long
using namespace std;
const int N=2100;
int n,k,dp[N][N],sum[N];
inline void add(int &a,int b){a=((a+b>mod)?a+b-mod:a+b);}
inline void del(int &a,int b){a=((a-b<0)?a-b+mod:a-b);}
inline void mul(int &a,int b){a=(a*b)%mod;}
inline int m_pow(int a,int b)
{
int ans=1;
while (b)
{
if (b&1) mul(ans,a);
b>>=1;
mul(a,a);
}
return ans;
}
inline int read()
{
int f=1,x=0;char s=getchar();
while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
return x*f;
}
signed main()
{
n=read();k=read();
if (n==1)
{
printf("1\n");
return 0;
}
if (k==1)
{
printf("%lld\n",m_pow(2,n-2));
return 0;
}
dp[0][n+1]=1;
for (int i=1;i<=n+1;i++) sum[i]=1;
for (int i=1;i<k;i++)
{
for (int j=1;j<=n-i+1;j++)
{
dp[i][j]=sum[j+1];
add(dp[i][j],dp[i-1][j]);
}
for (int j=1;j<=n+1;j++) sum[j]=0;
for (int j=n-i+1;j>=1;j--) sum[j]=(sum[j+1]+dp[i][j])%mod;
}
int ans=sum[2];
if (k!=n) mul(ans,m_pow(2,n-k-1));
printf("%lld\n",ans);
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Solitaire |
| ユーザ | SevenDawns |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 1200 |
| コード長 | 1219 Byte |
| 結果 | AC |
| 実行時間 | 33 ms |
| メモリ | 26576 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 1200 / 1200 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt |
| All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_example_01.txt | AC | 6 ms | 3592 KiB |
| 00_example_02.txt | AC | 2 ms | 3576 KiB |
| 00_example_03.txt | AC | 25 ms | 18588 KiB |
| 01.txt | AC | 2 ms | 3672 KiB |
| 02.txt | AC | 15 ms | 11048 KiB |
| 03.txt | AC | 2 ms | 3712 KiB |
| 04.txt | AC | 2 ms | 4140 KiB |
| 05.txt | AC | 2 ms | 3440 KiB |
| 06.txt | AC | 2 ms | 3456 KiB |
| 07.txt | AC | 2 ms | 3772 KiB |
| 08.txt | AC | 2 ms | 3792 KiB |
| 09.txt | AC | 28 ms | 23720 KiB |
| 10.txt | AC | 2 ms | 3676 KiB |
| 11.txt | AC | 3 ms | 3668 KiB |
| 12.txt | AC | 31 ms | 23968 KiB |
| 13.txt | AC | 2 ms | 4008 KiB |
| 14.txt | AC | 23 ms | 14256 KiB |
| 15.txt | AC | 6 ms | 6588 KiB |
| 16.txt | AC | 25 ms | 14524 KiB |
| 17.txt | AC | 20 ms | 12540 KiB |
| 18.txt | AC | 29 ms | 21100 KiB |
| 19.txt | AC | 21 ms | 19552 KiB |
| 20.txt | AC | 13 ms | 11220 KiB |
| 21.txt | AC | 2 ms | 3392 KiB |
| 22.txt | AC | 33 ms | 26576 KiB |
| 23.txt | AC | 2 ms | 3660 KiB |