概述
protected
方法的调用是否合法(编译是否通过),关键是要看 调用者所在的类与被调用的protected
方法所在的类是否在相同的包下,若相同,则合法;否则,不合法。- 在子类内部,任何情况下都可以访问父类的
protected
方法
栗子
1 | // pacakge p1; |
更有趣的栗子
### $\text{栗}_1$1 | // package p1; |
博客已迁移至 https://me.guanghechen.com/posts/
protected
方法的调用是否合法(编译是否通过),关键是要看 调用者所在的类与被调用的 protected
方法所在的类是否在相同的包下,若相同,则合法;否则,不合法。protected
方法1 | // pacakge p1; |
1 | // package p1; |
设 $Y$ 是随机变量 $X$ 的连续函数:$Y=g(X)$
【定义1】 由 $m\times n$ 个数 $a_{ij}(i=1,2,\cdots,m;j=1,2,\cdots,n)$ 有序地排成 $m$ 行 $n$ 列的数表
\begin{align}
\left(\begin{matrix}
a_{11} & a_{12} & \cdots & a_{1n} \
a_{21} & a_{22} & \cdots & a_{2n} \
\vdots & \vdots & & \vdots \
a_{m1} & a_{m2} & \cdots & a_{mn} \
\end{matrix}\right)
\end{align} 称为一个 $m$ 行 $n$ 列的矩阵,简记为 $(a_{ij})_{m\times n}$
【定义1】 $n$ 级排列 $i_1i_2\cdots i_n$ 的逆序数记为 $\tau(i_1i_2\cdots i_n)$。
比如,$\tau(123)=0$,而 $\tau(321)=3$,因为 32,31,21 是逆序,共 3 对。
【定理1】 若互换排列 $i_1i_2\cdots i_n$ 中两个数 $i_x$ 和 $i_y$ 的位置(不妨假设 $x<y$),则
$$\tau(i_1i_2\cdots i_x\cdots i_y\cdots i_n) \not\equiv \tau(i_1i_2\cdots i_y\cdots i_x\cdots i_n) \mod 2 \tag{1}$$
- 当 $y=x+1$ 时,也就是相邻两个数进行对换,由于和其它数的相对顺序没有发生改变;此时 定理1 成立
- 当 $y=x+k$ (其中 $k>1$ 且 $k \in Z^+$)时,可以理解成:
不难发现这样交换的结果和直接让 $i_x$ 和 $i_y$ 交换是一样的,相当于进行了 $(y-x)+(y-1-x)=2\times(y-x)-1$ 次相邻交换,而每次相邻交换 $\tau$ 的奇偶性都会发生改变(前述已经证明),故等价于 $(2\times(y-x)-1)\mod 2$ 次相邻交换
综上,即可证明 定理1
1 | border-radius: 5px; /* 四个角的半径均为 5px 的圆角 */ |
border-radius
时,需要给边框设置宽度和高度border-radius
画实心圆,只要满足:height=width, border-radius=$\frac{1}{2} \times $width。Nim 游戏是组合游戏中的经典游戏,描述如下:
有 $n$ 堆石子,第 $i$ 堆有 $x_i$ 颗石子。$A$、$B$ 两人轮流取石子,每次仅能选择一堆不为空的石子进行操作:取走至少一颗石子。不能操作的人输。
关于 Nim 游戏有一个著名的结论:当且仅当 $x_1\oplus x_2\oplus\cdots\oplus x_n=0$ 时,先手获胜;否则后手胜。
证明很简单,当 $X=x_1\oplus x_2\oplus\cdots\oplus x_n\neq 0$ 时,设 $X$ 的二进制最高位为 $k$,那么一定存在一个 $x_i$ 其第 $k$ 位为 1。我们只需要从第 $i$ 堆石子中取走 $X\oplus x_i$ 个(显然,$X\oplus x_i < x_i$,所以此操作是有效的),那么新的游戏状态下:$x_1\oplus x_2\oplus\cdots(x_i\oplus X)\oplus x_n=X\oplus X=0$。
事实上,这也是构造 Nim 游戏方案的方法。
由于网络流问题难点在于建模,实现网络流的代码几乎可以不变,为此,特将下文中将会多次使用到的代码给罗列出来。
1 | namespace ISAP {/*{{{*/ |
1 | namespace Dinic {/*{{{*/ |
1 | namespace MCMF {/*{{{*/ |
1 | inline int read() {/*{{{*/ |
对于有向图 $G=(V,E)$,其中 $V$ 为 $G$ 的点集,$E$ 为 $G$ 的边集。
有两个序列:$\displaystyle \big\lbrace a_1, a_2, \cdots, a_n \big\rbrace$,$\displaystyle \big\lbrace b_1, b_2, \cdots, b_n \big\rbrace$
有两种操作:
数据范围:$1\leqslant n\leqslant 10^5$,$3\times 10^6$ 次询问,强制在线。