ICPC区域赛真题
文章平均质量分 86
秦三码
石油大学
展开
-
2023“钉耙编程”中国大学生算法设计超级联赛(3)
首先这一变换具有一个性质,即除了原始的a,b的大小关系不定外,处于“变化”过程中的a,b是有确定的大小关系的,且可以根据这一大小关系直接推出上一步的变换。利用这一性质,考虑贪心做法,每次我们获取当前a,b,c最大极差,将造成这一最大极差两个数,小的那个,替换为“替代方案”,也就缩小的极差。其中特别注意的是j的下限,它等于前i个数字由高到低放置的时候的结尾数字。这样排序,遇到AB+0时计算当前已知的个数,遇到AB是计算已知个数,二者相减,即可得出答案,也就是大于等于AB,小于AB+0的,减去严格小于AB的。原创 2023-08-02 13:40:10 · 223 阅读 · 0 评论 -
2022 China Collegiate Programming Contest (CCPC) Weihai Site 2022CCPC威海(7/13)补题
二分龙蛋数量,把全部龙蛋需要的各个材料数都加进大根堆,我们现在就需要把他们都变成0.考虑大的怼大的,当前材料靠当前bi消灭的时候,如果能整除,那就直接正常分类讨论就行了。因为当前堆顶的一定是最大的,而当前bi是一定要用的,无论用在哪个材料,都只是消灭掉一个而已。如果需要多个bi,但是不能整除的话,多出来的那一部分材料不要占用当前bi一次,放进堆里,这样后面小的bi可以冲抵掉他。当xiyi有0的时候,考虑从小到大消去,把yi为0的作为每段线段的开头,之后x值连续递增1的加入次线段,代表了这段线段是受限线段。原创 2023-06-08 20:51:52 · 301 阅读 · 0 评论 -
2020-2021 Winter Petrozavodsk Camp, UPC contest - 补题(6/12) Petrozavodsk 冬令营
无向图找桥的时候,我们在tarjan的基础上,加了一个fa,也就是之前访问的点,那么这其实就可以借鉴树求直径的套路,每个点设置dp值代表由这个点出发的两条最长链。这一点用数学知识直接运算。再进行m-1次列合并,连边m-1个(此时每一列的行联通块只剩下1个),(n-1)*m+m-1等于n*m-1。另外,特判n=1,n=2,n=2的时候,2号人一定不能赢,否则2号人赢的一定是1号,不满足题意。加入V边的时候,如合并2,5列,我们发现,原来行合并的两个点,即(3,2) (5,2)两个红点。因为这是可以传递的。原创 2023-06-06 19:33:20 · 286 阅读 · 0 评论 -
The 2021 China Collegiate Programming Contest (Harbin)-2021 CCPC 哈尔滨(7/13)
比如4号节点管辖了5个叶子,2个红色,2个绿色,一个蓝色,我们当前自然是选择红绿都行,那么就都放进4号点的multiset,其dp值就代表4号点选择红或者绿时的dp值,也就是说,我们获得了dp值的共享。1 1 0 0 0 1 1 (右小) 这种,我们删除,1,2,4,8,16,其中4,8,16全部被32吸收,他会吐出来32-4-8-16=4 ,也就是右侧第一个0,这样我们发现,这个过程就是向高位借1的。,注意当前位置不要删除这个借来的1,然后继续往前推,之前借到的1,也会被依次删除。原创 2023-06-05 21:45:22 · 270 阅读 · 0 评论 -
2022 China Collegiate Programming Contest (CCPC) Guilin Site 2022CCPC 桂林 (7/13)
严格按照小指向大的方式连边,获取每个位置最小值的时候,拓扑序上每次取max。贪心的想,我们一定是把当前右端点最小的给赋值,因为更大一些的可以在i后面被赋到。手推不难发现,只要是进行一次翻转操作,之后无论进行任何操作,得到的结果都是一样的。我们现在需要获取的是,翻转操作之前数组的各项情况,再把他当成一个新的数组来求最终的结果。这一过程可以合并一个点连接的两条链,也可以取更深一层搜索获得的链,二者取最大值即可。一种是有交点,画图分析得,只有一个焦点的时候最优,进一步转化为一个点连接的四条链最大值。原创 2023-05-31 20:34:35 · 202 阅读 · 1 评论 -
The 2021 ICPC Asia Nanjing Regional Contest (XXII Open Cup, Grand Prix of Nanjing) -2021 南京补题(7/13)
再在末尾加不同的一个数字,发现加的数字x=max(a[1]...a[i-1])的时候,ans[i]=ans[i-1], max(a[1]....a[i-1])的时候,是ans[i]=ans[i-1]+2+(i-1-pos2+1) pos2指前面最大值第二次出现的位置与i-1的位置。枚举t=3的节点,当该节点是最大的dp0+val-dp1时,选择次大的,否则选择最大的。原创 2023-05-31 12:40:01 · 307 阅读 · 0 评论 -
2022CCPC 绵阳 2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite 补题(6/13)
但本题并不是从前往后推,我们设置dp[i][j][k]为 包括i这局在内,A选了j,B选了k的收益,当前的dp值完全由后面的状态转移而来,写for循环dp的话,不是太好写,改写为记忆化,nown,nowa,nowb代表第几轮,A选了几个,B选了几个。贪心的想,我们尽可能的把全部蝴蝶汇聚的一个点,当然不可能是1这个点,而是1的儿子们。nown为奇数的时候,A开始选,前nown-1的状态是,A选了nowa个,BAN了(nown/2)-nowa个,B选了nowb个,BAN了(nown/2)-nowb个。原创 2023-05-27 15:47:07 · 613 阅读 · 1 评论 -
The 2022 ICPC Asia Nanjing Regional Contest - 2022南京补题记录 ABDEGIJM (8/13)
相反,先匹配本集合的边,能够匹配完全时,x可以返回给他的原集合,不能完全匹配时,也可以调用x进行匹配。二分最终答案,[0,1e18],难在check函数怎样去写,首先一个值满足第k大必定是大于等于他的数字个数大于等于k,数列本身存在的,我们累加,对于不存在的,我们每一个多考虑把他们变成>=x的,x为二分答案,其对应的等差序列左端点是一个区间,我们对这个区间进行差分+1,代表,在这些位置放置等差数列首项会有1的收入,由于我们必须放置且只能放置一个等差数列,那么就枚举每个位置放置的贡献取最大即可。原创 2023-05-22 23:55:36 · 1333 阅读 · 0 评论 -
2022-ICPC-杭州补题 (7/13) ACDFGKM
本题是物体装包问题,一个物体装入现有包的时候,如果能完全装下,就不能只装一部分,否则,在装入一部分可以的时候,要必须装满。为了让ans最小,考虑让 kk最小, -sum小于0,-sum/gg 时, kk*gg恰好为最小的大于等于-sum的数字,因题目保证有界,故kk*gg一定不会越界,这样ans得以求出,字符串产生逆序对的时候,当且仅当两种情况,一种是,前缀相同,出现一对不相同字母,一种是,一个字符串是另一个的前缀。本题给的是图,图和树的关系,有比较热门的一点,那就是基环树。字典树,首先肯定要想到预处理。原创 2023-05-18 02:12:59 · 1472 阅读 · 6 评论