전체 글
-
1366-B, *1300코드포스 2021. 7. 24. 23:01
Problem - 1366B - Codeforces codeforces.com 문제 순열 a1a2...an, (1≤n≤109)에서 ax=1이고 나머지는 0 구간 [l, r] 내의 두 index 값을 한번 바꾼다. ai, aj=aj, ai ~ operation shuffle shuffle 은 m(1≤m≤100)번 수행한다 O(tm) 1이 존재할 수 있는 index 의 왼쪽과 오른쪽 끝을 각각 lp, lp에 저장하자 구간 [l, r]이 주어졌을 때, lp, 혹은 rp가 이 구간에 포함된다면 1을 주어진 구간까지도 옮길 수 있다 1 2 3 4 5 6 7 8 9 10 11 12 1..
-
25-A, *1300코드포스 2021. 7. 24. 22:09
Problem - A - Codeforces codeforces.com 문제 순열 a1a2...an, (3≤n≤100)에서 evenness(홀수 인지 짝수인지)가 다른 원소 하나의 index? O(n) 홀수, 짝수 각각 가장 늦게 나오는 값의 index 를 저장한다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include #define endl "\n" using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0), cout.tie(0); int n; cin >> n; int last_odd..
-
467-B, *1100코드포스 2021. 7. 24. 15:40
Problem - 467B - Codeforces codeforces.com 문제 이진수 집합 {x1, x2,... , xm}, (1≤m≤1000, 1≤n≤20, 1≤xi≤2n−1) 중 xm+1와 각각의 자릿수를 비교했을 때 다른 비트가 k이하인 원소의 개수는? O(mn) 정도 알고리즘은 통과할 수 있다 O(mn) 두 이진수 a, b에서 자리수는 같은 데 다른 비트의 수는 a^b에서 1인 bit 수를 세면 된다 O(log a^b) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20..
-
1327-A, *1100코드포스 2021. 7. 24. 14:21
Problem - 1327A - Codeforces codeforces.com 문제 t(1≤t≤105)번의 test case 로 구성되어 있다 n(1≤n≤107)이 서로다른 k(1≤k≤107)개의 홀수 자연수의 합이 될 수 있나? ~ ! ! 가 O(log n) 정도의 알고리즘이면 통과할 수 있다 O(t) k가 주어졌을 때 ! 가 가능한 n들의 집합을 구하자 서로 다른 k개의 홀수 자연수 합의 최소값은 k∑i=1(2i−1)=k2⇒n≥k2 또한, $$\mathrm{Sum\ of\ k\ odd\ number} = \left. \begin{ca..
-
1335-C, *1100코드포스 2021. 7. 23. 21:27
Problem - 1335C - Codeforces codeforces.com 문제 n(1≤n≤2⋅105)개의 수 중 일부를 사용하여 크기가 같은 두 개의 집합 A, B을 구성한다, |A|=|B| A에는 같은 수가 들어가면 안된다 B에는 같은 수만 들어가야 한다 |A|=|B|를 최대로 구성할 때 집합의 크기는? O(nlog n) 정도의 알고리즘은 통과할 수 있다 O(nlog n) 수의 개수를 세서 map에 보관하자 O(nlog n) 값 3 5 7 8 개수 1 2 3 4 =maxval i) $\math..
-
368-B, *1100코드포스 2021. 7. 23. 16:24
Problem - 368B - Codeforces codeforces.com 문제 배열 a=a1a2⋅⋅⋅an, (1≤n≤105)에 대해 alal+1⋅⋅⋅an 중 서로 다른 수가 몇 개인지 m(1≤m≤105)번 출력 O(nlog n) 정도의 알고리즘은 통과할 수 있다 O(log n!) 가장 큰 l부터 답을 구하여 배열 arr[l]에 기록한다 an을 set s 에 삽입한다. 그러면 O(log s.size) ans[n]=s.size an−1을 set s 에 삽입한다. 그..
-
313-B, *1100코드포스 2021. 7. 23. 15:44
Problem - 313B - Codeforces codeforces.com 문제 문자열 s=s1s2⋅⋅⋅sn, (2≤n≤105)에 대해 si=si+1인 i∈[l, r)의 개수를 m(1≤m≤105)번 출력 O(nlog n) 알고리즘은 통과할 수 있다 O(n) prefix sum 을 이용한다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include #define endl "\n" using namespace std; string s; int prefix_sum[100001] {}; int mai..
-
456-A, *1100코드포스 2021. 7. 23. 14:21
Problem - 456A - Codeforces codeforces.com 문제 비싼데 더 구린 노트북이 있나? O(nlog n) 정도 알고리즘은 통과가능하다 O(nlog n) 가격을 기준으로 sort 하고 O(nlog n) 낮은 가격부터 2개씩 비교하면서 비싼데 더 구린 노트북이 있는지 본다 O(n) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include #define endl "\n" using namespace std; vector v; int main() { ios::sync_with_stdio(false); cin.tie(0), cout.tie(0); int ..