【THUSC2017】杜老师 题解

题目大意

  给定 L,RL,R,求从 LLRR 的这 RL+1R-L+1 个数中能选出多少个不同的子集,满足子集中所有的数的乘积是一个完全平方数。特别地,空集也算一种选法,定义其乘积为 11

  多测,T100T \leq 100
  1LR107,  i=1TRiLi+16×1071 \leq L \leq R \leq 10^7,\ \ \sum_{i=1}^T R_i-L_i+1 \leq 6 \times 10^7
  5s

【THUSC2017】大魔法师 题解

题目大意

  维护三个长度为 nn 的序列 A,B,CA,B,C,支持以下 7 种操作:(操作数为 mm

  • 1 l r1\ l\ r:对 [l,r][l,r]AiAi+BiA_i \gets A_i+B_i
  • 2 l r2\ l\ r:对 [l,r][l,r]BiBi+CiB_i \gets B_i+C_i
  • 3 l r3\ l\ r:对 [l,r][l,r]CiCi+AiC_i \gets C_i+A_i
  • 4 l r v4\ l\ r\ v:对 [l,r][l,r]AiAi+vA_i \gets A_i+v
  • 5 l r v5\ l\ r\ v:对 [l,r][l,r]BiBivB_i \gets B_i \cdot v
  • 6 l r v6\ l\ r\ v:对 [l,r][l,r]CivC_i \gets v
  • 7 l r7\ l\ r:求 i=lrAi, i=lrBi, i=lrCi\sum_{i=l}^r A_i,\ \sum_{i=l}^r B_i,\ \sum_{i=l}^r C_i,在模 998244353998244353 意义下。

  n,m2.5×105, 0Ai,Bi,Ci<998244353n,m \leq 2.5 \times 10^5,\ 0 \leq A_i,B_i,C_i < 998244353
  5s

真·O(n^3) 的非递归的 KM

由来

  2019 年南京 Regional 充分暴露了这个问题,市面上大多数标着 O(n3)O(n^3) 的 KM 板子实际上是 O(n4)O(n^4) 的,以致选手如果是用了经典书籍上的板子,或者是网上随便扒的板子,就会 TLE。
  然后最近做题做到了 KM,就想补一个自己的真·O(n3)O(n^3) 的 KM。网上的 O(n3)O(n^3) 也都没有教程只能自己啃代码,就想把思路写一下。
  大二了才会 KM 你丢不丢人

【Goodbye Jihai】【UOJ#497】新年的复读机 题解

题目大意

  有一个长度为 nn 的数组 a1,,ana_1,\cdots,a_n,每次选相邻的两个数 ai,ai+1a_i,a_{i+1},花费代价 ai+ai+1a_i+a_{i+1} 把它们合并成 gcd(ai,ai+1)\gcd(a_i,a_{i+1})。求把整个序列合并起来的最小代价。

  n2×105, 1ai1012n \leq 2 \times 10^5,~1 \leq a_i \leq 10^{12}
  2s

【Pre-Finals 2016, Kent Nikaido Contest A】Tetris Puzzle 题解

题目大意

  你有无限个这种 S 型的牌(一开始都如左上角那样放置),每次你可以选择一张牌,将其 Rotate,或将其 Flip,或将其放入一个 N×NN \times N 的棋盘。棋盘上不能有牌重叠,被操作过的牌最后都必须放入棋盘。

  你有一个计数器,每当执行 Rotate 或 Flip 操作的时候,计数器会加 11
  现在给你最终的棋盘状态(01 矩阵,表示每个格子有没有被覆盖),求计数器的奇偶性。(保证奇偶性唯一)

  N50N \leq 50

【Pre-Finals 2016, NTU Contest D】Drawing Hell 题解

题目大意

  平面上有 nn 个点,两人轮流博弈。每人每回合画一条线段连接两个点,不能在端点外的地方穿过已画的线段或其他端点。不能操作者输。问先手必胜或必败。

  n,xi,yi1000n,|x_i|,|y_i| \leq 1000,可以三点共线,没有重点。
  多测,T1000T \leq 1000
  2s

【2019icpc Regional 南昌 B】A Funny Bipartite Graph 题解

题目大意

  给定一幅 nn 个点的二分图。左边的每个点度数至少为 11 至多为 33,且左边每个点只会连向右边编号大于等于它的点。
  现在你要选择一些边,限制如下:

  • 右边的每一个点都要被覆盖到;
  • 有一个 01 矩阵 An×nA_{n\times n},若 Ai,j=1A_{i,j}=1 则表示左边第 ii 个点和第 jj 个点不能同时被覆盖到;
  • 对于左边的每一个点,如果它没被覆盖到则代价为 00,否则代价为 MidiM_i^{d_i},其中 did_i 表示被它覆盖了多少次。满足上面两条的情况下要使得代价最小。

  求最小代价,或输出无解。

  n18, 1Mi100n \leq 18,~1 \leq M_i \leq 100
  多测,T10T \leq 10
  1s

【Ynoi2016】【bzoj4939】掉进兔子洞 题解

题目大意

  一个长为 nn 的序列 aa
  有 mm 个询问,每次询问三个区间,把三个区间中同时出现的数一个一个删掉,问最后三个区间剩下的数的个数和,询问独立。
  注意这里删掉指的是一个一个删,不是把等于这个值的数直接删完,
  比如三个区间是 [1,2,2,3,3,3,3][1,2,2,3,3,3,3][1,2,2,3,3,3,3][1,2,2,3,3,3,3][1,1,2,3,3][1,1,2,3,3],就一起扔掉了 1 个 11,1 个 22,2 个 33

  n,m105, 1ai109n,m \leq 10^5,~1 \leq a_i \leq 10^9
  3s,512M

2019ICPC沈阳捡漏记

从南京回来

  从南京回来,我们就二连银了。
  我们互相说得最多的就是:“求求你做个人吧!”
  做个人,别演了,题要读要沟通,数据范围要看,智商在线一点,我不信我们连金牌队都不是。
  心好累的,不敢奢望什么校排、出线啥的,至少先把金保了,帮队友保个研。

【XVII Open Cup E.V. Pankratiev. Grand Prix of Europe. D】Dancing Disks 题解

题目大意

  有一个 6×66 \times 6 的网格图,每个格子上有一根柱子。
  现在有 nn 个盘子套在 (1,1)(1,1) 的柱子上,自底向上分别为 a1,a2,,ana_1,a_2,\cdots,a_n(构成一个大小为 nn 的排列)。
  每次操作你可以选择一根柱子,将其最上面的连续若干个盘子拿起,往下走一格或往右走一格。
  请构造一种方案使得盘子最后有序套在 (6,6)(6,6)(自底向上是 n,n1,,1n,n-1,\cdots,1)。

  n40000n \leq 40000

【XVII Open Cup E.V. Pankratiev. Grand Prix of Europe. L】Lost Logic 题解

题目大意

  有 nn 个布尔变量 x1,,xnx_1,\cdots,x_n,在一组约束下恰好有三种赋值方式。
  约束是形如 xixjx_i \to x_j 这样,xix_i 可以是 !xi!x_ixjx_j 可以是 !xj!x_j
  现给出这三种赋值方式,请构造出一组约束。

  n50n \leq 50,你构造的约束数量 500\leq 500