首页 > 其他分享 >Codeforces Round 919 (Div. 2)

Codeforces Round 919 (Div. 2)

时间:2024-02-02 22:57:19浏览次数:33  
标签:个数 路径 岛屿 Codeforces 距离 bfs 919 操作 Div

A

一笔带过,维护可能的最大值和最小值,并对于 3 操作特殊维护一下即可。

B

枚举第一个人删多少个数(贪心的想,一定删最大的几个,因为假如留着一定会对第二个人有利)

第二个人一定是翻的越多越好,且翻的都是最大的几个数。

使用前缀和容易计算答案。

C

妙妙题。

枚举 \(k\),接着发现 \(a_i \equiv a_{i+k} \pmod m\) 等价于 \(m\) 被 \(|a_i-a_{i+k}|\) 整除。

\(m\) 的最大值明显是 \(\gcd(|a_i-a_{i+k}|)\)。

答案为 \(\sum_{k}[m \geq 2]\)。

D

被诈骗了好久,结束前 12min 刚刚干掉的。

发现 \(\lceil \log_{2}10^{18} \rceil=60\)。

所以 \(60\) 次 2 操作以后的操作都是无效的。

你可能觉得那不排除无效操作后直接暴力嘛!不过万一 1 操作很多很多呢?

我们记录每一个 2 操作到上一个 2 操作的所有 1 操作,每次跳是跳 2 操作,而不是一个一个跳 1 操作。

容易实现,细节需要稍稍注意。

E

1 其实将整个序列分段,所以单个串的好的子串个数是容易求得的。

考虑一个 dp,\(f_{i,j}\) 表示还剩 \(i\) 的好的子串个数需要达成,上一个分段长度为 \(j\) 的方案数。

转移不难,但是直接转移是 \(O(n^3)\) 的,无法接受。

我搜了一发状态数,发现貌似很低,所以写了个记搜就过了,有没有大神给个解释。

F1

萌萌暴力题。

一条路径包围岛屿定义为,不存在一条从岛屿出发的八连通路径可以在不触及路径的前提下到达边界。

首先明显的二分答案,标记 \((x,y)\) 通过四联通能到达的“距离火山距离小于等于 \(\text{mid}\) ”的点。

再以岛屿所有点为起点做 bfs,看看能不能不触及路径的前提下到达边界。如果能,那就表示路径上所有点距离火山距离小于等于 \(\text{mid}\) 的一条包围岛屿的路径是不存在的。

记得提前多源 bfs 出每个点到最近火山的距离,另外,本题大量使用多源 bfs,建议模块化一点。

F2

一眼整体二分,但是比赛还剩下 10min,所以没写。

标签:个数,路径,岛屿,Codeforces,距离,bfs,919,操作,Div
From: https://www.cnblogs.com/acwing-gza/p/18004151

相关文章

  • Codeforces Round 799 (Div. 4)G. 2^Sort
    暴力枚举每一个端点然后去check显然是复杂度为\(O(n^2)\)是来不及的。我们考虑大区间满足小区间一定满足,用两个指针维护一下当前满足不等式的区间,然后长度达到就计算答案。思路很简单,主要是这类双指针的题目里面的一些细节需要注意为了更好写我们总是先维护区间然后再计算答......
  • react 点击按钮 div隐藏显示 添加展开收起动画效果
    js代码const[collapse,setCollapse]=useState(false)  const[showBack,setShowBack]=useState(false)  constchangeCollapse=()=>{//获取展开收起目标元素    constheaderDes=document.querySelector('.phone_header_des');  ......
  • [LeetCode] 2966. Divide Array Into Arrays With Max Difference
    Youaregivenanintegerarraynumsofsizenandapositiveintegerk.Dividethearrayintooneormorearraysofsize3satisfyingthefollowingconditions:Eachelementofnumsshouldbeinexactlyonearray.Thedifferencebetweenanytwoelementsin......
  • Codeforces Round 922 (Div 2)
    CodeforcesRound922(Div.2)A-BrickWall贪心的去想水平的越多越好,k随意改,那么可以构造出没有垂直的,那么计算水平的有几块就行#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'#defineAcodeios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#def......
  • Codeforces Round 922 (Div. 2)
    https://codeforces.com/contest/1918题目很有意思。A~Dvp中过了,但是太太太慢,亟须复健。E赛后过的,交互题真是难调!F看题解过的A.BrickWall*800用砖头砌墙有形状\(1\timesk\)的水平砖和形状\(k\times1\)的竖直砖,要不重不漏地铺满\(n\timesm\)的区域,问水平砖数量......
  • CF922 div2 D. Blocking Elements
    题面代码点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineIOSios::sync_with_stdio(0);cin.tie(0);cout.tie(0);#definerep(i,a,n)for(inti=a;i<=n;i++)#defineper(i,a,n)for(inti=n;i>=a;i--)#defineendl"\n"#definefif......
  • js+css 父div,里面有很多子div,当子div在父div中放不下时候,自动滚动子div,向左横向滚动,
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metaname="viewport"content="width=device-width,initial-scale=1.0">  <style>    #parentDiv{  ......
  • Codeforces Round 922 (Div. 2)
    CodeforcesRound922(Div.2)ps:25分钟AB都over,C给我打破防了、、、讨厌异或、、、我一直以为是数学结果、、、只能说一怒之下怒了一下A.BrickWall想法:要使得稳定性高,那么就多用1*2的砖块就行(A题可以直接找规律,通过样例)#include<bits/stdc++.h>usingnamespacestd;......
  • Codeforces Round 922 (Div. 2) 赛后总结
    自豪的是D题做出来了,悲哀的是B题没能做出来C题的绝对值最小D题,DP存不下状态就把状态放进所求值中比赛快结束的时候,我想,这个B题,它但凡需要我通过归并排序或者树状数组求逆序对,不比C题进制转化要难?于是我就猜了一个结论结论是对的,但不幸的是,我编程实现的时候出错了考虑怎样证......
  • Codeforces Round 770 (Div. 2)(数学异或奇偶性)
    B.FortuneTelling拿到题目看数据范围之后就知道暴力显然是来不及的。那么只能找性质。\(考虑x和x+3的不同\quad奇偶性不同\)\(然后考虑两种操作对于一个数的奇偶性的影响\)\(加法:同奇偶则运算结果是偶,不同则运算结果为奇\)\(异或:惊奇的发现异或也是这样的\)这样我们就......