# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
109338 | 2019-05-06T08:03:04 Z | b2563125 | Boat (APIO16_boat) | C++14 | 0 ms | 0 KB |
#include<iostream> #include<algorithm> #include<vector> using namespace std; #define int long long #define vel vector<long long> #define V vector #define ll long long #define rep(i,n) for(int i=0;i<n;i++) int pr = 1000000007; int ref(int &a) { a = a % pr; a += pr; a = a % pr; return a; } void uni(vel &a) { vel ans(1, a[0]); int n = a.size(); rep(i,n - 1) { if (a[i + 1] != a[i]) { ans.push_back(a[i + 1]); } } a = ans; } int rui(int a, int n) { if (n == 0) { return 1; } int back = rui(a, n / 2); back *= back; ref(back); if (n % 2 == 0) { return back; } return (back*a) % pr; } int inv(int a) { return rui(a, pr - 2); } signed main() { V<V<vel>> dp(500,V<vel>(500,vel(500))) }