首页 > 其他分享 >niu-zi-solution

niu-zi-solution

时间:2024-02-29 11:36:34浏览次数:33  
标签:zi abc cda solution 一行 确定 每列数 种类 niu

牛子 Solution

link

结论:一个方案合法当且仅当,每行数种类为 \(2\),或者每列数种类为 \(2\)。

证明:我们试图证明,如果一个方案存在一行的数种类 \(\ge3\),则这个方案的每列数种类为 \(2\)。

对于有 \(\ge3\) 种数的这一行,必然存在某连续的三个数两两不同,即形如 abc 的形式。

这个可以反证:否则任意三个数都是 aba 的形式,则这一行形如 abababababababa,只有两种数,矛盾。

那么对于这一个 abcb 上下两个数必然都是剩下的一个数 d,最终 abc 上下两行加起来 \(9\) 个数必定形如

cda
abc
cda

这时候再在中间这行左右任意添加字符,都满足上下行的对应位置数被确定。例如

ada-cda-badc
cbc-abc-dcba
ada-cda-badc

恰好是填 a 确定 c,填 c 确定 a,填 b 确定 d,填 d 确定 b

可以继续向上一行、下一行拓展,结论仍然适用。容易发现,这说明此时每列数种类只有 \(2\)。

至此,证明了要么每行数种类为 \(2\),要么每列数种类为 \(2\)。求解方案直接根据本行或本列已有数字构造即可。

标签:zi,abc,cda,solution,一行,确定,每列数,种类,niu
From: https://www.cnblogs.com/iorit/p/18043081

相关文章

  • 机器学习策略篇:详解满足和优化指标(Satisficing and optimizing metrics)
    满足和优化指标要把顾及到的所有事情组合成单实数评估指标有时并不容易,在那些情况里,发现有时候设立满足和优化指标是很重要的,让我告诉是什么意思吧。假设已经决定很看重猫分类器的分类准确度,这可以是\(F_1\)分数或者用其他衡量准确度的指标。但除了准确度之外,还需要考虑运行时......
  • 14 CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!)C. Tenzing and Balls(dp+前缀
    思路:dp还是挺明显的,思路可以参考最长上升子序列有点dp的感觉\(f[i]\)表示考虑前\(i\)个数,的最大值当前数有两种删或不删不删:\(f[i]=f[i-1]\);删:\(f[i]=max{f[j-1]+i-j+1}\)这个转移是\(O(n^2)\)的显然时间上来不及考虑优化,第一层循环一定是省不了的考虑优化掉第二层循环......
  • cf1748f-solution
    CF1748FSolutionlink题目也就是要我们交换每对\(a_i\)和\(a_{n-1-i}\)。考虑如何利用这个异或操作交换:我们自然地想到x^=y,y^=x,x^=y。如何操作使得x^=y?我们把环上\(x\)到\(y\)的路径拉出来,假装是个序列:\(a_x.a_{x+1},a_{x+2},\dots,a_{y-2},a_{y-1},a_y\)现在要使......
  • cf1621g-solution
    CF1621GSolutionlink考虑对每个位置\(i\)作为\(i_j\)时计算贡献。\(i\)对一次答案有贡献当且仅当:设其子序列内最右端的位置为\(r\),则要满足\(r\)右侧存在一个数大于\(a_{i}\)。即,设\(lst_i\)表示整个序列最右侧的大于\(a_i\)的数,要满足\(lst_i>r\)。现......
  • cf1606e-solution
    CF1606ESolutionlink考虑dp。注意到这个题造成的伤害与剩余人数有关,每次消灭的人数又与剩余人的血量最大值有关:设\(dp_{i,j}\)表示剩下\(i\)个人中血量最大值为\(j\)的方案数。显然当\(i-1>=j\)时一次伤害就可以杀光所有人,于是这时\(dp_{i,j}=j^i-(j-1)^i\)(只需让......
  • cf1599j-solution
    CF1599JSolutionlink题意:给你一个长为\(n\)的序列\(b\),请你构造一个长为\(n\)的序列\(a\),满足\(b\)中的数都能由\(a\)中两个不同下标的数相加得到。无解报告NO,\(n\le10^3,b_i\le10^6\)。我们发现如果我们能用\(a_1\sima_m\)来凑出\(b_1\simb_m\),剩下的令......
  • cf1583h-solution
    CF1583HSolutionlink第一问容易处理,将边权从大到小排序,并查集维护一下连通块最大值简单搞搞就好。考虑第二问。我们对原树,按照\(t\)的权值建造克鲁斯卡尔重构树,那么两点的lca权值即它们路径上边权最大值。同样按照边权\(c\)从大到小将边排序,维护连通块内最大值的同时,维......
  • cf1555f-solution
    CF1555FSolutionlink分析一张图中的环,我们可以考虑把图表示为一棵生成树加上许多非树边。对于这题,我们考虑动态维护一片森林,在每次准备加一条边\((u,v)\)时:如果这条边加进去后与森林不形成环,那么它与图肯定也不形成环,那么直接加进森林中。如果这条边是森林的一条非树......
  • cf1553f-solution
    CF1553FSolutionlink首先显然地\(\displaystylep_i=p_{i-1}+\sum_{j=1}^{i-1}a_j\bmoda_i+\sum_{j=1}^{i-1}a_i\bmoda_j\)。那么两部分分开来算。\(\displaystyle\sum_{j=1}^{i-1}a_j\bmoda_i\):我们知道\(x\bmody=x-y\lfloor\fracxy\rfloor\),那么我们先把答案加上......
  • cf1548c-solution
    CF1548CSolutionlink题意说人话就是每次给\(x\)求\(\displaystyle\sum_{i=1}^n\binom{3i}x\)。由于多组询问,考虑能不能生成函数。设\[\begin{aligned}f_k&=\sum_{i=1}^n\binom{3i}k\\F(x)&=\sum_{i=0}^\inftyf_{i}x^i\\&=\sum_{i=0}^\infty\sum_{j=1}^n\bin......