본문 바로가기

전체 글59

2020 IGRUS Newbie Programming Contest 참여 from sys import stdin input = stdin.readline n, m = map(int, input().split()) if m == 1 or m == 2: print("NEWBIE!") elif m=0: print(len(m)-2) else: print(32) B 새로운 언어 CC 19945번: 새로운 언어 CC C언어는 int형 변수를 32개의 bit를 이용하여 2의 보수 방식을 따라서 이진수의 형태로 저장한다. 즉, 정수 10은 0000 0000 0000 0000 0000 0000 0000 1010으로 저장된다. 하지만 세상을 뒤흔들 새로운 언어 CC� www.acmicpc.net from sys import stdin input = stdin.readline N = int(in.. 2020. 9. 27.
XOR과 크기 비교 회로에서 XOR은 위와 같이 그린다. 1비트 크기 비교 * M, N, P = (X == Y), (X > Y), (X < Y) 이다. M = !(X0 ⊕ Y0) N = X0 !Y0 P = !X1 Y1 (or !M * !P) 2비트 크기비교 M = !(X1 ⊕ Y1) * !(X0 ⊕ Y0) N = X1 !Y1 + !(X1 ⊕ Y1) * X0 !Y0 P = !X1 Y1 + !(X1 ⊕ Y1) * !X0 Y0 2020. 9. 23.
Suffix Array와 LCP Array #include using namespace std; typedef long long ll; typedef pair pii; vector suffixArray, LCPArray; void getLCP(vector& sa, vector& lcpa, string& s) { int i, j, k, l = 0, m = 26, sLen = s.length(); sa.resize(sLen, 0); lcpa.resize(sLen, 0); // cnt: radix cnt | x: rank vector cnt(max(sLen, m), 0), x(sLen, 0), y(sLen, 0); for (i = 0; i < sLen; ++i) cnt[x[i] = s[i] - 'a']++; for (i = 0; i < m; ++i) .. 2020. 9. 23.
음수 모듈러 const int MOD = 10007; inline int mod(ll n) { if (n >= 0) return n % MOD; return ((-n / MOD + 1) * MOD + n) % MOD; } blog.naver.com/kks227/220927272165 2020. 9. 21.
Topological Sort #include using namespace std; const int MAX = 10000 + 1; vector adj[MAX]; queue Q; int N, res; int indegree[MAX], cost[MAX], result[MAX]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N; for (int i = 1; i > cost[i]; int K; cin >> K; for (int k = 1; k > p; adj[p].push_back(i); } if (indegree[i] == 0) { Q.push(i); result[i] = cost[i]; res = max(res, result[i]); } } for (int.. 2020. 9. 16.
6일차 2020-09-07 초급 : 17273 카드 공장 (Small) (Bronze II) www.acmicpc.net/problem/17273 17273번: 카드 공장 (Small) 진서는 CTP 카드 공장의 노동자이다. 공장에는 N개의 카드가 있으며 각 카드에는 앞면과 뒷면에 숫자가 쓰여있다. 공장장 노진의 명령에 따라서 진서는 카드를 뒤집어야 한다. 명령은 M번 내려지� www.acmicpc.net from sys import stdin input = stdin.readline n, m = input().split() n = 1 f = True front, back = map(int, input().split()) for i in range(int(m)): k = int(input()) if f: if .. 2020. 9. 15.