跳到主要內容

發表文章

目前顯示的是有「PreSolve」標籤的文章

Codeforces Round #219 (Div. 2) D. Counting Rectangles is Fun

網路上大家都說先預處理,重點是要怎麼預處理才是重點阿 我不會啊~~~   不過在此終於懂了一些     1.先算出每一個單元格跟他上面的單元格能夠構出幾個矩形,遇到1就要變成0   2.然後再利用四個方向大枚舉u,l,d,r 利用右下角的點算出最多能夠與這四個方向以內的單元格構出多少個矩形 所以只要利用剛剛第一步驟算好的點 加上當前最小值,遇到0就不要再算了 3.加上u,l,d-1,r  u,l,d,r-1 的個數,當然 這些已經處理過了(而這些處理過的點 需要處理的點也都已經處理過了(DP概念)),而且因為會有重疊的部分所以必須扣掉u,l,d-1,r-1   /* * GCA : "Computer is artificial subject absolutely,Math is God" */ #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <climits> #include <vector> #include <set> #include <map> #include <queue> #include <cctype> #include <utility> #include <ctime> using namespace std; #ifdef DEBUG #define VAR(a,b) __typeof(b) a=(b) #define debug(...) printf( "DEBUG: " ),printf(__VA_ARGS__) #else #define VAR(a,b) __typeof(b) a=(b) #define debug(...) #endif typedef unsigned int uint ; typedef long long int Int; typedef unsigned long long int ...