首页 > 其他分享 >AtCoder Beginner Contest 365题解

AtCoder Beginner Contest 365题解

时间:2024-09-30 19:03:31浏览次数:8  
标签:AtCoder code log 题解 线段 移动 区间 365 复杂度

A - Leap Year

按照题意模拟即可。

code

B - Second Best

按照题意模拟即可。

code

C - Transportation Expenses

考虑当 \(x\) 增大时,\(\min(x, a_i) = x\) 的项会越来越少。换言之,当 \(x\) 足够大时,\(ans = \sum a_i\),若此时 \(ans > M\) 则说明无论补贴多少,这时答案都是一定的。

由于 \(x\) 越大花费一定越多,所以我们的花费是单调的,可以二分判断,复杂度 \(O(n \log n)\)。

code

D - AtCoder Janken 3

考虑条件:高桥从未输给过青木,这意味着每轮高桥的手势固定在平局和胜利的手势,于是我们可以有 \(f_{i, 0/1}\) 表示前 \(i\) 局,当前平/胜的最大胜场。

分类讨论上一步和当前步的手势即可。

code

E - Xor Sigma Problem

首先把式子里长度 \(\ge 2\) 的限制改为长度不限,然后把 \(ans - \sum a_i\) 即可。

然后再套路的把区间异或转化为前缀和。

因为我们发现不同位之间的贡献相互独立(因为异或是不进位加法),所以可以拆位计算每一位的贡献。

具体的,我们把所有 \(s_i\) 的第 \(i\) 位拆出来,如果当前为 \(1\),与 \(0\) 异或才有贡献,统计前面的 \(0\) 个数即可。\(0\) 同理。

复杂度 \(O(n \log V)\)。

code

F - Takahashi on Grid

思考实际上的过程,假设起点在左侧,终点在右侧。

过程一定形如:

  • 当右侧不为墙时,移动到右侧。
  • 否则,向上/下移动的第一个不为墙的位置。回到上一步。

因此,我们试着把移动过程中经过的区间分为两类:

  • A 类,区间直上直下,不需要额外的上下移动。
  • B 类,区间不能直上直下,需要额外的上下移动。

特殊说明,在这里我们只计算经过这些区间的纵向移动距离,因为横向移动距离实际上就是起终点的横坐标之差。

不难发现,经过 A 类需要的纵向移动距离为 \(0\)。
对于 B 类,我们发现这样的路线是存在一个 起点终点 的,从目前坐标一定走到这条路径的起点,再走到终点是更优的。

此时 B 类的贡献即为起终点的纵坐标之差。

不难发现,我们的整体路线实际上就是若干个 AB 类路径拼接而成,而如果想询问 任意 区间的答案,不妨采用线段树维护。

具体的,对于两个区间,我们需要分类讨论以确定合并后的线段类型。

  • 两个区间都为 A 类

区间可以分为有交无交。

具体讨论合并

  • 两个区间都为 B 类

G - AtCoder Office

如果用线段树维护,并把在的时间段设为 \(1\),那么询问相当于求线段树合并后满足和为 \(2\) 的段的长度,于是我们直接线段树合并即可。

但是考虑一种情况:当 A,B 所在段情况为

A:1 3 5 7 9 .. B: 2 4 6 8 10 ..

我们的线段树合并一定会递归到叶子,那么单次的复杂度就是 \(O(n \log n)\),总复杂度会达到 \(O(qn\log n)\)。

不过发现由于 \(m\) 是定值,那么均摊下来这样的段数一定不会太多,所以我们考虑记录先前询问过的答案,防止重复询问类似 A,B 一样的段,这样均摊下来就能过了。

均摊复杂度(也许):\((q\log n + n \log n)\)。

code

标签:AtCoder,code,log,题解,线段,移动,区间,365,复杂度
From: https://www.cnblogs.com/Rainsheep/p/18442330

