AtCoder Beginner Contest 178 个人题解(C组合问题 + 快速幂,D规律,E数学公式变形)
补题链接:Here
A - Not Editorial
给出 \(x = 1\) 则输出 0;给出 \(x = 0\) 则输出 1
利用
x ^ 1可以快速实现 \(x\) 的转换
B - Product Max
比较端点乘积的大小即可
C - Ubiquity
题解:输入一个N,\(0<=A_i<=9\),所以一共 \(10^N\) 种情况,序列中元素个数为 \(N\),序列中一定存在 0 和 9,要得到至少有一个0和一个9的所有情况,思路使用总共的情况减去只有一个 0 、只有 一个 9 、或者 0 和 9 都没有的情况。
ans = (ans + mod) % mod;因为取余后,各数的大小发生变化,这里防止
ans减为负数!!!
typedef long long ll;
const ll mod = 1e9 + 7;
ll qpow(ll a, ll b) {
ll ans = 1;
a %= mod;
for (; b; a = a * a % mod, b >>= 1)
if (b & 1) ans = ans * a % mod;
return ans;
}
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
ll n;
cin >> n;
ll ans = qpow(10, n) - qpow(9, n) - qpow(9, n) + qpow(8, n);
ans %= mod;
cout << (ans + mod) % mod;
return 0;
}
D - Redistribution
PS:先是看了半天,然后写几组样例,就找到规律了
\(a_i = a_{i - 1} + a_{i - 3}\\a_0 = 1,a_1 = a_2 = 0\)
最后别忘记取模即可
E - Dist Max
题意:二维平面上有N个点 \((x_i,y_i)\)。 找到其中两个点的最大曼哈顿距离。
思路:两点之间的位置关系可以有以下两种模式。

考虑两个最远点之间的位置关系...
- \(x_i + y_i\) 的最大值 \(M_1\) 和最小值 \(m_1\) 之间的差异,当两个最远的点是右侧图形时;
- \(x_i-y_i\) 的最大值,当两个最远的点是右侧图形时,\(M_2\)与最小值之间的差异值 \(m_2\)
因此,从直觉上讲,最 \(max(M_1-m_1,M_2-m_2)\) 似乎是答案。 让我们在公式转换的基础上进一步说明这一点。
公式变形:
关于绝对值问题前提:\(|x| = max(x,-x)\)
通常情况下,前景会更好。 对于每对(i,j),即使xi <xj,它也不会失去通用性(反之亦然,交换)。
=(x_j - x_i +max(y_j-y_i,y_i-y_j))\\
=max((x_j + y_j) - (x_i + y_i),(x_j - y_j)-(x_i,y_i))
\]
由上面的变形
- 求各个 \((i,j)\) 的 \((x_j + y_j) - (x_i + y_i)\) 的最大值
- 求各个 \((i,j)\) 的 \((x_j - y_j) - (x_i - y_i)\) 的最大值
所以再回到上面:\(max(M_1-m_1,M_2-m_2)\) 正是答案
- \(\mathcal{O}(N)\),但由于用了
sort时间复杂度为 \(\mathcal{O}(NlogN)\)
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int n;
cin >> n;
vector<int> a, b;
for (int i = 0, x, y; i < n; ++i) {
cin >> x >> y;
a.emplace_back(x + y);
b.emplace_back(x - y);
}
sort(a.begin(), a.end());
sort(b.begin(), b.end());
cout << max(a[n - 1] - a[0], b[n - 1] - b[0]);
return 0;
}
AtCoder Beginner Contest 178 个人题解(C组合问题 + 快速幂,D规律,E数学公式变形)的更多相关文章
- KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解
KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解 哦淦我已经菜到被ABC吊打了. A - Century 首先把当前年 ...
- AtCoder Beginner Contest 178 E - Dist Max 题解(推公式)
题目链接 题目大意 给你n个点(n<=2e5)要你求所有点中两个点最短的曼哈顿距离 曼哈顿距离定义为d(i,j)=|x1-x2|+|y1-y2|. 题目思路 想了很久也没有什么思路,其实就是一个 ...
- AtCoder Beginner Contest 178
比赛链接:https://atcoder.jp/contests/abc178/tasks A - not 题意 给出一个整数 $0 \le x \le 1$,如果 $x$ 是 $0$ 就输出 $1$ ...
- AtCoder Beginner Contest 089完整题解
A - Grouping 2 Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement There a ...
- 2018.09.08 AtCoder Beginner Contest 109简要题解
比赛传送门 水题大赛? 全是水题啊!!! T1 ABC333 就是判断是不是两个数都是奇数就行了. 代码: #include<bits/stdc++.h> using namespace ...
- Atcoder Beginner Contest 138 简要题解
D - Ki 题意:给一棵有根树,节点1为根,有$Q$次操作,每次操作将一个节点及其子树的所有节点的权值加上一个值,问最后每个节点的权值. 思路:dfs序再差分一下就行了. #include < ...
- 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 ...
随机推荐
- 用友NCC&WMS&泛微 系统对接案例分享
用户故事 产品版本:NCC2105 故事是这么开始的,用友全国伙伴社区的社区成员,对我们的多系统集成架构很感兴趣,经常跟我讨论相关系统集成层面的问题:随着企业的发展,由于信息产业的技术含量高,信息系统 ...
- super学习
2022-10-02 16:27:38 super super代表的是"当前对象(this)"的父类型特征 概念 1.super是一个关键字,全部小写. 2.super和this对 ...
- Excel表格存在不同大小的合并单元格怎么排序?
当Excel表格中存在不同大小的合并单元格时,进行排序可能会出现一些难题.因为合并单元格会影响数据的布局,导致排序结果不符合预期. 下面我将详细介绍如何在包含不同大小合并单元格的Excel表格中进行排 ...
- 【scikit-learn基础】--『数据加载』之真实数据集
上一篇介绍了scikit-learn中的几个玩具数据集,本篇介绍scikit-learn提供的一些真实的数据集.玩具数据集:scikit-learn 基础(01)--『数据加载』之玩具数据集 1. 获 ...
- 通信技术 Communication
缩写 全称 翻译 备注 I2C Inter-Integrated Circuit 集成电路总线 通信协议 SPI Serial Peripheral Interface 串行外设接口 通信协议 QSP ...
- ubuntu安装cudnn
有些忙,这一段时间,博客就随便写写了--- 默认cuda安装好了,这里就不多说了,我们从cuda的环境变量开始说起: 配置cuda环境变量: 打开终端,输入"gedit ~/.bashrc& ...
- 15、string
1.string是什么? Go中的字符串是一个字节的切片,可以通过将其内容封装起在""中来创建字符串.Go中的的字符串是Unicode兼容的并且是UTF-8编码的. 2.strin ...
- springboot整合mybatis步骤思路
/** * springboot整合mybatis步骤思路 * 依赖导入 * 建表 * 实体类 * mapper配置文件 * mapper接口 * yaml配置 * properties配置数据库连接 ...
- MySQL部署后配置
授权root用户登录 #仅本地登录,修改密码用 alter user root@'localhost' identified with mysql_native_password by'******* ...
- 7.elasticsearch重建索引
什么时候需要重建索引 索引的mappings发生变更 索引的setting发生变更 集群内,集群间,需要做数据迁移 update by query 在现有索引重建 比如需要给一个text新增一个子字段 ...