首页 > 其他分享 >联考 Round 1

联考 Round 1

时间:2024-03-16 10:23:22浏览次数:15  
标签:得分 期望 复杂度 Round 算法 条边 联考 dp

联考 Round 1

A

场切题,把部分分全打完,发现是脑残题,消愁了。

算法 1

期望得分:\(30pts\)。

把每个点分别删去,看剩下的图是不是棵树。

算法 2

期望得分:\(20pts\),结合算法 1 可以得到 \(50pts\)。

输出所有度数为 \(1\) 的点。

算法 3

期望得分:\(20pts\),结合算法 1,2 可以得到 \(70pts\)。

显然原图是一个基环树,画一棵线段树,显然你选的这条边删去后必然达成了“破环”的效果。

所以,你必然要选择环上的一个点。然后因为最后是棵树,所以你要选度数为 \(2\) 的点。

瓶颈在 dfs 找环,时间复杂度 \(\mathcal O(n)\)。

算法 4

期望得分:\(100pts\)。

最后删完的图必然有 \(n-2\) 条边,所以必然要删去 \(m-(n-2)\) 条边。也就是这个点的度数是 \(m-n+2\)。

然后因为是棵树,所以必然联通,这个点还必须不是割点。

因而,只需求出度数是 \(m-n+2\) 且不是割点的点即可。用 Tarjan 实现,时间复杂度 \(\mathcal O(n+m)\)。

B

算法 1

期望得分:\(35pts\)。

显然你发现,对于每头牛,你希望他的深度越小越好。所以我们希望在有牛的情况下,每条边都被占满。然后时间轴具有交换律,也就是说,你可以假设 \(t\) 的时间同时进行,或者说把每条边的容量都 \(\times t\)。

所以考虑一种给定了 \(t\) 以后的树形 dp。

对于 \(dp_u=c_u+\sum_{v\in son_u} \min(dp_v,m_v\times t)\)

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

算法 2

期望得分:\(100pts\)。

考虑 \(g_u=m_u-\sum_{v\in son_u} m_v\)。

发现,在所有 \(g_i>0\) 的点中,\(\lfloor \frac {c_i} {g_i} \rfloor\) 最小的点 \(i\) 一定先把牛送完。牛送完之后把点 \(i\) 用并查集合并到点 \(f_u\) 上,用并查集维护合并的过程即可。

用堆维护所有 \(g_i>0\) 的点的 \(\lfloor \frac{c_i}{g_i} \rfloor\) ,把询问排序,处理 \(<t\) 的时刻的合并,合并后的 \(c_1-g_1\times t\) 就是答案。

C

算法 1

期望得分:\(36pts\)。
设 \(dp_{i}\) 表示前 \(i\) 个数的分组方案树。
转移方程为:

\[dp_i=\sum_{i-a_i<j<i \bigwedge \min \{ a_{j+1},a_{j+2},\cdots,a_i \} \le j-i \le \max{\{a_{j+1},a_{j+2},\cdots,a_i\}}} dp_j \]

算法 2

期望得分:\(16pts\),结合算法 1 可以得到 \(52pts\)。

设两种不同的 \(a_i\) 分别记为 \(p,q(p<q)\)。

预处理距离 \(i\) 最近的 \(j\) 满足 \(a_j \neq a_{j+1}\)。

也就是对于 \([a_{j},i]\) 包含了所有的两种 \(p,q\),然后同时还要满足 \(p\le i-j+1\leq q\)

所以对于 \(a_i\),会对他产生贡献的 \(j\) 一定在 \([1,j] \cap [i-q+1,i-p+1]\),这显然是一个连续段,可以通过树状数组维护。

