ログインしてください。
提出 #9189505
ソースコード 拡げる
/*
*/
#pragma GCC optimize("O3")
#define _CRT_SECURE_NO_WARNINGS
#include <fstream>
#include <iostream>
#include <string>
#include <complex>
#include <math.h>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stdio.h>
#include <stack>
#include <algorithm>
#include <list>
#include <ctime>
#include <memory.h>
#include <assert.h>
#define y0 sdkfaslhagaklsldk
#define y1 aasdfasdfasdf
#define yn askfhwqriuperikldjk
#define j1 assdgsdgasghsf
#define tm sdfjahlfasfh
#define lr asgasgash
#define norm asdfasdgasdgsd
#define left asdgashgrketwjklrej
#define have adsgagshdshfhds
#define ends asdgahhfdsfshdshfd
#define prev asdgSHJsfgsdfhdsh
#define hash asdgasdgasdgdfrywewery
#define eps 1e-9
#define M_PI 3.141592653589793
#define bsize 1024
#define ldouble long double
using namespace std;
//#define bs 1000000007
const int N = 200031;
int bs;
int n;
int right_side,left_side;
int dp[2][5031][5031],total_left[5031][5031],total_right[5031][5031];
int suf_sum[5031][5031];
int main(){
// freopen("apache.in","r",stdin);
// freopen("apache.out","w",stdout);
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
ios_base::sync_with_stdio(0);
// cin.tie(0);
cin>>n>>bs;
//n=4000;
//bs=1000000007;
if (n%2)
right_side=n/2,
left_side=n/2;
else
right_side=n/2-1,
left_side=n/2;
// knap for right side
int w_limit=right_side;
dp[0][0][right_side]=1;
total_right[0][0]=1;
for (int lev=1;lev<=n;lev++){
int old_w_limit=w_limit;
w_limit=n/lev;
w_limit=min(w_limit,old_w_limit);
for (int i=0;i<=n;i++){
suf_sum[i][old_w_limit]=dp[1-lev%2][i][old_w_limit];
for (int j=old_w_limit-1;j>=1;--j){
suf_sum[i][j]=suf_sum[i][j+1]+dp[1-lev%2][i][j];
if (suf_sum[i][j]>=bs)
suf_sum[i][j]-=bs;
}
for (int j=0;j<=w_limit;j++){
dp[lev%2][i][j]=0;
}
}
for (int w=1;w<=w_limit;w++){
for (int sum=w;sum<=n;sum++){
dp[lev%2][sum][w]=suf_sum[sum-w][w];
total_right[lev][sum]+=dp[lev%2][sum][w];
if (total_right[lev][sum]>=bs)
total_right[lev][sum]-=bs;
}
}
}
for (int i=0;i<=1;i++){
for (int j=0;j<=n;j++){
for (int q=0;q<=n;q++){
dp[i][j][q]=0;
}
}
}
if (left_side!=right_side){ // left larger, recalc
for (int lev_full=0;lev_full*left_side<=n;lev_full++){
for (int lev_ri=0;lev_ri+lev_full<=n;lev_ri++){
for (int cu_ri=0;cu_ri+lev_full*left_side<=n;cu_ri++){
total_left[lev_full+lev_ri][cu_ri+lev_full*left_side]+=total_right[lev_ri][cu_ri],
total_left[lev_full+lev_ri][cu_ri+lev_full*left_side]%=bs;
}
}
}
}
else{
for (int i=0;i<=n;i++){
for (int j=0;j<=n;j++){
total_left[i][j]=total_right[i][j];
}
}
}
for (int i=1;i<=n;i++){
for (int j=0;j<=n;j++){
total_left[i][j]+=total_left[i-1][j];
total_right[i][j]+=total_right[i-1][j];
total_left[i][j]%=bs;
total_right[i][j]%=bs;
}
}
for (int i=0;i<=n;i++){
for (int j=0;j<=n;j++){
dp[0][i][j]=total_right[i][j];
if (j>0)
dp[0][i][j]+=dp[0][i][j-1];
dp[0][i][j]%=bs;
}
}
long long ans=0;
// cout<<total_left[1][1]<<" "<<total_right[1][1]<<" "<<
// total_left[1][0]<<" "<<left_side<<" "<<right_side<<endl;
for (int mid=1;mid<=n;mid++){
for (int left_w=0;left_w<=mid;left_w++){
ans+=1ll*total_left[mid-1][left_w]*dp[0][n-mid][mid-left_w-1]%bs;
ans%=bs;
}
}
cout<<ans<<endl;
// cin.get(); cin.get();
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Problem Scores |
| ユーザ | LeBron |
| 言語 | C++14 (GCC 5.4.1) |
| 得点 | 0 |
| コード長 | 3873 Byte |
| 結果 | TLE |
| 実行時間 | 2104 ms |
| メモリ | 337152 KiB |
コンパイルエラー
./Main.cpp:39:0: warning: "M_PI" redefined
#define M_PI 3.141592653589793
^
In file included from /usr/include/c++/5/cmath:44:0,
from /usr/include/c++/5/complex:44,
from ./Main.cpp:9:
/usr/include/math.h:372:0: note: this is the location of the previous definition
# define M_PI 3.14159265358979323846 /* pi */
^
ジャッジ結果
| セット名 | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 0 / 1200 | ||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 00-sample-04.txt |
| All | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 00-sample-04.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, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt, 01-44.txt, 01-45.txt, 01-46.txt, 01-47.txt, 01-48.txt, 01-49.txt, 01-50.txt, 01-51.txt, 01-52.txt, 01-53.txt, 01-54.txt, 01-55.txt, 01-56.txt, 01-57.txt, 01-58.txt, 01-59.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-sample-01.txt | AC | 3 ms | 8448 KiB |
| 00-sample-02.txt | AC | 3 ms | 8448 KiB |
| 00-sample-03.txt | AC | 3 ms | 8448 KiB |
| 00-sample-04.txt | AC | 5 ms | 17024 KiB |
| 01-01.txt | AC | 3 ms | 8448 KiB |
| 01-02.txt | AC | 3 ms | 8448 KiB |
| 01-03.txt | AC | 3 ms | 8448 KiB |
| 01-04.txt | AC | 3 ms | 8448 KiB |
| 01-05.txt | AC | 3 ms | 8448 KiB |
| 01-06.txt | AC | 3 ms | 8576 KiB |
| 01-07.txt | AC | 2 ms | 8448 KiB |
| 01-08.txt | AC | 3 ms | 8576 KiB |
| 01-09.txt | AC | 3 ms | 8448 KiB |
| 01-10.txt | AC | 3 ms | 8576 KiB |
| 01-11.txt | AC | 3 ms | 8448 KiB |
| 01-12.txt | AC | 3 ms | 8576 KiB |
| 01-13.txt | AC | 3 ms | 10624 KiB |
| 01-14.txt | AC | 3 ms | 10624 KiB |
| 01-15.txt | AC | 3 ms | 10624 KiB |
| 01-16.txt | AC | 3 ms | 8576 KiB |
| 01-17.txt | AC | 3 ms | 10624 KiB |
| 01-18.txt | AC | 72 ms | 84736 KiB |
| 01-19.txt | AC | 7 ms | 23168 KiB |
| 01-20.txt | AC | 311 ms | 164864 KiB |
| 01-21.txt | AC | 3 ms | 10624 KiB |
| 01-22.txt | AC | 3 ms | 10624 KiB |
| 01-23.txt | AC | 3 ms | 10624 KiB |
| 01-24.txt | AC | 634 ms | 214144 KiB |
| 01-25.txt | AC | 1853 ms | 316800 KiB |
| 01-26.txt | AC | 491 ms | 195584 KiB |
| 01-27.txt | TLE | 2104 ms | 337152 KiB |
| 01-28.txt | AC | 1000 ms | 248960 KiB |
| 01-29.txt | TLE | 2104 ms | 255360 KiB |
| 01-30.txt | TLE | 2104 ms | 282112 KiB |
| 01-31.txt | AC | 361 ms | 175104 KiB |
| 01-32.txt | TLE | 2104 ms | 282240 KiB |
| 01-33.txt | TLE | 2104 ms | 278016 KiB |
| 01-34.txt | TLE | 2104 ms | 282240 KiB |
| 01-35.txt | TLE | 2104 ms | 267648 KiB |
| 01-36.txt | TLE | 2104 ms | 292480 KiB |
| 01-37.txt | AC | 623 ms | 212096 KiB |
| 01-38.txt | TLE | 2104 ms | 288384 KiB |
| 01-39.txt | TLE | 2104 ms | 292480 KiB |
| 01-40.txt | TLE | 2104 ms | 292480 KiB |
| 01-41.txt | TLE | 2104 ms | 292480 KiB |
| 01-42.txt | TLE | 2104 ms | 298624 KiB |
| 01-43.txt | TLE | 2104 ms | 294528 KiB |
| 01-44.txt | TLE | 2104 ms | 298624 KiB |
| 01-45.txt | TLE | 2104 ms | 298624 KiB |
| 01-46.txt | TLE | 2104 ms | 294528 KiB |
| 01-47.txt | TLE | 2104 ms | 290432 KiB |
| 01-48.txt | TLE | 2104 ms | 298624 KiB |
| 01-49.txt | TLE | 2104 ms | 298624 KiB |
| 01-50.txt | TLE | 2104 ms | 298752 KiB |
| 01-51.txt | TLE | 2104 ms | 298624 KiB |
| 01-52.txt | TLE | 2104 ms | 298624 KiB |
| 01-53.txt | TLE | 2104 ms | 298752 KiB |
| 01-54.txt | TLE | 2104 ms | 298752 KiB |
| 01-55.txt | TLE | 2104 ms | 298752 KiB |
| 01-56.txt | TLE | 2104 ms | 298752 KiB |
| 01-57.txt | TLE | 2104 ms | 298752 KiB |
| 01-58.txt | TLE | 2104 ms | 298624 KiB |
| 01-59.txt | TLE | 2104 ms | 298752 KiB |