목록공부/알고리즘 (31)
pizzaroot
각 \(x\)좌표에 대해서 가능한 \(y\)의 개수를 더해주면 된다. \([-L,-1]\), \(0\), \([1,h]\), \([h + 1,L]\) 4개의 구간 각각 식을 세워서 계산하면 된다. #include #define PRECISION 0.5 using namespace std; typedef long long ll; int main() { ios::sync_with_stdio(0); cin.tie(0); ll w, h, L, ans = 0; cin >> w >> h >> L; for (ll i = 1; i
All the non-blurred pixels are connected in such a way that any horizontal or vertical line drawn between two non-blurred pixels goes only through non-blurred pixels. 4개의 위치 (a, b) (a, d) (c, b) (c, d)가 채워져 있으면 이 4개의 위치에 해당되는 정사각형은 모두 채워져 있다는 사실을 알 수 있다. 이제 정답에 대해 parametric search를 하면 된다. \(O(N\log N)\) #include using namespace std; typedef pair pi; int main() { ios::sync_with_stdio(0); cin.tie..
하라는 대로 하면 된다.
예비소집을 한 덕분에 A번이 가장 쉽다는 강한 확신을 가질 수 있었다. 예선이 시작되자마자 A번을 보려고 했는데 서버가 터져서 문제를 로딩하는데 1분이 걸린 다른 팀원 컴퓨터로 문제를 본 후 2분에 내가 풀었다. 나는 그다음으로 B를 봤는데 문제가 읽기 싫어서 D를 봤다. D를 아이디어를 생각하다가 코포 스타일인 J번을 발견한 팀원 말을 듣고 J번을 갔다. 나는 사실 별생각 없었는데 소인수분해를 해야 될 거 같다는 팀원 말을 듣고 사실 나는 코포 스타일이라고 확신해서 J를 98분에 내가 풀었다. 그다음으로 사실 나는 한 게 없다. 어쩌다 보니 본선 진출을 했다. 본선은 사실 내가 수학을 맡기로 했는데 그래서 0솔했다. 대회 직전에 FFT를 공부하고 갔는데 모든 모듈로가 998244353여서 뻘짓 했다. ..
https://www.acmicpc.net/problem/23756 나도 사볼 입문 해볼까
https://www.acmicpc.net/problem/23630 D번이라서 어렵게 생각해서 못 풀었는데 자고 일어나니까 왜 실버? 그래서 다시 생각해보니까 각 비트 별로 1의 개수 세주면 되는 거였네? 블로그니까 이렇게 그림을 넣어주면 더 좋아 보이겠지? https://www.acmicpc.net/source/35648413
https://www.acmicpc.net/problem/1918 풀고 나서 보니 자료구조 어쩌고 쓰여있는데 난 그게 뭔지 모르겠고 ㅋㅋ 거짓말 아니고 진짜 아직 안 배워서 모른다 그래서 재귀로 구현했다 ㄹㅇㅋㅋ 오른쪽에서 왼쪽으로 문자열을 훑으면서 연산자의 왼쪽과 오른쪽으로 쪼개는 방식이다 https://www.acmicpc.net/source/35637534 이왜맞?
https://www.acmicpc.net/problem/16953 더보기 연산을 하면 무조건 수는 커진다 더보기 거꾸로 생각해보자 더보기 A → B로 가는 방법은 2가지지만 B → A로 가는 방법은 결정되어있다. B가 짝수인 경우: B를 2로 나눈다 B를 10으로 나눈 나머지가 1인 경우: B를 10으로 나눈다 (몫 연산) 나머지 경우: 만들 수 없다 https://www.acmicpc.net/source/35633177
https://www.acmicpc.net/problem/23629 그냥 문자열 귀찮은 구현 좀 하면 됨 ㅋㅋ char *digits[10]; void assign() { digits[0] = "ZERO"; digits[1] = "ONE"; digits[2] = "TWO"; digits[3] = "THREE"; digits[4] = "FOUR"; digits[5] = "FIVE"; digits[6] = "SIX"; digits[7] = "SEVEN"; digits[8] = "EIGHT"; digits[9] = "NINE"; } int main() { assign(); return 0; } 일단 다행히도 앞에 세 개가 같은 서로 다른 두 숫자는 없다 ㅋㅋ 그래서 #include #include char s..
https://www.acmicpc.net/problem/23628 입력을 딱 보니까 입력할 정수가 6개인 거 실화냐? 평소처럼 귀찮으니까 int y1, m1, d1, y2, m2, d2; 이렇게 하려다가 내가 학교에서 배운 구조체가 떠올라서 typedef struct date { int y, m, d; } DATE; int main() { DATE s, e; return 0; } 요렇게 함 ㅋ 근데 막상 입력을 받으려니까 #include typedef struct date { int y, m, d; } DATE; int main() { DATE s, e; scanf("%d%d%d", &s.y, &s.m, &s.d); scanf("%d%d%d", &e.y, &e.m, &e.d); return 0; } 이..