P1162
#include<map>
#include<vector>
#include<iostream>
#include<math.h>
#include<algorithm>
#include<string>
using namespace std;
const int N = 1020;
int n;
int g[N][N];//標記數組
int a[N][N];//儲存數組
int dx[] = { -1,0,1,0 };
int dy[] = { 0,1,0,-1 };
bool st[N][N];
void dfs(int x, int y)
{
? ? for (int i = 0; i < 4; i++)
? ? {
? ? ? ? int a = x + dx[i], b = y + dy[i];
? ? ? ? /* cout << "經過" << a << "," << b << endl;*/
? ? ? ? if (a < 1 || a > n || b < 1 || b > n)
? ? ? ? {
? ? ? ? ? ? continue;
? ? ? ? }
? ? ? ? if (g[a][b] !=0)
? ? ? ? ? ? continue;
? ? ? ? if (st[a][b])
? ? ? ? {
? ? ? ? ? ? continue;
? ? ? ? }
? ? ? ? st[a][b] = true;
? ? ? ? g[a][b] = 1;
? ? ? ? dfs(a, b);
? ? ? ? st[a][b] = false;
? ? }
}
int main()
{
? ? cin >> n;
? ? for (int i = 1; i <= n; i++)
? ? {
? ? ? ? for (int j = 1; j <= n; j++)
? ? ? ? {
? ? ? ? ? ? cin >> g[i][j];
? ? ? ? ? ? a[i][j] = g[i][j];
? ? ? ? }
? ? }
? ? for (int i = 1; i <= n; i++)
? ? {
? ? ? ? for (int j = 1; j <= n; j++)
? ? ? ? { ? ? ? ? ?
? ? ? ? ? ? if (i == 1 && g[i][j] == 0 || j == 1 && g[i][j] == 0||i == n && g[i][j] == 0 || j == n && g[i][j] == 0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? st[i][j] = true;
? ? ? ? ? ? ? ? g[i][j] = 1;
? ? ? ? ? ? ? ? dfs(i, j);
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ??
? ? for (int i = 1; i <= n; i++)
? ? {
? ? ? ? for (int j = 1; j <= n; j++)
? ? ? ? {
? ? ? ? ? ? if (g[i][j] == 0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? a[i][j] = 2;
? ? ? ? ? ? }
? ? ? ? ? ? cout << a[i][j]<<" ";
? ? ? ? }
? ? ? ? cout << endl;
? ? }
? ? return 0;
}
B2129
#include<map>
#include<vector>
#include<iostream>
#include<math.h>
#include<algorithm>
#include<string>
using namespace std;
const int N = 5e6;
int main()
{
? ? double a,b,c,m1,m2,m3;
? ? cin >> a >> b >> c;
? ? double m;?
? ? m1 = max(a, b);
? ? m1 = max(m1, c);
? ? m2 = max(a + b, b);
? ? m2 = max(m2, c);
? ? m3 = max(a, b);
? ? m3 = max(m3, b + c);
? ?
? ? m = 1.0*m1 / (m2 * m3);
? ??
? ? printf("%.3f", m);
? ? return 0;
}
P1605
#include<map>
#include<vector>
#include<iostream>
#include<math.h>
#include<algorithm>
#include<string>
using namespace std;
const int N = 20;
int g[N][N];
int n, m, t;
int sx, sy, fx, fy;
int dx[] = { -1,0,1,0 };
int dy[] = { 0,1,0,-1 };
int ans = 0;
bool st[N][N];
void dfs(int x,int y)
{
? ? for (int i = 0; i < 4; i++)
? ? {
? ? ? ? int a = x + dx[i], b = y + dy[i];
? ? ? ??
? ? ? ? if (a == fx && b == fy)
? ? ? ? {
? ? ? ? ? ? ans++;
? ? ? ? ? ??
? ? ? ? ? ? continue;
? ? ? ? }
? ? ? ? if (a < 1 || a > n || b < 1 || b > m)
? ? ? ? {
? ? ? ? ? ? continue;
? ? ? ? }
? ? ? ? if (g[a][b] !=1)
? ? ? ? ? ? continue;
? ? ? ? if (st[a][b])
? ? ? ? {
? ? ? ? ? ? continue;
? ? ? ? }
? ? ? ? st[a][b] = true;
? ? ? ? dfs(a, b);
? ? ? ? st[a][b] = false;
? ? }
}
int main()
{
? ? cin >> n >> m >> t;
? ? cin >> sx >> sy >> fx >> fy;
? ? for (int i = 1; i <= n; i++)
? ? {
? ? ? ? for (int j = 1; j <= m; j++)
? ? ? ? {
? ? ? ? ? ? g[i][j] = 1;
? ? ? ? }
? ? }
? ? while (t--)
? ? {
? ? ? ? int a, b;
? ? ? ? cin >> a >> b;
? ? ? ? if (a == fx && b == fy)
? ? ? ? {
? ? ? ? ? ? cout << 0;
? ? ? ? ? ? return 0;
? ? ? ? }
? ? ? ? g[a][b] = 0;
? ? }
? ? st[sx][sy] = true;
? ? dfs(sx, sy);
? ? cout << ans;
? ? return 0;
}