ural 1627
2013-04-30 19:38
155 查看
与论文题没什么区别
#include <cstdio> #include <cstring> #include <iostream> #include <string> #include <map> #include <stack> #include <set> #include <sstream> #include <fstream> #include <cmath> #include <functional> #include <algorithm> #include <queue> #include <cstdlib> #include <numeric> #include <bitset> #include <iomanip> using namespace std; typedef long long ll; #define lson l , m ,rt<<1 #define rson m+1,r,rt<<1|1 typedef vector<string> VS; typedef vector<int> VI; typedef vector<VI> VVI; typedef vector<VVI> VVVI; typedef pair<int, int> pii; const int mod = 1000000000; const int N = 511; const int M = 1111111; ll det ; int num ; char s ; int dx[] = { 0, 1, 0, -1 }; int dy[] = { 1, 0, -1, 0 }; int n, m; int cnt; ll Det(int n) { ll ans = 1; int i, j, k; for (i = 0; i < n; ++i) { for (j = i + 1; j < n; ++j) { while (det[j][i]) { ll t = det[i][i] / det[j][i]; for (k = i; k < n; ++k) { det[i][k] -= det[j][k] * t; det[i][k] %= mod; } for (k = 0; k < n; ++k) swap(det[i][k], det[j][k]); ans *= -1; } } if (!det[i][i]) return 0; } for (i = 0; i < n; ++i) ans = ans * det[i][i] % mod; return (ans % mod + mod) % mod; } int main() { int x, y; int u, i, k, j; scanf("%d%d", &n, &m); for (i = 0; i < n; ++i) scanf("%s", s[i]); for (i = 0; i < n; ++i) for (j = 0; j < m; ++j) if (s[i][j] == '.') num[i][j] = cnt++; for (i = 0; i < n; ++i) { for (j = 0; j < m; ++j) { if (s[i][j] == '*') continue; u = num[i][j]; int c = 0; for (k = 0; k < 4; ++k) { x = i + dx[k]; y = j + dy[k]; if (x < 0 || x >= n || y < 0 || y >= m) continue; if (s[x][y] == '.') det[u][num[x][y]] = -1, c++; } det[u][u] = c; } } printf("%I64d\n", Det(cnt - 1)); return 0; }
相关文章推荐
- URAL 1627 (生成树计数)
- URAL-1627-Join(生成树计数模板)
- Ural 1627 Join(生成树计数)
- URAL 1627 Join(生成树计数)
- kuangbin专题八 URAL1627 Join(生成树计数)
- URAL 1001. Reverse root
- [URAL 1147][USACO rect1]Shaping Regions(矩形切割)
- Ural 1280. Topological Sorting
- ural 1002 phone numbers
- ural 1033 Labyrinth
- ural 1416 Confidential
- ural 1005. Stone Pile
- ural 1049. Brave Balloonists
- ural 1056 computer net
- URAL->1002. Phone Numbers
- URAL 1294. Mars Satellites
- Ural - 1018 纠结的树型DP...
- Ural 1073 Square Country 解题报告
- Ural_1146. Maximum Sum (DP)
- ural 1203. Scientific Conference