首页 > 其他分享 >Ucup

Ucup

时间:2024-10-06 20:22:11浏览次数:7  
标签:end 题意 limits sum Ucup pmatrix ans

比赛链接

A

矩乘优化 DP,卡常。

B

题意

给一个正整数序列 \(A\),对 \(k \in 0 \dotsb N\),求 \(\left\{1,2, \dotsb ,N \right\}\) 的子集 \(S\) 的数量使得 \(S\) 有一个子集 \(T\) 满足 \(|S|-|T|=k\) 且 \(\sum\limits_{i \in T} A_i \ge M\)。

分析

不是很好想的 DP。

答案初始为 \(2^n\),考虑扣掉不合法的方案数。首先 \(S\) 的大小至少为 \(k\)。

\[ans=2^n-\sum\limits_{i=0}^{k-1}\begin{pmatrix} n \\ k \end{pmatrix} \]

考虑到小于比大于好求,将题意对称转化,计数 \(S\),其所有子集 \(T\) 满足 \(|S|-|T|=k\) 则 \(\sum\limits_{i \in T} A_i < M\)。

定义 \(f(i,j)\) 表示选了前 \(i\) 个的一部分,和为 \(j\) 的方案数,\(g(i,j)\) 表示选了前 \(i\) 个的一部分,必须选 \(i\),和为 \(j\) 的方案数,转移是显然的:

\[f(i,j)=f(i-1,j)+f(i-1,j-A_i) \]

\[g(i,j)=f(i-1,j-A_i) \]

定义 \(sum_i\) 表示前 \(i\) 个数中选和不超过 \(m\) 的方案数(必须选 \(i\)),则 \(sum_i=\sum\limits_{j} g(i,j)\)。

扣除的第二部分可表示为 \(\sum\limits_{i=0}^{n-k} sum_i \times \begin{pmatrix} n-i \\ k \end{pmatrix}\),表示枚举 \(T\) 的范围(必须包含最后一位非常巧妙),在后面剩下的随便选 \(k\) 个组成 \(S\)。

于是可得最终 \(ans\) 的表达式。

\[ans=2^n-\sum\limits_{i=0}^{k-1}\begin{pmatrix} n \\ k \end{pmatrix}-\sum\limits_{i=0}^{n-k} sum_i \times \begin{pmatrix} n-i \\ k \end{pmatrix} \]

时间复杂度 \(O(n \times m)\)。

C

题意

甲乙轮流完成 \(n\) 项工作,甲做第 \(i\) 项工作的时间是 \(A_i+B_j\)(甲之前做了 \(j\) 项工作),乙做第 \(i\) 项工作的时间是 \(C_i+D_j\)(乙之前做了 \(j\) 项工作)。

求做完的最小时间。

分析

先假设全是甲做的,分开维护 \(A,B\) 的贡献 \(ans_1\) 和 \(C,D\) 的贡献 \(ans_2\)。注意到将第 \(i\) 项工作从甲做变为乙做对 \(ans_1\) 产生 \(B_i-A_i\) 的贡献,而 \(ans_2\) 实际是 \(C,D\) 的一段前缀和,可以预处理。

所以可以把 \(B_i-A_i\) 插进堆里,每次取出最小值,过程中取 \(ans_1+ans_2\) 的最小值。

时间复杂度 \(O(n \log n)\)。

H

神秘期望题。

I

题意

求满足 \(\exists i,A_{P_1}+ \dotsb + A_{P_i}=A_{P_{i+1}}+ \dotsb A_{P_N}\) 的排列 \(P\) 的个数。

分析

直接 DP,考虑往等式左右两边填数字。

定义 \(f(i,j,s)\) 表示考虑 \(A\) 的前 \(i\) 位,此时等式左边有 \(j\) 个,左边和为 \(s\) 的方案数,则有转移:

\[f(i,j,s)=f(i-1,j-1,s-A_i)+f(i-1,j,s) \]

分别表示放在左边或右边,然后滚动数组或倒序转移优化掉第一维就行了。

时间复杂度 \(O(n^4)\)。

K

题意

有一个初始全 \(0\) 的序列 \(H\),每次可以选择一段连续的登高序列整体加一。要求序列的差分各项有最小值 \(D\)。

问最小进行整体加一的步骤数。

分析

考虑 DP。

定义 \(f(i,j)\) 表示前 \(i\) 个位置,当前高度为 \(j\) 的最小花费,枚举某一位是上升还是下降,在下降的时候统计贡献,则有转移:

\[f(i,j+D_i) \longleftarrow f(i,j) \]

\[f(i,j-D_i) \longleftarrow f(i,j)+D_i \]

L

最先开的一题,居然想到菊花图就不会了,耻辱柱。

题意

