【2019 Multi-University 1 B】Operation 题解

题目大意

  有一个长度为 nn 的序列 a1ana_1\cdots a_n,有 mm 个操作,操作有两种:
  0 l r0~l~r:选择 alara_l\cdots a_r 的一个子序列,使得其异或和最大,求该异或和;
  1 x1~xa[++n]=x;
  强制在线。

  数据组数 T10T \leq 10,时限 4s
  n,m5×105,  (n),(m)106,  0x,ai230n,m \leq 5\times 10^5,\ \ (\sum n),(\sum m) \leq 10^6,\ \ 0 \leq x,a_i \leq 2^{30}

【AtCoder Grand 036B】Do Not Duplicate 题解

题目大意

  有一个长度为 nn 的数组 a0,,an1a_0,\cdots,a_{n-1},把它拼 kk 次,得到 a0,,ank1a_0,\cdots,a_{nk-1}
  有一个初始为空的数组 XX,对于 0i<nk0 \leq i < nk,依次进行下面的操作:

  • XX 不含 aia_i,则把 aia_i 加到 XX 的末尾;
  • XX 含有 aia_i,则一直删除 XX 的末尾直至 XX 不含 aia_i

  求最终的 XX 数组。

  n,ai2×105,  k1012n,a_i \leq 2\times10^5,\ \ k \leq 10^{12}

【2019 Wannafly Winter Camp Day5 C】Division 题解

题目大意

  你有一个数列 a1,a2,,ana_1,a_2,\cdots,a_n。你可以进行这样的一次操作,每次选择数列中其中一个数然后将其除 22 下取整,也就是选择一个数 aia_i,变成 ai2\lfloor \frac{a_i}{2} \rfloor
  一共有 qq 个询问,每次你考虑数列中 [l,r][l,r] 这段数,即 al,al+1,al+2,,ara_l,a_{l+1},a_{l+2},\cdots,a_r,对这些数字进行不超过 kk 次操作,这些数字的总和最小值可能是多少。

  1n105, 1q51051 \leq n \leq 10^5,\ 1 \leq q \leq 5*10^5
  1ai109, 0k1091 \leq a_i \leq 10^9,\ 0 \leq k \leq 10^9
  5000 ms,256 MB

【AtCoder Grand 024E】Sequence Growing Hard 题解

题目大意

  求满足以下条件的序列集合 {A0,A1,...,AN}\{A_0,A_1,...,A_N\} 的个数,模 MM

  1. AiA_i 长度为 ii,其中每个元素都是 [1,K][1,K] 内的一个正整数。
  2. 对于 i1i \geq 1AiA_i 是由 Ai1A_{i-1} 在某个位置插入一个数得到的。
  3. 对于 i1i \geq 1AiA_i 字典序大于 Ai1A_{i-1}

  N,K300, M109N,K \leq 300,~M \leq 10^9

【bzoj3864】Hero meet devil 题解

题目大意

  给你一个只由 AGCT 组成的字符串 SS,对于每个 0iS0 \leq i \leq |S|,问有多少个只由 AGCT 组成的长度为 mm 的字符串 TT,使得 LCS(S,T)=iLCS(S,T)=i

  S15, m1000|S| \leq 15,~m \leq 1000

【2018icpc Regional Dhaka G】Techland 题解

题目大意

  有一棵 nn 个点的树,点编号 1,,n1,\cdots,n。有 QQ 次操作,操作有三种类型:
  1 X L R1\ X\ L\ R:公司 XX 在编号属于 [L,R][L,R] 的点上各开一家商店。如果该公司曾经有过商店,则它以前的商店全部清除,只算这次的。
  2 X2\ X:公司 XX 的商店全部清除。
  3 C M P1 P2 ... PM3\ C\ M\ P_1\ P_2\ ...\ P_M:有个人在 CC 号点,他指定了他喜欢的公司为 P1,,PMP_1,\cdots,P_M,你要找到一个离 CC 最近的点,使得这个点有他喜欢的公司开的商店。求这个距离。

  单组数据:n50000, Q105, m105n \leq 50000,\ Q \leq 10^5,\ \sum m \leq 10^5
  10 组数据共 10s。

【codejam2019 Round1A】Golf Gophers 题解

题目大意

  这是一道交互题。
  现在有若干只地鼠,你只知道地鼠数量 M\leq M,你要把这个数量猜出来。
  你有 18 个风扇。每天初始,你给每个风扇设定它的叶片数 bib_i(2 到 18 之间,从 0 开始标号),然后都让 0 号叶片指向正下。接着,每只地鼠独立地、等概率地选择一个风扇,把它的叶片往前拨一位(即原来是 jj 号叶片向下的现在变成 (j+1)modbi(j+1)\bmod b_i 号叶片向下)。
  你告诉电脑 bb 序列,它告诉你这天结束时各风扇指向正下的叶片编号。
  你要在至多 NN 天之内猜出来。

  Task1:N=365,  M=100Task1: N=365,\ \ M=100
  Task2:N=7,  M=106Task2: N=7,\ \ M=10^6

【CF1137D】Cooperative Game 题解

题目大意

  这是一道交互题。
  有这样一个 ρ\rho 型的有向图:

  但是 ttcc 都是未知的。
  你有 10 个棋子一开始在起点(标了房子那个),你要把他们都走到终点(标了棋子的那个)。每一步,你可以任意指定一些棋子,让这些棋子都向前走一步。然后电脑会告诉你,哪些棋子是在同一个格子里的。当你认为你把所有棋子都放到终点了的时候,就可以 end 了。
  你的步数不能超过 3(t+c)3(t+c)
  t+c1000t+c \leq 1000

【CF1137C】Museums Tour 题解

题目大意

  有一幅 nn 个点 mm 条边的有向图,每个点有一个博物馆,一周有 dd 天。每个博物馆在每一天的开闭状态是已知的(一个大的 01 矩阵)。
  一开始你在 11 号点星期 11,每天如果当前所在的博物馆开馆,你就可以去访问它,当这一天结束时,你必须向前走一步或者结束行程。
  求你最多能访问多少个不同的博物馆。

  n,m105, d50n,m \leq 10^5,\ d\leq50

【2018icpc Regional Jakarta C】Smart Thief 题解

题目大意

  给出 MM 个个位数。现在你要用它们构造一个最短的数字串,使得这个串所有长度为 NN 的连续子串,至少有 KK 种。
  保证存在长度在 1e5 以内的答案。
  N105, M10, Kmin(MN,105)N\leq10^5,\ M\leq10,\ K\leq \min(M^N,10^5)

“这是我初二时的 GDOI 题。”
——1队dalao

【程设大作业】printf 的实现

我决定挂(biao)一挂(biao)我们的这个程设大作业。
(同样是大一,别人家的大作业是写一个 jumping game,怎么到你这就是个 printf 呢。。。

Task

  一句话,就是要手写 printf。
  具体来讲,你需要自己实现一个函数(C 语言),名叫 myprintf,其功能和 printf 一致——参数第一个是字符串format[],后面是任意个参数,然后能把这些东西输出出来,返回值是一共输出了多少个字符。