原理:從稀疏矩陣中把有效資料提出來,放在乙個新的座標系中
#include #include #include #include #include #include #include const int inf = 1e6;
const int maxn = 510;
using namespace std;
int w, h, n;
int x1[maxn], x2[maxn], y1[maxn], y2[maxn];
int mp[maxn][maxn];
//填充用
bool fld[maxn * 6][maxn * 6];
//對x1 x2進行座標離散化,返回離散化之後的值
int compress(int *x1, int *x2, int w)
//排序,去重
sort(xs.begin(), xs.end());
xs.erase(unique(xs.begin(), xs.end()), xs.end());
//將線的位置更新
for(int i = 0; i < n; i++)
return xs.size();
} void solve();
int dy[4] = ;
for(int i = 0; i < 4; i++)
} }
} printf("%d\n", ans);
}//測試函式
int main()
座標離散化
問題 在w h的格仔上畫了n條垂直或者水平的寬度為1的直線。求出這些直線將格仔劃分為了多少個區域?限制條件 1 w,h 1000000 1 n 500 輸入 首先輸入w,h,n 然後輸入對應的x1,x2,y1,y2.輸出區域的個數。輸入 10 10 5 x1 1 1 4 9 10 x2 6 10 4...
座標離散化
問題 在w h的格仔上畫了n條垂直或者水平的寬度為1的直線。求出這些直線將格仔劃分為了多少個區域?限制條件 1 w,h 1000000 1 n 500 輸入 首先輸入w,h,n 然後輸入對應的x1,x2,y1,y2.輸出區域的個數。輸入 10 10 5 x1 1 1 4 9 10 x2 6 10 4...
二維座標離散化
離散化的思想就是將分布大卻數量少 即稀疏 的資料進行集中化的處理,這樣可以有利於程式的空間與時間,能減少遍歷次數與空間儲存。然而雖然我會了思想今天問了翔神半天才知道怎麼實現。其實實現的方式與口述的角度還是有所不同。思想理解起來其實道理很簡單,如座標 3,2000 10005,31 10006,5 離...