给一个不降序列 \(X\),定义图的权值为 \(\sum^n_{i=1}\sum^n_{j=i+1} X_{dis(i,j)}\),构造一个 \(n\) 点 \(m\) 边的无向图使得图的权值最小。

分析

图的权值和点的编号无关。可以先来一张菊花图,这样保证了最大用到 \(X_2\)。然后就有多少边连多少边,任意一对距离为 \(2\) 的点都会在连边后变为距离为 \(1\)。随便怎么连。

时间复杂度 \(O(m)\)。

M

题意

给长度为 \(n\) 的 \(A\),长度为 \(m\) 的 \(B\)。从 \(A\) 中选 \(m\) 个组成 \(C\) 与 \(B\) 匹配,最小化代价 \(\sum\limits_{i=1}^{m} |B_i-C_i|\)

分析

定义 \(f(i,j)\) 表示在 \(A\) 的前 \(i\) 个中,\(B\) 的前 \(j\) 个中选一部分的最小花费.

\[f(i,j)=\min \begin{cases} f(i-1,j) \\ f(i-1,j-1)+|A_i-B_i| \end{cases} \]

答案是 \(f(n,m)\)。

标签:end,题意,limits,sum,Ucup,pmatrix,ans
From: https://www.cnblogs.com/tai-chi/p/18449358

相关文章

  • ucup 做题记录
    ucup做题记录https://www.cnblogs.com/yhddd/p/18415768The3rdUniversalCup.Stage1:St.PetersburgAbitset维护\(f_{i,j}=a_i<a_j\)。每\(m\)个点划一个段,统计跨过段的答案,维护一段的后缀or。C从大往小加,线段树维护区间前缀后缀和最大连续\(1\)。D在\(0\)......
  • Ucup2 -19题解
    Ucup2-19题解:​ 这场的题还是挺有意思的,之前回家后因为过年的准备+美赛摆了挺久没训练,现在开始复健,顺便复活一下死去已久的博客。​ 水题就不赘述了,这次主要说说几道比较难的但思路很有趣的题目,顺序就按难度排吧。G.LCACountingProblem-G-Codeforces题意:给定一颗无向......
  • ucup hefei 题解
    比赛链接B很有意思的题首先题目的要求为可以拆分成\(2\)个不相交的不降子序列根据\(dilworth\)定理,最小链覆盖\(=\)最长反链,所以要求最长反链\(\le2\)即原序列的逆序列的最长不降子序列长度\(\le2\)不难得到一个\(dp\)做法为:令\(f_{i,j}\)为到数\(i\),最长上......
  • ucup nanjing 题解
    比赛链接D收获很大的一道题首先考虑朴素的\(dp\),令\(f_{x,i}\)为\(x\)子树中的每一个叶子到\(x\)的距离都为\(i\)的最小代价不难列出\(dp\)式子为:\(f_{x,i}=\min\limits_{i\in\{0,1\}}\{cost(u,i)+\sum\limits_{v\inson(u)}f_{v,x-i}\}\),其中\(cost(u,i)\)为把......
  • ucup 题目乱炖
    Season2022#6299.BinaryString如果\(0\)的个数小于\(1\)的个数那么就反转\(01\)以及反转序列,接下来假设\(0\)的个数大于等于\(1\)的个数。称有\(11\)的序列为”未完全展开的“,那么序列的种类数有两个阶段:展开过程中和展开之后的。在展开之后如果知道序列那么用......
  • UCUP-ZJ M. Minimum Element Problem
    题意给定一个位置x,求在\(p_x\)分别取1-n的所有情况下,对应笛卡尔树不同的排列个数。题解先不考虑\(p_x\),列出转移式,发现是卡特兰数。进一步地,可以把排列对应笛卡尔树意义下的不同构数,和二叉树不同构数等价联系起来:因为对于任何一个二叉树,按照中序遍历在上面填1-n,就可以唯一确定......
  • 2023 ICPC香港区域赛(UCup) D Shortest Path Query
    啊对对对,下次题解写详细一点好不好。首先考虑naive的\(O(n^2)\),记\(dp[i][j]\)表示从\(1\)走到\(i\),恰好走了\(j\)条黑边的时候走过白边的最少数量。\(O(nm)\)......
  • Ucup 3. Poland E
    【题意】求(题意已经经过简化)\(n\le10^{11}\)【分析】这里考虑两个整除分块嵌套的时间复杂度。等于有结论:\(1^k+2^k+3^k+...+n^k\)。当\(k\)是正整数的......
  • Ucup 3. Poland K
    【题意】给定两个集合\(S,T\),集合里每个元素都是一个二元组\((v_i,s_i)\)。求\(\min\limits_{i\in[1,|S|],j\in[1,|T|]}{\cfrac{s_j-s_i}{v_j+v_i}}\)。......