题意:给定两个长为 n ( 1 ≤ n ≤ 5 × 1 0 5 ) n(1\leq n\leq 5\times 10^5) n(1≤n≤5×105) 的序列 a i , b i a_i,b_i ai,bi ,有 m ( 1 ≤ m ≤ 5 × 1 0 5 ) m(1\leq m\leq 5\times 10^5) m(1≤m≤5×105) 次询问,每次询问给定 i , j i,j i,j ,问 { a 1 , a 2 , ⋯ , a i } \{a_1,a_2,\cdots,a_i\} {a1,a2,⋯,ai} 和 { b 1 , b 2 , ⋯ , b j } \{b_1,b_2,\cdots,b_j\} {b1,b2,⋯,bj}两个集合是否相等。
思路:可以用哈希做。哈希有两种,一种是和前后顺序有关的有序哈希,公式是 h ( i ) = ∑ j = 1 i a j × b a s e i − j h(i)=\sum_{j=1}^i{a_j\times base^{i-j}} h(i)=∑j=1iaj×basei−j ,完全相等取决于每个位置上的元素都相等;另一种是和前后顺序无关的无序哈希,公式是 h ( i ) = ∑ j = 1 i f ( a j ) , f ( x ) h(i)=\sum_{j=1}^i{f(a_j)},f(x) h(i)=∑j=1if(aj),f(x) 为多项式,完全相等只取决于和下标内的元素多项式值之和。
这道题我们只关注每个数第一次出现的位置。这里用的是无序哈希,使用 ULL 自然溢出。
ULL sa[N], sb[N];
ULL f(ULL x){
return 10 + 17 * x * x + 29 * x * x * x * x * x;
}
AC代码:http://oj.daimayuan.top/submission/322987
题意:
思路:这种三个格子确定矩形上第四个格子的模型容易想到学过的二分图,然后就是抄题解的结论了( 。二分图的生成树计数。
AC代码:http://oj.daimayuan.top/submission/323132
题意:小明和小红经常玩一个博弈游戏。给定一个 n × n n×n n×n 的棋盘,一个石头被放指定位置。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。
假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?
题解:(黑白染色) 代码源每日一题 Div1 谁才是最终赢家?
思路:打表找规律。题解有证明。
AC代码:http://oj.daimayuan.top/submission/323459
题意:给一个图表,图表是一个直方图,n列的高度分别为 a 1 , a 2 , … , a n ( a 1 ≥ a 2 ≥ a 3 . . . . ≥ a n ) a_1,a_2,…,a_n(a_1≥a_2≥a_3....≥a_n) a1,a2,…,an(a1≥a2≥a3....≥an),你有许多大小为 1 × 2 1×2 1×2 的多米诺骨牌(可以旋转),不重叠最多可以放置多少个呢
思路:黑白染色,答案就是黑白数量的最小值。