题解
文章平均质量分 55
cqbzly
仰望星空的蚂蚁
梁东饪猛虎,汴水烹蛟龙
展开
-
【学习笔记】AGC010
多做 AGC 长脑子原创 2022-07-05 22:10:40 · 204 阅读 · 0 评论 -
[PKUWC2018] Minimax
这道题的本质就是对每颗子树求 D[1−m]D[1-m]D[1−m] 出现的概率。又因为这道题儿子个数 ≤2\leq 2≤2 所以统计子树信息很容易想到线段树合并。然后就是怎么合的问题。本质就是在走到叶子节点的路径上统计 DiD_iDi 的前缀和,这一点可以通过维护子树和来实现,最后就是打一个区间乘法的标记,可以用线段树方便的维护。时间复杂度 O(nlogn) 。代码和思维难度都比较适中。......原创 2022-05-20 22:16:09 · 201 阅读 · 0 评论 -
【题解】文理分科
题意描述sol :考虑如何转化问题。假设我把所有的收益都加起来,减去最少的收益就是答案。原问题 = 总收益 - 最小割文理不能同时选考虑对于每个点 i , s 向 i 连一条长度为 art[i] 的 有向边 , i 向 t 也连一条长度为 sci[i] 的边,这样 art[i] 和 sci[i] 必须断一条。...原创 2021-12-09 20:27:44 · 323 阅读 · 0 评论 -
【题解】Matrix
题目描述sol :考点:容斥原理。考虑枚举最终状态中恰好有 x 行全为黑, y 列全为黑。即求 ∑x=An∑y=Bm(nx)(my)f(n−x,m−y)\sum_{x=A}^n\sum_{y=B}^m\binom{n}{x}\binom{m}{y}f(n-x,m-y)∑x=An∑y=Bm(xn)(ym)f(n−x,m−y)定义 f(a,b) 为每行每列都至少有一个白的方案数。这里规定 f(0,0)=1 ,但是当其中一维为 0 时答案为 0 。考虑 f(a,b) 怎么算。我们可以考虑原创 2021-11-18 16:53:38 · 682 阅读 · 0 评论 -
【题解】[JXOI2017] 数列
sol:#include<bits/stdc++.h>#define ll long long#define inf 0x3f3f3f3fusing namespace std;//诡异的数据范围//观察可以发现 r_i 的数据范围很小,所以可以想到状压//dp[i][j][s] 表示当前考虑了前 i 个数,第 i 个数为 j ,s 表示 1~s_i 中出现了哪些数 //时间复杂度 o(2^s_i * n) //考虑怎么优化这个 dp (如,只关注转移最大值,最小值等) ..原创 2021-10-21 16:48:53 · 185 阅读 · 0 评论 -
【题解】CF1015F - Bracket Substring
思维不太难,但是这道题的模型和普通的还是有点不一样。提供一个字符串转移的新姿势。设 dp[i][j][k]dp[i][j][k]dp[i][j][k] 表示前 iii 个字符,有 jjj 个未匹配的左括号,且包含序列 sss 的前 kkk 个元素的方案数。需要写一个 KMP 来优化转移。然后就做完了 (雾#include<bits/stdc++.h>#define ll long long#define inf 0x3f3f3f3f#define fi first#define原创 2021-09-12 11:15:38 · 128 阅读 · 0 评论 -
【题解】「JOISC 2017 Day 2」门票安排
solution:不看题解做不出来考虑翻转一些区间使得答案更优。(这里不讨论 [l,r] = ∅\empty∅ 的情况)设 a_i 表示翻转前的答案, b_i 表示翻转后的答案。性质一:任意两个翻转的区间一定有交集。证明:考虑反证。假设有两个翻转区间交集为空,那么翻转前肯定比翻转后更优。性质二:设所有翻转区间交集为 [l,r] ,其中 b_t=max(a_l,…,a_r) ,l<=t<=r 。则满足 b_t>=max(b_i)-1 。证明:当 l<=t’<=r 时原创 2021-08-27 15:26:33 · 470 阅读 · 0 评论 -
【题解】ARC125 C - LIS to Original Sequence
题意:构造一个排列 ppp ,使得 ppp 的其中一个 LIS 为给定的序列 aaa 。保证 aaa 单调递增。solution:考点:数学归纳法。我写的伪贪心 hhh。如果 k=1 ,那么只有唯一的构造方案 n, n-1, …, 1考虑从左往右构造,保证字典序最小。设当前全局最小值为 Min 。如果 a[j]=Min ,那么直接赋 c[i]=a[j++]否则的话,赋 c[i]=a[j++],c[i+1]=Min (注意两个一定要一起赋,待会讲为什么)首先可以知道一定不存在比这种方案更原创 2021-08-22 22:48:34 · 297 阅读 · 0 评论 -
【题解】[NOI2018] 屠龙勇士
solution:毒瘤题。注意我们只关注同余方程有解即可。根据题意得到 ai+pi∗y=ATK∗xia_i+p_i*y=ATK*x_iai+pi∗y=ATK∗xi化简得到 ATK∗xi≡ai(modpi)ATK*x_i\equiv a_i\pmod {p_i}ATK∗xi≡ai(modpi) ,这个式子等价于 ATK≡bi(modpi(pi,xi))ATK\equiv b_i\pmod {\frac{p_i}{(p_i,x_i)}}ATK≡bi(mod(pi,xi)pi) ,其原创 2021-08-22 14:41:23 · 246 阅读 · 0 评论 -
【题解】CF722F Cyclic Cipher
题目大意:给定n个数列,第 i 个数列包含ki个不超过m的正整数,同一数列里的数互不相同。每一秒将n个数列中的数左移一个位置,每个数列第一个数则移到该数列最后,并在一张纸上记下每个数列的第一个数。10^100秒过后,对于所有的1<=x<=m,求x在纸上出现的最长的连续的一段长度,该段必须是同一秒中记下的数。数据范围:1 ≤ n, m ≤ 100 000,1 ≤ ki ≤ 40,∑ki<=200 000solution:对于每个 i, 相当于在子区间统计答案,考虑双指针。注意到一组同余原创 2021-08-21 16:19:03 · 232 阅读 · 0 评论 -
【题解】[COCI2020-2021#3] Selotejp
solution:考虑轮廓线 dp 。设 dp[i][j][k]dp[i][j][k]dp[i][j][k] 表示当前处理到 (i,j)(i,j)(i,j) ,且最近的 mmm 个格子二进制和为 kkk 的最少操作数。111 表示横贴条, 000 表示竖贴条。对于一个位置 (i,j)(i,j)(i,j) ,显然有上下贴条覆盖两种转移。Case 1:s[i][j]=='.'dp[i][j][k]->dp[ni][nj][k>>1]Case 2:s[i][j]=='#'k&原创 2021-08-17 20:21:39 · 287 阅读 · 0 评论 -
【题解】Lucy and Palindromes
题意:给你一个序列,有翻转区间和查询操作,每次查询一段区间里面的所有字符能组成的不同回文串的个数。 字符集大小 = 10 ,n,q≤105n,q\leq 10^5n,q≤105 。solution:splay 好题。对于每个节点,用桶记录每种字符出现的次数,区间翻转就把 l 的前驱和 r 的后驱分别提到根节点和根的右子树。问题就转化为求 [l,r] 中各个字符出现的次数。最后用组合数算一下不同回文串个数即可。注意 rotate 要赋 fa 指针, build 函数要传实参和赋 fa 指针。同时 rota原创 2021-08-17 16:32:31 · 92 阅读 · 0 评论 -
【题解】Strange Queries
题意:给定一个整数集合包含 A1,A2,...,AnA1,A2,...,A_nA1,A2,...,An ,我们定义整数集合的代价为:如果数的个数 ≤2\leq2≤2 ,则代价为 000 ;否则将每个整数至少与一个另外的整数建立连接。两个整数建立连接的代价是 ∣ai−aj∣|a_i-a_j|∣ai−aj∣ 。有 qqq 次修改,每次会在集合中增加或删除一个数。 n,q≤105n,q\leq 10^5n,q≤105 。solution:考虑离线处理,设 dp[i][j][0/1]][0/1]dp[i]原创 2021-08-17 15:34:04 · 91 阅读 · 0 评论 -
【题解】[COCI2020-2021#3] Sateliti
solution:核心考点是字符串排序。码量较大。总的情况显然最多有 nmnmnm 种,通过二维散列比较子矩阵可以达到 logn+logmlogn+logmlogn+logm ,所以直接暴力枚举 + 比较大小即可。难点在比较大小的方法,我们设 p[i][j]=a[i][j]∗5i3jp[i][j]=a[i][j]*5^i3^jp[i][j]=a[i][j]∗5i3j ,has(i,j,i2,j2)=∑l1=ii2∑l2=jj2p[l1][l2]has(i,j,i2,j2)=\sum_{l1=i}^{i2原创 2021-08-17 08:12:52 · 284 阅读 · 0 评论 -
【题解】[COCI2020-2021#2] Svjetlo
solution:神仙状态。考点:树形dp + 思维。路径是可以重复的,简单地树形 dp 可能难以处理,考虑路径的拼接。设 dp[x][i][j]dp[x][i][j]dp[x][i][j] 表示第 x 个点的子树内(除了自己)的奇偶性已经满足,i 记录第 x 个点的奇偶性是否满足,且子树内(包括自己)的路径端点数有 j 个的最短路径长度,其中 i∈{0,1},j∈{0,1,2} 。状态转移方程系数:dp[x][i][j]=min(dp[0][i^1][j]+dp[y][init[y]][0]原创 2021-08-16 13:08:45 · 251 阅读 · 0 评论 -
【题解】[COCI2020-2021#2] Sjekira
找规律。暂时没有严谨的做法。根据定义,每次删除一条边,代价是两个连通块的最大值的和。所以最优决策是,每次找到一个代价最大的点 valmaxval_{max}valmax,然后 按某种顺序 删除它所连接的所有边,然后递归到它们所形成的新的子树中。感性的理解是,我们要最早把代价最大的点删掉。算一下一共是 2(n−1)2(n-1)2(n−1) 个节点,大胆猜测结论:sum=∑i=1nai+∑(u,v)∈Emax(au,av)−max(ai)sum=\sum_{i=1}^n a_i+\sum_{(u,v)原创 2021-08-15 20:43:09 · 251 阅读 · 0 评论 -
【题解】ABC214 G - Three Permutations
题意:给定两个排列 ppp, qqq ,求排列 rrr 的方案数,满足任意 ri≠pir_i\ne p_iri=pi 并且 ri≠qir_i\ne q_iri=qi 。n<=3000n<=3000n<=3000 。solution:恶心题。atcoder 就喜欢考置换和字符串计数。容斥 + 计数dp + 图论。考虑对每个 i 位置,(p[i],q[i]) 之间连一条边。不同的环之间是独立的。考虑 dp[i][j][0/1/2][0/1/2] 表示 环上前 i原创 2021-08-15 19:46:58 · 515 阅读 · 0 评论 -
【题解】[COCI2020-2021#1] Tenis
solution:恶心题。考点:位运算 + 模拟。我们将比赛分成两类:第一种是严格的胜利,即赢家的获胜位置严格小于输家的获胜位置。第二种是非严格的胜利,这意味着球员在球场上的获胜位置是相等的。现在问题转化为在一个 3 列的网格上统计。提供 kcznolkcznolkcznol 大佬的 O(n)O(n)O(n) 算法,暴踩标算:从左往右扫一遍,对于这一列的每个球员是第一次出现,那么我们统计 (i+1,n)(i+1,n)(i+1,n) 的答案;否则直接跳过。具体我们要维护 cnt[8][3]cnt[8原创 2021-08-15 10:51:05 · 415 阅读 · 2 评论 -
【题解】HDU2421 Deciphering Password
题意:定义 f(x) = x 的因子个数 ^ 3,g(x) = \sum_{i|x} f(x) 。求 g(A^B) mod 10007 。 A,B<=1e6 。solution: 积性函数好题。考点:唯一质因数分解 + 积性函数。首先 f(x) 是积性函数。假设 f(x) = f(u*v) ,(u,v)=1 。设 d(x) = x 的质因子个数,由定义可知 d(x) = d(u) + d(v) ,又因为 f(x) = d(x)^3 = (d(u) + d(v))^3 = d(u)^3 d(v)^原创 2021-08-14 16:59:57 · 109 阅读 · 0 评论 -
【题解】[COCI2020-2021#5] Magenta
solution:图论 + 博弈论。我们称操作前两个棋子间距离为偶数的一方为 猎人 ,不难发现 猎人 只会 win 或者 draw。这是因为终止状态中棋子的距离为 000 ,而 猎人 操作后一定是奇数,所以不可能走到对方的棋子上。当然要特判 猎人 一条边都走不到的情况。考虑将图中所有的红色边都删除,形成若干连通块。此时如果双方不在同一连通块的话形成平局。否则将该连通块外的节点设为 111 。我们从猎人开始搜索,并记录下到达当前节点的最小步数。然后从猎物开始搜索,当且仅当当前步数小于所标记步数时这个点可原创 2021-08-13 20:50:46 · 280 阅读 · 0 评论 -
【题解】[HAOI2015] 树上染色
设 dp[u][x]dp[u][x]dp[u][x] 表示以 uuu 为根的子树,选 xxx 个黑点时子树内的边对答案的最大贡献。这个状态设得比较巧妙,求的是子树内边的贡献和。dp[u][x]=dp[u][x]+dp[v][y]+edge(x,y)∗(y∗(K−y)+(siz[v]−y)∗(n−K−siz[v]+y))dp[u][x]=dp[u][x]+dp[v][y]+\\edge(x,y)*(y*(K-y)+(siz[v]-y)*(n-K-siz[v]+y))dp[u][x]=dp[u][x]+原创 2021-08-13 16:50:02 · 125 阅读 · 0 评论 -
【题解】[HDU 6035] Colorful Tree
考虑统计不包含颜色 iii 的路径条数。发现等价于:将所有 c[u]=ic[u]=ic[u]=i 的点删除后所有连通块的贡献。设 dp[u][i]dp[u][i]dp[u][i] 表示以 uuu 为根的子树,不包括颜色 iii 的连通块的大小。根据定义不难得到:dp[u][i]={∑dp[v][i]+1c[u]≠i0 c[u]=idp[u][i]=\begin{cases}\sum dp[v][i]\text{+1}&\text c[u]\ne i\\ \\0&\ c[原创 2021-08-13 16:47:02 · 245 阅读 · 0 评论 -
【题解】[COCI2020-2021#5] Sjeckanje
solution:数据结构毒瘤题。算法一:考虑不带修改。首先分析出一个性质,最优区间一定是单调区间。因为 f(l,r)≤max(l,r)−min(l,r)f(l,r)\leq max(l,r)-min(l,r)f(l,r)≤max(l,r)−min(l,r) ,如果一个区间不是单调区间的话可以继续拆分直到都是单调区间,从而使得 f(l,r)≥max(l,r)−min(l,r)f(l,r)\geq max(l,r)-min(l,r)f(l,r)≥max(l,r)−min(l,r) 。设 f[i]f[i]f原创 2021-08-13 16:26:58 · 547 阅读 · 0 评论 -
【学习笔记】[AHOI2018初中组] 球球的排列
solution:算法一:对于 n<=10 ,直接全排列枚举即可。算法二:对于 n<=300 且 a[i]=1/2 ,直接分类讨论。算法三:对于 n<=300 且 a[i] 是质数,问题转化为把 m 种颜色的球排列在一排,满足相邻球的颜色不同。考虑 一种一种颜色地放。设 dp[i][j][k]dp[i][j][k]dp[i][j][k] 表示前 iii 个球的排列中,满足颜色不等于第 iii 个球且同色相邻的有 jjj 对,颜色等于第 iii 个球且相邻的有 kkk 对时,排列 的原创 2021-08-12 19:36:18 · 346 阅读 · 0 评论 -
【题解】CF1554E - You
题意:给你一棵树,每次删除一个节点 iii 和所连的边,a[i]a[i]a[i] 表示当前点所连的边的条数。令 gcd(a[1],a[2],...,a[n])=kgcd(a[1],a[2],...,a[n])=kgcd(a[1],a[2],...,a[n])=k ,求对于 k∈[0,n]k\in [0,n]k∈[0,n] 的不同序列 aaa 的个数。solution:观察到不同的操作顺序可能决定相同的序列 aaa 。例如,所有孤岛的入度为 000 ,而最终得到的序列只能是 0{0}0。方便起见,我们假原创 2021-08-12 12:18:45 · 105 阅读 · 0 评论 -
【题解】CF1557E Assiut Chess
交互题。题意:你放置一个皇后的位置,不知道国王的初始位置。国王会向八个方向行动,每次国王先行,双方都必须移动。任何时刻国王都不能移动到皇后的攻击位置。你需要在不管国王怎样移动情况下都保证在有限步数内击败对方。solution: 比较棘手的是不知道国王的位置。但是真的有必要知道它的位置吗?比较容易想到的是蛇形走位。假设当前在第 iii 行 ,那么 1−i1-i1−i 行都已经被占领了。我们从第一列开始,从左往右扫一遍,看看会发生什么:若国王在第 i+1i+1i+1 列,显然会被逼迫到选择 Down原创 2021-08-12 10:05:55 · 132 阅读 · 0 评论 -
【题解】第三届“图灵杯”趣味网络邀请赛 (中级)
前言没事水的比赛。Solution:考场上猜对了结论。本题的关键在于:对于一个二元组 (d,k)(d,k)(d,k),可以看作平面直角坐标系中的一次移动,即 (x,y)->(x+d,y+k) 。对应到图上,梯形面积 = 12k∣2x+d∣\frac{1}{2}k|2x+d|21k∣2x+d∣ = 12∣2kx+kd∣\frac{1}{2}|2kx+kd|21∣2kx+kd∣ ,正好就是题目要我们算的贡献。由于 kkk 是正数,所以总答案就是我们围出来多边形的面积,不难证明凸包是最原创 2021-08-09 15:20:57 · 594 阅读 · 0 评论 -
【学习笔记】图论状压 dp (abc 213)
G - Connectivity 2题意:给你一张无向图,有 nnn 个顶点和 mmm 条边,存在 2m2^m2m 种不同的子图。求子图的数量满足 111 和 iii 联通。n<=17n<=17n<=17。Solution:状压 dp 神题。111 和 iii 联通等价于 111 和 iii 在同一连通块中。看到总状态数 2m2^m2m ,于是想到容斥,不过本题的条件是 至少存在一条 1->i 的路径 ,所以很遗憾暂时没有看到容斥的做法。回到连通块的思考中。启发我们 枚原创 2021-08-09 10:32:43 · 369 阅读 · 0 评论 -
【题解】[AGC005D] ~K Perm Counting
题意如果一个排列 PPP 满足对于所有的 iii 都有 ∣Pi−i∣≠k|P_i-i|\neq k∣Pi−i∣=k ,则称排列 PPP 是合法的。求有多少种合法的排列。Solution:本题的限制条件很像错排,但是区别在于并不是一一对应的。考虑容斥。问题转化成了求满足其中 KKK 个条件的排列数。考虑这样一个序列:1 1+k 1+2k ... 1+mk 。在二分图中是这样的:考虑其中一条链。为了使结构统一,我们把原始排列拆分成 2n2n2n 个点,这样做的好处是将题意限制转化成了 不能选原创 2021-08-09 09:45:41 · 302 阅读 · 0 评论 -
【题解】arc101 C - Ribbons on Tree
很棘手的树形 dpdpdp 。设 dp[u][x]dp[u][x]dp[u][x] 表示以 uuu 为根的子树,有 xxx 个节点失配的方案数。这样时间复杂度 O(n3)O(n^3)O(n3) 。一个想法是直接继承重儿子,用 dsu−on−treedsu-on-treedsu−on−tree 优化转移。不过比较难写,而且 n<=5000n<=5000n<=5000 似乎过不去。但是看到 任意边都必须有颜色 时想到容斥。具体来说,就是 ∑(−1)m∗有m条边没有颜色的方案数\sum(-原创 2021-08-07 21:08:19 · 185 阅读 · 0 评论 -
【题解】[POI2005] SZA-Template
题意给你一个长度为 n 的字符串,求印章长度的最小值,这个印章可以重复印刷同一个位置,但是每次必须恰好把所有字母都印到纸上。n<=5e5。Solution:考点:字符串匹配。以为是水题,结果是神题。。。kczno1kczno1kczno1 是用 双向链表 + fail 指针 做的。然而我们有更简洁的做法。来自于 PeterZPeterZPeterZ 。设 f[i] 表示前缀为 i 的模板长度的最小值。引理1:f[i] 的取值只能为 i 或 f[nxt[i]]引理1.1:f[i]<原创 2021-08-05 19:38:11 · 251 阅读 · 2 评论 -
【题解】[POI2008] BBB-BBB
题意给定一个由+1和−1构成的长度为n的序列,提供两种操作:1.将某一位取反,花销为x2.将最后一位移动到第一位,花销为y要求最终p+sumn=q,且p+sumi≥0(1≤i≤n),求最小花销sumi为1-i的前缀和Solution:考点:贪心+分析性质。首先考虑将后面一段接到前面,容易想到 O(n) 枚举分割点。然后 p+sum[i]>=0 的话,找到 minsum[i] ,每次 +2 直到 minsum[i] >= -p 。最后算一下 abs(sum[n]-q)/2 求偏移原创 2021-08-05 16:20:26 · 205 阅读 · 0 评论 -
【题解】[POI2007] SKA-Rock Garden
题意给你 n 块石头的坐标 (x[i],y[i]) ,可以对任意一块石头交换横纵左边,代价为 w[i] ,求最小的代价使得 Max(x[i]-x[j])+Max(y[i]-y[j]) 最小。Solution:首先考虑当什么时候取到最小值。结论:当所有石子都在 y=x 一侧时最优。证明:首先考虑 n=2 的情况,对于任意 i 满足 x[i]<y[i] 。此时 Max(x[i]-x[j])+Max(y[i]-y[j]) 最小。对于 n+1 的情况,假设前面是这样的:那么取 x[n+1]<原创 2021-08-03 15:32:38 · 161 阅读 · 0 评论 -
【题解】CF1534F2 Falling Sand (Hard Version)
Easy Version考虑对于 (i,j) 向上下左右连出的 有向边 。缩点后答案就是 in[i]=0 的个数。Hard Version由于不需要全部消除,所以贪心地全部消完是不可行的。trick1: 对于这个图,我们只需要让第 i 行第 a[i] 块掉下即可,我们称其为特殊点;trick2: 观察到图的特征是仅向相邻的列连边,所以猜测选取某一个点消除的影响是 [l,r] 。观察:3 6..#..#......#####.1 1 2 1 1 1如果特殊点 X 可以到 Y 的话,我原创 2021-08-02 19:29:06 · 198 阅读 · 0 评论 -
【题解】cf1530
ABC 题都是模拟题,读清题意即可。D - Secret Santa考点:贪心。思路:首先把能满足的满足掉,然后把剩下的任选一个匹配。可以证明,这样得到的答案是最大的。然后我们考虑失配的情况。对于 b[i]=i 的情况一定是失配了,那么我们假设 b[j]=p[i],j!=i ,此时让 b[i]=p[i],b[j]=i 使得总匹配数不变,但是 b[j]=i 可以满足条件。总结:适当使用微调法可以减轻思维量。E - Minimax考点:贪心+模拟。本题比较恶心的在于讨论。首先,预处理出 k[0原创 2021-08-02 13:57:55 · 214 阅读 · 0 评论 -
【题解】[NOIP2017 提高组] 列队
题意给定一个 n*m 的队列,每次操作选取一个位置 (i,j) 出队,然后填补空位。输出每次出队的编号。Solution:考点:模拟+数据结构。算法一对于 n,m<=1000 的数据,直接暴力模拟;对于 n=1 的数据,可以树状数组维护:稍加修改,可以得到 x=1 的做法,期望得分 60pts。算法二再来看 n=2 的情况:于是不难得到下述算法:建立一个以第 m 行为元素的序列对于每次操作,判断是否在当前行内,否则在原序列中查询排名 k-delta+i 的数,先将它删原创 2021-08-01 15:05:03 · 605 阅读 · 0 评论 -
【题解】CF1554 Diane
题意构造一个长度为 n 的字符串,满足所有子串在原序列中都只出现了奇数次。n<=3e5 。Solution:考点:构造+思维。thinking…原创 2021-07-30 22:32:31 · 110 阅读 · 0 评论 -
【题解】CF1554 Mikasa
题意给你两个整数 n 和 m ,求集合的 mex 。n,m<=1e9 。Solution:考点:二进制+模拟。本人打的 数位 dp 。反正打着很恶心的模拟。看了标算后豁然开朗:n^x=k <=> n^k<=m 。所以我们只需要检查第一个 n^k>m 的数即可。因为要 k 最小,所以从高到低枚举,取 n^k>=m+1 。如果 n>=m+1 ,那么 k 取 0 都能满足 ,直接 break;如果最高位上的数字相同,此时最高位取 0 满足 n[i]>原创 2021-07-30 22:24:50 · 161 阅读 · 0 评论 -
【题解】UVA1252 Twenty Questions
题意有 n 个物品,每个物品有 m 个特征,每次询问一个特征,求最少多少次能确定所求物品。Solution:考点:状压 dp 。首先不能暴力枚举,这样第二个样例输出 5。但是它启发我们当某一组特征 cnt[S]=1 时答案是唯一的。 因为决策是变化的,所以考虑设 dp[S][T] 表示当前问了集合 S 的特征,其中集合 T 的答案是 1 的最小询问数。显然当 cnt[S][T]=1 时返回 0 ,cnt[S][T]=0 是不合法状态。时间复杂度 O(m3^m+n2^m) 。思考:询问顺序是否对答原创 2021-07-30 17:26:54 · 173 阅读 · 0 评论 -
【题解】[NOIP2018 提高组] 填数游戏
题意构造方案。满足字典序小的权值一定大。Solution:考点:数学+搜索+找规律/推式子。算法一.性质一: 对于任意 (i,j) 满足 b[i][j]<=b[i-1][j+1], 因为只有这样才不会出现交叉的情况。该条件对于 n=2 是充要条件,加上爆搜可以得到 45pts性质二:对于 n=3 打表可以发现下列数据:0 0 00 0 10 0 0观察得到 a[0][1]=a[1][0] ,但是会出现交叉情况,此时要求以 (i,j+1) 为左上角的对角线值相等,结合性质一剪枝可以原创 2021-07-29 23:28:45 · 506 阅读 · 0 评论