AtCoder Beginner Contest 210题解
A B
过水,略...
C
统计长度为k的区间的最多本质不同的数。用尺取法维护下左右指针就可以了.调了许久的原因是更新答案时出现了问题。
当我移动指针时,我们应该移动一个就更新一个,而不是将移动与更新分离。这里就写到这了.
D
遇到这种有绝对值的题,最好的做法还是分类讨论将绝对值拆开.
拆开后就会发现可以用二维前缀和的方式保留当前子矩阵的max,之后扫一遍即可.
比赛时光记录左边的矩阵了忽略了右边的矩阵......还是思维上的漏洞啊
E
真的是光明正大的用图论的背景考察数论的知识。根据克鲁斯卡尔算法的思想,我们先将所有的边按照边权全排序,从小到大,对于当前每个操作,能用就用显然更优。考虑对于一个操作而言它做的贡献,这个题可以先不思考我们每个操作可以具体的连那些边,因为点的范围都到1e9了,显然是抽象的。u和v可以连边当且仅当\(u=(v+a_i)\)%\(N\),换句话说可以写成\(u=v+a_i+k*N\)式子还可以转换成\(u=v+k*gcd(a_i,N)\)即\(u和v在模gcd(a_i,N)的意义上是同余的\)。也就是说只使用第i个操作时所有模\(gcd(a_i,N)\)的值相同的点都可以连边。这时整个图就被分成了\(gcd(a_i,N)\)个联通块,因为模\(gcd(a_i,N)\)共有\(gcd(a_i,N)\)中结果。考虑如果一个一个操作的考虑的话无法确切的统计答案。考虑前i个操作一起,这个时候能够被连起来的点为\(u=v+k_1*A_1+k_2*A_2+...+k_i*A_i+k_0*N\),这个时候的联通块纪委即为\(gcd(k_1*A_1,k_2*A_2,...,k_i*A_i,k_0*N)\)而这时每个操作的答案我们就可以通过差分轻松计算了...
F
未做...
AtCoder Beginner Contest 210题解的更多相关文章
- AtCoder Beginner Contest 154 题解
人生第一场 AtCoder,纪念一下 话说年后的 AtCoder 比赛怎么这么少啊(大雾 AtCoder Beginner Contest 154 题解 A - Remaining Balls We ...
- AtCoder Beginner Contest 153 题解
目录 AtCoder Beginner Contest 153 题解 A - Serval vs Monster 题意 做法 程序 B - Common Raccoon vs Monster 题意 做 ...
- AtCoder Beginner Contest 177 题解
AtCoder Beginner Contest 177 题解 目录 AtCoder Beginner Contest 177 题解 A - Don't be late B - Substring C ...
- AtCoder Beginner Contest 184 题解
AtCoder Beginner Contest 184 题解 目录 AtCoder Beginner Contest 184 题解 A - Determinant B - Quizzes C - S ...
- AtCoder Beginner Contest 173 题解
AtCoder Beginner Contest 173 题解 目录 AtCoder Beginner Contest 173 题解 A - Payment B - Judge Status Summ ...
- AtCoder Beginner Contest 172 题解
AtCoder Beginner Contest 172 题解 目录 AtCoder Beginner Contest 172 题解 A - Calc B - Minor Change C - Tsu ...
- AtCoder Beginner Contest 169 题解
AtCoder Beginner Contest 169 题解 这场比赛比较简单,证明我没有咕咕咕的时候到了! A - Multiplication 1 没什么好说的,直接读入两个数输出乘积就好了. ...
- AtCoder Beginner Contest 148 题解
目录 AtCoder Beginner Contest 148 题解 前言 A - Round One 题意 做法 程序 B - Strings with the Same Length 题意 做法 ...
- AtCoder Beginner Contest 151 题解报告
总的来说,这次的题目比较水,然而菜菜的我并没有把所有题目都做完,话不多说,直接来干货: A:Next Alphabet 题目链接:https://atcoder.jp/contests/abc151/ ...
随机推荐
- leetcode-H2O生成(多线程)
现在有两种线程,氧 oxygen 和氢 hydrogen,你的目标是组织这两种线程来产生水分子. 存在一个屏障(barrier)使得每个线程必须等候直到一个完整水分子能够被产生出来. 氢和氧线程会被分 ...
- 简单学习PHP中的层次性能分析器
在 PHP 中,我们需要进行调试的时候,一般都会使用 memory_get_usage() 看下内存的使用情况.但如果想看当前的脚本 CPU 的占用情况就没有什么现成的函数了.不过,PHP 也为我们提 ...
- 常用的word技巧
自动生成标题 自动生成目录 显示导航列 修订 查看最终版本
- 第一次接触linux系统的你,必须要知道的概念
linux系统一切皆为文件 linux系统一个多用户系统 没有消息就是好消息 linux系统目录结构 Linux文件系统采用带链接的树形目录结构,即只有一个根目录(通常用"/"表示 ...
- Java集合框架总览
Java集合 Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口有 3 种子类型,Lis ...
- hadoop生态之面试题篇
一.hdfs的高可用 1.先说下自己的理解, 正常的hdfs有namenode,datanode,secondnamenode,但是second name node 不是真正意义上的namenode备 ...
- Initialization failed for 'https://start.spring.io' Please check URL, network and proxy settings.
今天新建一个spring web项目,发现报错了.问题如下. 排除了网络问题,找到了解决办法.打开设置,点击check connection 输入 https://start.spring.io 点击 ...
- 吴恩达--神经网络-week1-hw4
# Ref: https://blog.csdn.net/u013733326/article/details/79767169 import numpy as np import testCases ...
- C#实例:datagridview单元格合并
这是替C#微信交流群群友做的一个小实例,目的就是在datagridview选择对应行以后,点击button后获取对应行的ip,并执行相应的操作,其实我觉得这样的话button没必要非放置到datagr ...
- C++学习笔记:07 类的继承与派生
课程<C++语言程序设计进阶>清华大学 郑莉老师) 基本概念 继承与派生的区别: 继承:保持已有类的特性而构造新类的过程称为继承. 派生:在已有类的基础上新增自己的特性(函数方法.数据成员 ...