
겨울학교에서 풀었던 문제 깔끔하게 날로 먹었다 원래는 2차원 세그트리로 접근해야 하는 문제이지만, 묻는것이 그냥 누적합이기 때문에 2차원 펜윅 트리를 사용해서도 해결할 수 있고, 나는 펜윅으로 해결했다. www.acmicpc.net/problem/11658 11658번: 구간 합 구하기 3 첫째 줄에 표의 크기 N과 수행해야 하는 연산의 수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 www.acmicpc.net 펜윅 설명은 다른 수많은 분들이 더 깔끔하게 해주실거라 믿는다. ㅎㅎ #include typedef long long int ll; ll fenwick[2048][2048..

map의 특성을 이용해보려고 했는데 뇌절친거같다..... 최대한 가독성있게 만들어보았다 그래도... #include #include #include #include #include using namespace std; map m; vector v; int main(){ int n; string tmp; cin >> n; for(int i=0; i> tmp; if(m.find(tmp) == m.end()) m.insert({tmp,1}); else m[tmp]++; } for(auto it=m.begin(); it!=m.end(); it++) v.push_back({-it->second, it->first}); sort(v.begin(), v.end()); cout

https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 바로앞에 풀었던 큐랑 큰 차이는 없다 그냥 보기좋게 구현해봄 #include #include #include std::deque d; int main(){ int n,t; char s[20]; scanf("%d", &n); for(int i=0; i

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 간단한 문제라 stl써서 간단히 구현하려했는데 의외로 막혔던문제 #include #include #include std::queue q; char input[10] = {0}; int main(){ int n,t; scanf("%d", &n); for(int i=0; i