// Problem : Hammering (NAIPC 2019) // Author : Darcy Best // Expected Result : AC // Complexity : O( 2^n * (m^2 + m*n) ) // Pick a set of rows to consider. For each set, determine which // columns are monotonic and then do a DP to count the number of // monotonic sequences. #include #include using namespace std; int main(){ int n, m; cin >> n >> m; vector > A(n, vector(m)); for(auto& v : A) for(auto& x : v) cin >> x; vector > comp(m,vector(m)); for(int j1=0;j1 > DP(m, vector(1 << n)); long long ans = 0; for(int rows_bM=1;rows_bM<(1 << n);rows_bM++){ vector good_col(m, true); int in_my_col[n]; for(int c=0;c> r) & 1) in_my_col[idx++] = A[r][c]; for(int i=0;i+2 in_my_col[i+1] && in_my_col[i+1] > in_my_col[i+2])) good_col[c] = false; if(good_col[c]) ans++; } for(int en=0;en