답안 #882179

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
882179 2023-12-02T18:39:16 Z hasan2006 Tents (JOI18_tents) C++17
100 / 100
132 ms 71028 KB
#include <bits/stdc++.h>

using namespace std;

#define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define rall(s) s.rbegin(),s.rend()
#define all(s) s.begin(),s.end()
#define pb push_back
#define se second
#define fi first
#define ll long long
#define ld long double
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define yes cout<<"yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define no cout<<"no\n"


const int N = 3e3 + 9 , mod = 1e9 + 7;
ll   a[N] = {}, b[N] , c[N] , d[N] , dp[N][N] , ans[N];

void add(ll &a, ll b){
    a += b;
    if(a >= mod)a %= mod;
}

void solve()
{
    ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
    cin>>n>>m;
    for(i = 0; i <= m; i++)
        dp[0][i] = 1;
    for(int i = 0; i <= n; i++)
        dp[i][0] = 1;
    for(ll i = 1; i <= n; i++){
        for(ll j = 1; j <= m; j++){
            add(dp[i][j], dp[i - 1][j - 1] * j * 4);
            if(j >= 2){
                add(dp[i][j], dp[i - 1][j - 2] * j * (j - 1) / 2);
            }if(i >= 2){
                add(dp[i][j], dp[i - 2][j - 1] * j * (i - 1));
            }
        add(dp[i][j], dp[i - 1][j]);
        }
    }

    cout << (dp[n][m] - 1 + mod) % mod;
}

int main(){
    TL;
int t = 1;
//cin>>t;
while(t--)
     {
     solve();
     }
}
// Author : حسن

Compilation message

tents.cpp: In function 'void solve()':
tents.cpp:31:8: warning: unused variable 'q' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |        ^
tents.cpp:31:16: warning: unused variable 'j' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                ^
tents.cpp:31:26: warning: unused variable 'z' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                          ^
tents.cpp:31:29: warning: unused variable 's' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                             ^
tents.cpp:31:37: warning: unused variable 'f' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                     ^
tents.cpp:31:40: warning: unused variable 'l' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                        ^
tents.cpp:31:44: warning: unused variable 'r' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                            ^
tents.cpp:31:48: warning: unused variable 'k' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                ^
tents.cpp:31:52: warning: unused variable 'x' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                    ^
tents.cpp:31:56: warning: unused variable 'y' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                        ^
tents.cpp:31:60: warning: unused variable 'mn' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                            ^~
tents.cpp:31:73: warning: unused variable 'mx' [-Wunused-variable]
   31 |     ll q , i , j , m ,n, z ,s = 0 , f, l , r , k , x , y , mn  = 1e18 , mx = 0;
      |                                                                         ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 6612 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 6612 KB Output is correct
9 Correct 1 ms 4444 KB Output is correct
10 Correct 2 ms 8536 KB Output is correct
11 Correct 1 ms 2396 KB Output is correct
12 Correct 2 ms 8540 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 6612 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 6612 KB Output is correct
9 Correct 1 ms 4444 KB Output is correct
10 Correct 2 ms 8536 KB Output is correct
11 Correct 1 ms 2396 KB Output is correct
12 Correct 2 ms 8540 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 6 ms 55644 KB Output is correct
15 Correct 86 ms 66140 KB Output is correct
16 Correct 6 ms 6492 KB Output is correct
17 Correct 20 ms 17008 KB Output is correct
18 Correct 25 ms 29524 KB Output is correct
19 Correct 97 ms 70348 KB Output is correct
20 Correct 78 ms 59992 KB Output is correct
21 Correct 51 ms 39576 KB Output is correct
22 Correct 52 ms 51804 KB Output is correct
23 Correct 34 ms 70492 KB Output is correct
24 Correct 132 ms 71028 KB Output is correct
25 Correct 98 ms 62044 KB Output is correct
26 Correct 112 ms 68188 KB Output is correct
27 Correct 128 ms 70232 KB Output is correct