Loading...
NOI2021 加油!
A先将其压成二进制数,考虑两个人 $(i,j)$ 他们不可能拥有相同的通过数当且仅当它们不同的位的数量是奇数,也就是 $x\text{ xor } y$ 有奇数个 $1$。然后我赛时直接冲了个 FWT 过了稍微分析一下,发现两个数不同,当且仅当一个是 $1$ 一个是 $0$,我们只考虑这些不同的位置,发现恰好一个 $1$ 的数量是奇数一个是偶数。反过来也是对的。所以统计一下有奇数个 $1$ ...
A贪心填。先尽量填竖着的再填横着的。因为这样最多会浪费 $1$ 个,所以达到了答案的上界。求出上界判断是否 $\leq$ 即可。B枚举一个位置 $i$,前面只保留 $0$ 后面只保留 $1$,判断是否合法即可。C首先第一步横着走还是竖着走都是一样的。我们设第一步横着走。那么横着走只可能用奇数位置的 $c_i$,竖着走只可能用偶数位置的 $c_i$。枚举总共有几段,然后贪心选择最小的即可。注意...
题目链接题意用一个绳子去包绕一个三维空间的单位立方体,要求绳子有一段和向量 $(a,b,0)$ 平行。求最少需要的绳子长度。$a,b \leq 10^{18}$题解绕绳子问题由于会循环多个面,所以我们首先考虑将这个东西展开在无限的二维平面上,这样跳跃到另一个面就可以看作是走到相邻的面了。考虑一个形象的过程:先从结束的位置把绳子断开,然后我们按照需求往上或者往右滚动,这个绳子也会被留在平面上形...
A如果 $x > k$ 那么可以随便选。$[1,k]$ 我们选择后一半,这样保证任意两个数字相加都 $> k$ 就好了。B直接枚举即可。$0,1,8$ 反转后不变,$2,5$ 反转后互换。C$\geq s$ 最小,也就是尽量靠近 $s$。于是从大到小枚举相同的前缀长度,每次暴力看一下是否有一种方案可行,如果有的话就直接贪心按照字典序放置剩下的字符。D我赛时的做法:对于 $\leq...
A暴力枚举每个字母对应的括号即可。$O(2^3 n)$CodeB发现行列之间的影响只会在于四个角上,所以暴力枚举四个角是否填,然后确定上下界判断即可。$O(2^4)$。CodeC显然 $a_i,b_i > 0$ 和 $a_i,b_i < 0$ 可以分开做:我们只考虑 $a_i,b_i > 0$ 的情况。排序之后,我们枚举「推」到的最后一个位置是 $b_x$,那么我们找到 $...