#BOJ 1074 Z
1898 ワード
Z 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
0.5 초 (추가 시간 없음) 512 MB 39739 13664 10233 36.946%
質問する
1つの数の大きさは2 Nです× 2 Nの2次元配列をZ形状として探索する.たとえば、2×2左上、右上、左下、右下の順にアクセスしてZ形に並べます.
N>1の場合、アレイサイズは2 N-1× 2 N−1,4は等分後に再帰的にアクセスする.
次の例は22です.× アクセス22のサイズ配列の順序です.
Nが与えられた場合、プログラムを記述し、r行c列に何回目のアクセスを出力する.
以下に、N=3の場合の例を示す.
入力
第1行は整数N,r,cを与える.
しゅつりょく
数回目のアクセスr行c列を出力します.
制限
1 ≤ N ≤ 15
0 ≤ r, c < 2N
入力例1
2 3 1
サンプル出力1
11
入力例2
3 7 7
サンプル出力2
63
入力例3
1 0 0
サンプル出力3
0
入力例4
4 7 7
サンプル出力4
63
入力例5
10 511 511
サンプル出力5
262143
入力例6
10 512 512
サンプル出力6
786432
インプリメンテーション
#include <bits/stdc++.h>
using namespace std;
int func(int n, int r, int c)
{
if (n == 0) return 0;
int half = 1 << n-1;
if (r < half && c < half) return func(n - 1, r, c);
if (r<half && c>=half) return half * half + func(n - 1, r, c - half);
if (r >= half && c < half) return 2 * half * half + func(n - 1, r - half, c);
if (r >= half && c >= half) return 3 * half * half + func(n - 1, r - half, c - half);
}
int main()
{
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, r, c;
cin >> n >> r >> c;
cout << func(n, r, c);
return 0;
}
Reference
この問題について(#BOJ 1074 Z), 我々は、より多くの情報をここで見つけました
https://velog.io/@versatile0010/BOJ-1074-Z
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
0.5 초 (추가 시간 없음) 512 MB 39739 13664 10233 36.946%
#include <bits/stdc++.h>
using namespace std;
int func(int n, int r, int c)
{
if (n == 0) return 0;
int half = 1 << n-1;
if (r < half && c < half) return func(n - 1, r, c);
if (r<half && c>=half) return half * half + func(n - 1, r, c - half);
if (r >= half && c < half) return 2 * half * half + func(n - 1, r - half, c);
if (r >= half && c >= half) return 3 * half * half + func(n - 1, r - half, c - half);
}
int main()
{
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, r, c;
cin >> n >> r >> c;
cout << func(n, r, c);
return 0;
}
Reference
この問題について(#BOJ 1074 Z), 我々は、より多くの情報をここで見つけました https://velog.io/@versatile0010/BOJ-1074-Zテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol