ABC201F Insertion Sort
题意有一个长度为 $n$ 的排列 $p_i$,你可以执行以下操作任意次:将数字 $x$ 移动到任意一个位置,花费 $A_x$将数字 $x$ 移动到开头,花费 $B_x$将数字 $x$ 移动到结尾,花费 $C_x$求排序最小代价。$n \leq 2 \times 10^5$。题解首先 $B_x,C_x$ 都要和 $A_x$ 取 $\min$。手动模拟一下,我们先固定一些不动的数 $a_1,a_...
题意有一个长度为 $n$ 的排列 $p_i$,你可以执行以下操作任意次:将数字 $x$ 移动到任意一个位置,花费 $A_x$将数字 $x$ 移动到开头,花费 $B_x$将数字 $x$ 移动到结尾,花费 $C_x$求排序最小代价。$n \leq 2 \times 10^5$。题解首先 $B_x,C_x$ 都要和 $A_x$ 取 $\min$。手动模拟一下,我们先固定一些不动的数 $a_1,a_...
A. 跳石头首先我们观察一下青蛙是怎么跳的:对于一个断点 $(i,i+1)$,如果有 $x$ 只青蛙往左跳,那么一定有 $x$ 只青蛙往右跳,所以 $a_i$ 一定是偶数。并且我们发现从 $a_i$ 到 $a_{i+1}$,变化的只可能是 $i+1$ 这一个青蛙,也就是有 $|a_i-a_{i+1}| \in \{0,2,-2\}$。我们考虑 $a_i$ 到 $a_{i+1}$ 的变化:如果...
A假设 $a \geq b$树状数组分开维护就好了。#include <bits/stdc++.h> #define fi first #define se second #define db double #define U unsigned #define P std::pair<int,int> #define LL long long #define pb ...
感觉是普及组模拟赛。。A手玩,发现 $n =2$ 很特殊:因为谁先手谁就能赢。读入这么大,肯定之和数的性质有关,由于这是 NOIP 模拟赛,猜一发奇偶性。当 $n$ 为偶数时:黑妞必胜。(等价于有最大的牌的人必胜)黑妞后手时:先手出 $i$ 他跟 $i+1$,一直到对手只剩一张牌的时候出最大的牌,然后就可以跑了。(即使中间用了最大的牌也没关系:因为这样等价于化为了 $n-2$ 的子问题)黑妞...
我们把树状数组由一维扩展到二维。二维树状数组的定义是: $C[x][y] = \sum A[i][j]$,其中 $x - lowbit(x) + 1 \leq i \leq x$ $y - lowbit(y) + 1 \leq j \leq y$ 所以我们就可以很方便的写出来单点修改和查询 $(1,1)$ 到 $(x,y)$ 的和的代码了: inline void add(int x,int...