提出 #35638627
ソースコード 拡げる
#include<iostream>
#include<atcoder/modint>
using namespace std;
using mint=atcoder::modint1000000007;
int N,A,B;
mint dp[5002][2][2][5002];
mint tp1[5002][2],tp2[5002][2][5002];
main()
{
cin>>N>>A>>B;
if(A<B)swap(A,B);
//if 0 ga A ko rennzoku -> ok
//else
// if 1 ga B ko rennzoku
// if 1 ga B ko ijou rennzoku wo 0 ni site 0 ga A ko rennzoku -> ok
// else -> ng
// else -> ng
dp[0][0][0][0]=1;
for(int i=0;i<=N;i++)
{
tp1[i+1][0]+=tp1[i][0];
tp1[i+1][1]+=tp1[i][1];
dp[i][0][1][0]+=tp1[i][0];
dp[i][1][1][0]+=tp1[i][1];
for(int k=0;k<2;k++)
{
for(int j=0;j<=i;j++)
{
tp2[i+1][k][j+1]+=tp2[i][k][j];
dp[i][k][1][j]+=tp2[i][k][j];
//A->A
dp[i+1][k][0][j+1]+=dp[i][k][0][j];
dp[i+1][k][0][j+1]+=dp[i][k][1][j];
//A->B
/*tp1
dp[i+1][k|j>=A][1][0]+=dp[i][k][0][j];
...
dp[i+B-1][k|j>=A][1][0]+=dp[i][k][0][j];
*/
tp1[i+1][k|j>=A]+=dp[i][k][0][j];
if(i+B<=N)tp1[i+B][k|j>=A]-=dp[i][k][0][j];
/*tp2
dp[i+B][k][1][j+B]+=dp[i][k][0][j];
...
dp[i+(N-i)][k][1][j+(N-i)]+=dp[i][k][0][j];
*/
if(i+B<=N)
{
tp2[i+B][k][j+B]+=dp[i][k][0][j];
tp2[i+(N-i)+1][k][j+(N-i)+1]-=dp[i][k][0][j];
}
}
}
}
mint ans=0;
for(int k=0;k<2;k++)for(int j=0;j<=N;j++)
{
if(k==1||j>=A)ans+=dp[N][k][0][j]+dp[N][k][1][j];
}
cout<<ans.val()<<endl;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Range Set |
| ユーザ | kotatsugame |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 800 |
| コード長 | 1359 Byte |
| 結果 | AC |
| 実行時間 | 500 ms |
| メモリ | 590068 KiB |
コンパイルエラー
./Main.cpp:8:6: warning: ISO C++ forbids declaration of ‘main’ with no type [-Wreturn-type]
8 | main()
| ^
./Main.cpp: In function ‘int main()’:
./Main.cpp:40:17: warning: suggest parentheses around comparison in operand of ‘|’ [-Wparentheses]
40 | tp1[i+1][k|j>=A]+=dp[i][k][0][j];
| ~^~~
./Main.cpp:41:27: warning: suggest parentheses around comparison in operand of ‘|’ [-Wparentheses]
41 | if(i+B<=N)tp1[i+B][k|j>=A]-=dp[i][k][0][j];
| ~^~~
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 800 / 800 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt |
| All | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-sample-01.txt | AC | 343 ms | 589944 KiB |
| 00-sample-02.txt | AC | 341 ms | 589972 KiB |
| 00-sample-03.txt | AC | 348 ms | 589988 KiB |
| 01-01.txt | AC | 344 ms | 590000 KiB |
| 01-02.txt | AC | 340 ms | 589984 KiB |
| 01-03.txt | AC | 340 ms | 589968 KiB |
| 01-04.txt | AC | 340 ms | 590020 KiB |
| 01-05.txt | AC | 340 ms | 589876 KiB |
| 01-06.txt | AC | 340 ms | 589864 KiB |
| 01-07.txt | AC | 340 ms | 590020 KiB |
| 01-08.txt | AC | 345 ms | 589944 KiB |
| 01-09.txt | AC | 341 ms | 590000 KiB |
| 01-10.txt | AC | 342 ms | 589980 KiB |
| 01-11.txt | AC | 386 ms | 589860 KiB |
| 01-12.txt | AC | 348 ms | 590060 KiB |
| 01-13.txt | AC | 354 ms | 589876 KiB |
| 01-14.txt | AC | 341 ms | 590040 KiB |
| 01-15.txt | AC | 366 ms | 589832 KiB |
| 01-16.txt | AC | 475 ms | 590056 KiB |
| 01-17.txt | AC | 374 ms | 590008 KiB |
| 01-18.txt | AC | 447 ms | 589860 KiB |
| 01-19.txt | AC | 370 ms | 589944 KiB |
| 01-20.txt | AC | 351 ms | 590004 KiB |
| 01-21.txt | AC | 431 ms | 589984 KiB |
| 01-22.txt | AC | 486 ms | 589832 KiB |
| 01-23.txt | AC | 487 ms | 590040 KiB |
| 01-24.txt | AC | 488 ms | 589828 KiB |
| 01-25.txt | AC | 487 ms | 589820 KiB |
| 01-26.txt | AC | 490 ms | 589980 KiB |
| 01-27.txt | AC | 500 ms | 589820 KiB |
| 01-28.txt | AC | 490 ms | 589952 KiB |
| 01-29.txt | AC | 488 ms | 590012 KiB |
| 01-30.txt | AC | 495 ms | 590012 KiB |
| 01-31.txt | AC | 499 ms | 590016 KiB |
| 01-32.txt | AC | 500 ms | 590068 KiB |
| 01-33.txt | AC | 488 ms | 589980 KiB |
| 01-34.txt | AC | 500 ms | 589864 KiB |
| 01-35.txt | AC | 490 ms | 589952 KiB |
| 01-36.txt | AC | 424 ms | 589968 KiB |