標籤:style http color os io ar for sp amp
題目連結:Codeforces 461C Appleman and a Sheet of Paper
題目大意:就是一個疊被子的過程,穿插著詢問一段區間上被子的單位厚度。
解題思路:用首碼和數組類比即可。因為對於折超過一半的處理為將令一半疊上來,所以需要變數記錄當前被子的正反狀態。處理好下標關係即可。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1e6+5;int N, Q, W[maxn];int main () { scanf("%d%d", &N, &Q); for (int i = 1; i <= N; i++) W[i] = i; bool flag = false; int k, l, r; int n = N, bw = 0; while (Q--) { scanf("%d%d", &k, &l); if (k == 1) { if (l > n - l) { flag = !flag; l = n - l; } if (flag) { for (int i = 0; i < l; i++) W[bw + n - l - i] += N - W[bw + n - l + i]; } else { bw += l; for (int i = 0; i < l; i++) W[bw + i] -= W[bw - i]; } n -= l; } else { scanf("%d", &r); if (flag) { int tmp = n - r; r = n - l; l = tmp; } printf("%d\n", W[bw + r] - W[bw + l]); } } return 0;}
Codeforces 461C Appleman and a Sheet of Paper(類比)