注意一个特例:在 \([j+1,i]\) 这一段,全部都是 \(p'\) 且 \(j+1\le i-p'+1\le i\),则 \(dp_i\) 还要额外加上 \(dp_{i-p'+1}\)。

算法 3

期望得分:\(16pts\),结合算法 1,2 可以得到 \(68pts\)。

因为没有上限,\(len\) 在增长的同时,\(\min{a_i}\) 只会越来越小,满足条件的 \(j\) 必然构成一个 \([1,r]\) 的区间。

所以,二分出这个 \(r\),然后用树状数组维护即可。时间复杂度 \(O(n\log n)\)。

算法 4

别急让我找 jzy 学学。

D

算法 1

期望得分 \(65\) 分。

显然当前的坐标和学会的方言一定都是连续的区间,因为想要走到区间外的某个村庄时,走回去找那位老者学习就行了。

记一下当前的坐标和方言区间,随便 DP 一下就是 \(O(n^4)\) 或者 \(O(n^3)\) 的了。

标签:得分,期望,复杂度,Round,算法,条边,联考,dp
From: https://www.cnblogs.com/wtc-qwq/p/18076775

相关文章

  • 省选联考 2024
    省选联考2024前言有的题没必要一定要推到满分才可以,比较阴间的写个八九十的分就很不错了,特别阴间的写个暴力就算了,没必要一定要全学懂是不是/fad[省选联考2024]季风传送门讲题目转化为在\((0,0)\),求最小\(m\)使\(|x-\sum\limits_{i=0}^{m-1}x_{i\modn}|+|y-\sum\limi......
  • Educational Codeforces Round 163 (Rated for Div. 2)
    EducationalCodeforcesRound163(RatedforDiv.2)A-SpecialCharacters解题思路:一个相同的连续段会贡献两个特殊字符,所以答案一定是偶数,找个不同的数分隔开即可。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll......
  • 3.14 CF Round 933 (Div. 3)
    (1)CF1941BRudolfand121给定一个长度为\(n\)的序列\(a\)。求最少进行多少次操作后所有\(a_i=0\):选择一个\(2\lei<n\),并让\(a_i\getsa_i-2,a_{i-1}\getsa_{i-1}-1,a_{i+1}\getsa_{i+1}-1\)。我们记选择\(i=x\)时的操作为\(\opera......
  • Codeforces Round 933 (Div. 3)赛后总结
    CodeforcesRound933(Div.3)B从边缘开始计算,因为边缘肯定只能一个一个减,就可以遍历得到答案.代码C只要对mapie特判,然后判断map和pie的个数就是答案了。D(记忆化搜索)可以通过二维数组来标记搜索状态,将已经出现过的状态直接返回,极大减少时间。#include<bits/stdc++.h>......
  • Codeforces Round 933 (Div. 3) A - G 题解
    CodeforcesRound933(Div.3)A-RudolfandtheTicketSolution因为\(n\)很小,直接枚举\(b_i+c_j\)所产生的所有数字Code#include<bits/stdc++.h>usingnamespacestd;voidsolve(){intn,m,k;cin>>n>>m>>k;intans=0;......
  • 【NOIP2013模拟联考8】匹配(match) 题解
    B组都说看不懂……我也解释不清啊……只能写这么详细了ac自动机ac自动机上dp怎么才能判定一个母串是否包含几个模式串?我们可以想到ac自动机,考虑对模式串建ac自动机,如果我们跑到了一个标记为tail的节点,说明我们的母串包含了这一个模式串。所以我们设\(f[i][s][......
  • Codeforces Round 933 (Div. 3)
    CodeforcesRound933(Div.3)AA-RudolfandtheTicket暴力查看代码voidsolve(){intn,m,k;cin>>n>>m>>k;vector<int>b(n),c(m);for(inti=0;i<n;++i)cin>>b[i];for(inti=0;i<m;++i)cin>>c[i];......
  • Codeforces Round 933 (Div. 3)
    CodeforcesRound933(Div.3)A-RudolfandtheTicket解题思路:暴力。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingpiii=pair<ll,pair<ll,ll>&......
  • Codeforces Round 933 (Div. 3)
    A.RudolfandtheTicket#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;usingldb=longdouble;#defineinti64usingvi=vector<int>;usingpii=pair<int,int>;constintinf=1e9;co......
  • wpf datagrid row background color alternatively changed based on row index,Alter
    <Windowx:Class="WpfApp7.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.c......