結果
| 問題 |
No.2393 Bit Grid Connected Component
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-07-31 15:55:37 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 2,089 bytes |
| コンパイル時間 | 1,922 ms |
| コンパイル使用メモリ | 186,220 KB |
| 実行使用メモリ | 85,156 KB |
| 最終ジャッジ日時 | 2024-10-10 09:12:42 |
| 合計ジャッジ時間 | 5,802 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 9 TLE * 1 -- * 10 |
ソースコード
#include<bits/stdc++.h>
#define rep(i, n) for(ll i = 0; i < ll(n); i++)
#define nrep(i, n) for(ll i = 1; i < ll(n + 1); i++)
#define rrep(i, n) for(ll i = ll(n) - 1; i >= 0; i--)
#define all(x) (x).begin(), (x).end()
#define SIZE 2e5
#define INF 2e18
constexpr long long MOD = 1e9 + 7;
using namespace std;
typedef long long ll;
typedef vector<int> iv;
typedef vector<ll> lv;
typedef vector<bool> bv;
typedef pair<ll, ll> ip;
typedef vector<ip> pv;
typedef vector<iv> ivv;
typedef set<int> ist;
typedef set<ll> lst;
typedef map<int, int> imp;
typedef map<ll, ll> lmp;
ll gcd(ll a, ll b) {
return b ? gcd(b, a % b) : a;
}
ll lcm(ll a, ll b) {
return a / gcd(a, b) * b;
}
ll digsum(ll n) {
ll res = 0;
while (n > 0) {
res += n % 10;
n /= 10;
}
return res;
}
ll pow(ll x, ll n) {
ll ans = 1;
while (n) {
if (n % 2) ans *= x;
x *= x;
n >>= 1;
}
return ans;
}
map<ll, ll> numeric_component(ll N) {
map<ll, ll> res;
for (ll i = 2; i * i <= N; i++) {
if (N % i != 0) continue;
while (N % i == 0) {
res[i]++;
N /= i;
}
}
if (N != 1) res[N]++;
return res;
}
iv dx = {-1, 0, 1, 0};
iv dy = {0, -1, 0, 1};
struct edge {
int from, to, length;
};
void print(iv &a) {
for (auto v : a) cout << v << ' ';
cout << endl;
}
bool isblack(int x, int y) {
return x & (1 << y);
}
int main() {
int T; cin >> T;
// cout << isblack(2, 0) << endl;
while(T--) {
int x, y; cin >> x >> y;
queue<ip> q; q.push({x, y});
set<ip> checked; checked.insert({x, y});
while(!q.empty()){
auto iter = q.front(); q.pop();
rep(i, 4){
auto newx = iter.first + dx[i], newy = iter.second + dy[i];
if(!isblack(newx, newy)) continue;
if(checked.find({newx, newy}) != checked.end()) continue;
checked.insert({newx, newy});
q.push({newx, newy});
}
}
cout << checked.size() << endl;
}
}