首页 > 其他分享 >[AGC036F] Square Constraints

[AGC036F] Square Constraints

时间:2023-07-09 15:11:28浏览次数:44  
标签:上界取 位置 个数 AGC036F Square 排名 2n dp Constraints

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

每个数能取的范围是一段区间 \([l_i,r_i]\),其中 \(l_i\) 单调不增, \(r_i\) 单调不增。

画个图 (\(n=10\)):

圆环和矩形的交即为合法点。

容易看出 \(l_n\) 到 \(l_{2n-1}\) 都是 0。

本质上是元素有上下界的排列计数,考虑不管下界只看上界然后容斥。

假设每个元素只有上界 \(R_i\),那么将 \(R\) 排序(记为 \(R'\)),方案数就是 \(\prod_{i=1}R'_i-i+1\)。比较好理解,每个位置能选的数的个数就是原本能选的个数减去前面已选的个数(由于有序,已选的个数就是 \(i-1\),可以发现减去的数就是排名-1)。

接下来容斥,记 \(f_i\) 为 \([0,n)\) 中恰好有 \(i\) 个的上界取 \(l_i-1\),其余上界取 \(r_i\) 的总方案数。易得 \(ans=\sum_{i=0}^n(-1)^if_i\)。

考虑求 \(f_i\)。

由于每个未知的贡献与其排名有关,不妨将序列大致排序后与过程中进行微调。

将 \([0,n)\) 部分以 \(l_i-1\) 为关键字,\([n,2n)\) 以 \(r_i\) 为关键字排序,从前往后进行 \(dp\)。设 \(dp[i][j]\) 为考虑了(排序后的)前 \(i\) 个位置,已经有 \(j\) 个 \([0,n)\) 内的位置的上界取了 \(l-1\)。

分类讨论:

  • 当前点属于 \([n,2n)\):

这个点原本有 \(r_i+1\) 种选法。 \(i\) 之前所有 \([0,n)\) 中且上界取了 \(l\) 的位置都会使 \(i\) 排名 +1;还有 \(i\) 之前所有 \([n,2n)\) 的位置,由于排序,这些位置也会使 \(i\) 排名 +1。

发现第二类位置的个数(记为 \(c_1\))对于每个 \(i\) 是确定的,可以在 \(dp\) 过程中顺便记录。

于是这个位置的选法就是 \(r_i+1-j-c_1\)。

于是 \(dp[i+1][j]+=dp[i][j]\times (r_i+1-j-c_1)\)。

  • 当前点属于 \([0,n)\):

又有两种情况:

上界取 \(l_i-1\):

选法是 \(l_i-j-c_1\)。原因类似上面。

于是 \(dp[i+1][j+1]+=dp[i][j]\times (l_i-j-c_1)\)。

上界取 \(r_i\):

复杂的情况。

原本有 \(r_i+1\) 种选法。

由图可得 \([n,2n)\) 所有的 \(r\) 都得排在 \(r_i\) 前面,于是排名增加 \(n\)。

最终 \([0,n)\) 内且上界取了 \(l-1\) 的所有位置都排在 \(r_i\) 前面,但是我们不知道有多少个。那么我们就设最后有 \(k\) 个,那么排名增加 \(k\)。

又由图可知,\(i\) 之前 \([0,n)\) 内且上界取了 \(r\) 的所有位置也得排在 \(r_i\) 前。与 \(c_1\) 类似,记录 \(c_2\) 为 \(i\) 之前在 \([0,n)\) 之间的个数,那么这部分排名增加 \(c_2-j\)。

于是 \(dp[i+1][j]+=dp[i][j]\times (r_i+1-n-k-c_2+j)\)。

但是由于 \(k\) 不知道,我们可以枚举 \(k\) 是多少,对每个 \(k\) 进行一次 \(dp\)。最后有 \(f_k=dp[2n][k]\)。

标签:上界取,位置,个数,AGC036F,Square,排名,2n,dp,Constraints
From: https://www.cnblogs.com/jimmywang/p/17538748.html

相关文章

  • ARC162E Strange Constraints
    题意给定长度为\(n\)的序列\(A\),求序列\(B\)的个数模\(998244353\),满足以下条件:值域\([1,n]\)。\(i\)的个数不超过\(A_i\)。\(B_i\)的个数不超过\(A_i\)。\(1\len\le500\)。题解发现按照某种顺序去构造是困难的,考虑倒过来,枚举出现次数。如果某个类出现次......
  • AtCoder Regular Contest 162 E Strange Constraints
    洛谷传送门AtCoder传送门完全没有思路。但是其实不难的。设\(d_i\)为\(i\)在\(B\)中的出现次数,题目要求:\(\foralli\in[1,n],d_i\leA_i\);对于位置\(i\),\(d_j\leA_i\)的数\(j\)可以被放到\(B_i\)。考虑按照\(d_i\)从大到小dp。设\(f_{i,j,k}\)......
  • Jim McKelvey和JackDorsey联合创办了Cash App的母公司Square
    JimMcKelvey和JackDorsey联合创办了CashApp的母公司Square。JimMcKelvey是位多才多艺的企业家,从圣路易斯华盛顿大学获得计算机科学、经济学和艺术学士学位后,他曾前往IBM任职,由于喜爱并擅长吹制玻璃,他在2001年创立了销售手工玻璃水龙头的ThirddegreesglassFactory工作室。此......
  • SquareSubsequence
    SquareSubsequence一眼DP。首先状态:\(f[i][j]\)表示第一个\(T\)在\(1\simi\)中,第二个\(T\)在\(i+1\simj\),然后必选\(s[i],s[j]\)的方案数。可以想到基本的转移\(f[i][j]+=f[a][b](a<i,i<b<j,s[a]=s[b])\)。当然这样会有重复,样例2就给了我们启示:zzz中不管是......
  • hdoj-5903 Square Distance
    原题链接SquareDistanceTimeLimit:4000/2000MS(Java/Others)    MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):245    AcceptedSubmission(s):83ProblemDescriptionAstringiscalledasquarestringifitcanbeobtainedbyconcatena......
  • ORACLE中Drop table cascade constraints
    当你要drop一个table时,如果删除table的动作会造成trigger或constraint产生矛盾,系统会出现错误警告的讯息而不会允许执行.。一个极简单的例子,例如你有一个员工基本资料表,上面可能有员工编号和员工姓名等字段,另外有一个员工销售表,上面有员工编号和员工销售额两个字段,员工薪资......
  • el-api包冲突,java.lang.LinkageError: loader constraints violated when linking ja
    java.lang.LinkageError:loaderconstraintsviolatedwhenlinkingjavax/el/ExpressionFactoryclass严重:Servlet.service()forservletjspthrewexceptionjava.lang.LinkageError:loaderconstraintsviolatedwhenlinkingjavax/el/ExpressionFactoryclassat......
  • Codeforces 1495F - Squares
    不知道怎么放到div1F的,感觉没啥亮点。首先对于一条\(1\)到\(n+1\)的路径而言,它经过的点的编号一定是递增的,也就是说,如果我们将关键点大小排个序,那么答案就是相邻两点间最短路的和。删/加点造成的变化是\(O(1)\)的,所以问题等价于,多次询问这张图中\(x,y\)之间最短路的......
  • 利用Flutter的LayoutBuilder、BoxConstraints创建自适应布局控件
    简介在Flutter中,LayoutBuilder是一个Widget,用于构建一个包含父组件约束的子组件。它可以获取父组件的约束信息并将其传递给子组件进行布局。LayoutBuilder的主要作用是让子组件根据父组件的大小进行自适应布局。LayoutBuilder的作用是在子控件构建之前获取父级容器的大小,并将其传......
  • LeetCode-Java题解 977. Squares of a Sorted Array
    题目地址:977.SquaresofaSortedArray解题思路:    又是一道双指针的题目,看见秒想到双指针(平方直接调用sort方法也行,但是这么写这题就没意思了)。但是,我一直在想,不增加空间消耗的情况下,如何进行排列,想了半天把自己绕进去了。开辟一个新数组,倒序放置就非常简单了。一定要利......