相关文章

  • AtCoder Beginner Contest 371(ABCDE)
    A个人直接硬解,讨论情况也并不复杂代码:#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=1e6+10;voidsolve(){chara,b,c;cin>>a>>b>>c;if(a=='<'){if(c=='<......
  • 常见问题解决 --- 如何解决CROS跨域问题
    问题原因:前后端不是一个服务导致的浏览器禁止访问的安全问题。比如前端部署在http://x.x.x.x:8888,后端部署在http://x.x.x.x:9999,由于端口不一致,浏览器安全起见不允许一个web页面有不同ip或端口的地址发送出流量。在开发者工具可以看出CROS错误。解决办法:关闭浏览器安全策......
  • 小澳的葫芦 题解
    网上这么多大佬用01分数规划(完全不会),这里写一篇分层图造福社会。前置芝士:最短路。一个有向无环图,第一个想到的就是拓扑排序。定义\(dp(i)\)为到达第\(i\)个点所需要的经过点数和边权和(一个pair),正常转移即可。然后就发现假了。因为如果能够这样转移,就一定满足:\[\fra......
  • 题解:P6902 [ICPC2014 WF] Surveillance
    可以在cnblog中阅读。考虑弱化版链怎么做,每次选取左端点在当前位置前面的线段,跳到其中最大的右端点,可以维护一个数组表示起点为\(i\)的目标位置,可以做到\(O(n+k)\)。考虑多次询问一段区间\([l,r]\)的答案,这时如果暴力从\(l-1\)开始跳是\(O(n^2)\)的,只需要一个倍增数......
  • P11093 [ROI 2021 Day 2] 树制游戏 题解
    考虑对于一个解,将每对\((e_1,e_2)\)中\(e_1\)的终点权值\(+1\),\(e_2\)的起点权值\(-1\),那么最终每个点的权值一定是\(0\)。考虑先将每条边的终点权值都\(+1\),那么现在要做的就是选一些点将其起点和终点的权值都\(-1\),使得最终每个点的权值为\(0\),于是边的方向就不重要......
  • CF582D Number of Binominal Coefficients 题解
    CF582DNumberofBinominalCoefficients题解纪念一下自己第一道独立A掉的黑题/CF3300。题目大意给定质数\(p\)和整数\(\alpha,A\),求满足\(0\lek\len\leA\)且\(p^{\alpha}|\binomnk\)的数对\((n,k)\)的个数。Solve首先,我们引入Kummer定理,即:\(p\)在......
  • [ARC061E] すぬけ君の地下鉄旅行 题解
    题目传送门一些废话今天登洛谷的时候发现主页少了一道紫题。???怎么降绿了(建议升蓝)???AND这是蒟蒻的第一篇题解简介很容易地想到,这是一道最短路问题,要求在一个有\(N\)个站点和\(M\)条地铁线路的图中,从站点\(1\)到站点\(N\)的最小花费。每条线路由一个公司运营,乘坐同一......
  • 题解:AT_arc071_c [ARC071E] TrBBnsformBBtion
    首先看到这个奇特的转化方式和常规的数据范围,我们不难想到一定有什么规律。我们可以先想一个转化后的问题:每次询问的两个字符串都可以按照题目要求进行转化,问它们最后能不能转化成同一个字符串。这个问题很简单,我们只需要把两个字符串中的A全都换成BB,最后对\(3\)取模,看看此......
  • 【题解】【模拟,字符串】—— [NOIP2011 普及组] 统计单词数
    【题解】【字符串】——[NOIP2011普及组]统计单词数[NOIP2011普及组]统计单词数题目描述输入格式输出格式输入输出样例输入#1输出#1输入#2输出#2提示1.思路解析2.AC代码[NOIP2011普及组]统计单词数通往洛谷的传送门题目描述一般的文本编辑器都有查找......
  • 【题解】【子集枚举】—— PERKET
    【题解】【子集枚举】——PERKET[COCI2008-2009#2]PERKET题目描述输入格式输出格式输入输出样例输入#1输出#1输入#2输出#2输入#3输出#3提示数据规模与约定说明1.思路解析2.AC代码[COCI2008-2009#2]PERKET通往洛谷的传送门题目描述Perket是一种流行......