「Codeforces 1090H」Linearization

Codeforces 1090H. Linearization

题意

定义一个长度为 \(n(n=2^k,k\in N)\) 的 01 串 \(s\)(从 0 开始标号)是线性的,当且仅当存在整数 \(x\) 和 二进制数位 \(b\),使得 \(\forall i\in [0,n),s_i=P(i~{\rm and}~x)~{\rm xor}~b\),其中 \(P(a)\) 表示 \(a\) 的二进制表示中 \(1\) 的数量的奇偶性

定义一个 01 串的线性化难度为,进行最少的取反一个区间的操作,使之成为线性的操作次数

给定一个长度为 \(m\) 的 01 串 \(t\)\(q\) 次询问指定一个子串,要求计算其线性化难度

\(m,q\le 2\times 10^5\)

Read more

「Codeforces 1034C」Region Separation

没有思维能力了

Codeforces 1034C

题意

给你一棵 \(n\) 个点的树,有点权\(a_1,..,a_n\),整棵树是一个1级区域

  • 除非 \(i\) 是最后一个等级,否则每一个i级区域都要被分成至少两个i+1级区域

  • 每个点必须恰好属于一个每种等级的区域

  • 一个区域必须是连通的

  • 每个相同等级的区域必须拥有相同的点权和

求有多少种不同的划分方案,模 \(10^9+7\)

\(n\le 10^6,a_i\le 10^9\)

Read more

「Luogu P5023」填数游戏

NOIP2018 唯一没做出来的题

要是写完两题后直接去打暴力大概也不止50分吧

反正确实跪在这题了

Luogu P5023

题意

你有一个 \(n\)\(m\) 列的矩阵,左上角为 \((0,0)\)

每一个位置有一个数字 \(0/1\)

你需要从 \((0,0)\) 走到 \((n-1,m-1)\),只能向右或向下走 \((R/D)\),一共 \(n+m-2\) 步,这会形成一条路径

把方向记下来可以得到同样长度的只包含 \(R/D\) 的字符串 \(w(P)\)

并且经过的 \(n+m-1\) 个位置的数字连起来可以得到一个 \(01\)\(s(P)\)

你需要求出有多少种填数的方案,使得对于任意两条路径 \(P_1,P_2\),若 \(w(P_1)>w(P_2)\),那么 \(s(P_1)\le s(P_2)\)

\(10^9+7\)

\(n\le 8,m\le 10^6\)

Read more