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<=Ai<=9,所以一共 10N 种情况,序列中元素个数为 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:先是看了半天,然后写几组样例,就找到规律了

ai=ai1+ai3a0=1,a1=a2=0

最后别忘记取模即可

E - Dist Max

题意:二维平面上有N个点 (xi,yi)。 找到其中两个点的最大曼哈顿距离。

思路:两点之间的位置关系可以有以下两种模式。

考虑两个最远点之间的位置关系...

  • xi+yi 的最大值 M1 和最小值 m1 之间的差异,当两个最远的点是右侧图形时;
  • xiyi 的最大值,当两个最远的点是右侧图形时,M2与最小值之间的差异值 m2

因此,从直觉上讲,最 max(M1m1M2m2) 似乎是答案。 让我们在公式转换的基础上进一步说明这一点。

公式变形:

关于绝对值问题前提:|x|=max(x,x)

通常情况下,前景会更好。 对于每对(i,j),即使xi <xj,它也不会失去通用性(反之亦然,交换)。

|xixj|+|yiyj|=(xjxi+max(yjyi,yiyj))=max((xj+yj)(xi+yi),(xjyj)(xi,yi))

由上面的变形

  • 求各个 (i,j)(xj+yj)(xi+yi) 的最大值
  • 求各个 (i,j)(xjyj)(xiyi) 的最大值

所以再回到上面:max(M1m1M2m2) 正是答案

  • O(N),但由于用了 sort 时间复杂度为 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;
}
posted @   RioTian  阅读(84)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 全程不用写代码,我用AI程序员写了一个飞机大战
历史上的今天:
2020-04-06 动态规划之最小编辑距离
点击右上角即可分享
微信分享提示

📖目录