比赛链接:Here

A - Cabbages

B - Bouzu Mekuri

C - Colorful Candies

用map维护连续一段区间的不同元素即可。

int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n, k; cin >> n >> k;
vector<int>a(n + 1);
map<int, int>mp; for (int i = 1; i <= n; ++i)cin >> a[i];
for (int i = 1; i <= k; ++i)mp[a[i]]++; int ans = mp.size(); for (int i = k + 1; i <= n; ++i) {
mp[a[i]]++;
mp[a[i - k]]--;
if (mp[a[i - k]] == 0) mp.erase(a[i - k]);
ans = max(ans, (int)mp.size());
} cout << ans << "\n";
}

D - National Railway

给一个矩阵,矩阵每一个位置都有值,要求选取两个位置使得: \(val=\) 两个位置的值之和 \(+\) 两个位置的曼哈顿距离 \(\times\) 系数 \(c\) 最小。


思路:显然不能枚举两个位置,考虑DP,

设 \(f(i, j)\) 表示在从 \((1, 1)\) 到 \((i, j)\) 内的元素到 \((i, j)\)的距离加上值的最小值。这个就很好转移了。需要注意的是选取的两个点不一定是左上,右下的关系,所以需要沿着右上左下再做一次。

const int N = 1e3 + 10;
ll a[N][N]; int main() {
cin.tie(nullptr)->sync_with_stdio(false);
ll H, W, C;
cin >> H >> W >> C;
vector<vector<ll>>dp(H, vector<ll>(W)), a(H, vector<ll>(W));
for (int i = 0; i < H; ++i)for (int j = 0; j < W; ++j)cin >> a[i][j];
ll _ = 2, Mi = 1ll << 60;
while (_--) {
for (int i = 0; i < H; ++i)
for (int j = 0; j < W; ++j) {
ll up = (i - 1 >= 0 ? dp[i - 1][j] : 1ll << 60);
ll left = (j - 1 >= 0 ? dp[i][j - 1] : 1ll << 60);
dp[i][j] = min(a[i][j], min(up, left) + C);
Mi = min(Mi, min(up, left) + C + a[i][j]);
}
reverse(a.begin(), a.end());
}
cout << Mi << "\n";
}

E - Ring MST

有 \(n\)个顶点,\(m\) 种能够花费 \(c\) 连接顶点i ii和 \(i + a\) 的边,\(i\) 可以随便取, 边数无限。问使得图连通最少花费。如果不能连通输出 \(-1\)


把图连通,花费最小,考虑最小生成树的思想,先选择花费最小的边去连,如果两个顶点在同一集合,就不连。本题 \(n≤1e9\),不能建边做。但可以用类似的思想,先找出花费最小的边的种类,假设这种边可以连接 \(i\) 和 \(i + a\) , 然后一直使用这种边去连接顶点,最后无法再连的时候所有点就会被分成\(gcd(n, a)\) 个集合,即连接了 \(n - gcd(n, a)\)条边。继续用花费第二小的边连接顶点,可以发现当不能再连接的时候,所有点被分成\(gcd(n, a, a^{'})\)个集合,一直这样做,如果\(gcd\)能等于 \(1\) ,就说明已经连通了。

int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n, m;
cin >> n >> m; pair<int, int>p[m + 1];
for (int i = 1; i <= m; ++i) cin >> p[i].second >> p[i].first;
sort(p + 1, p + 1 + m); ll ans = 0;
for (int i = 1; i <= m; ++i) {
int d = __gcd(n, p[i].second);
ans += 1ll * (n - d) * p[i].first;
n = d;
}
cout << (n == 1 ? ans : -1);
}

F - Coprime Solitaire

不会

AtCoder Beginner Contest 210 (A~E)的更多相关文章

  1. AtCoder Beginner Contest 210题解

    A B 过水,略... C 统计长度为k的区间的最多本质不同的数.用尺取法维护下左右指针就可以了.调了许久的原因是更新答案时出现了问题. 当我移动指针时,我们应该移动一个就更新一个,而不是将移动与更新 ...

  2. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  3. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  4. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  5. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  6. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  7. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

  8. AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】

    AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...

  9. AtCoder Beginner Contest 064 D - Insertion

    AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...

  10. AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】

    AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...

随机推荐

  1. IDEA提示Cannot resolve method 'getContextPath()'

    一.问题原因: 二.解决方案: 1.打开Project Structure 2.new一个新的Java的project library文件 3.选择tomcat路径下的lib文件夹. 三.完成 可以看 ...

  2. Go切片是值传递还是引用传递?

    Go没有引用传递和引用类型!!! 很多人有个误区,认为涉及Go切片的参数是引用传递,或者经常听到Go切片是引用类型这种说法,今天我们就来说一下方面的问题. 什么是值传递? 将实参的值传递给形参,形参是 ...

  3. .NET微信网页开发相关文章教程

    前言 今天我们主要总结一下.NET微信网页开发的相关文章教程. 微信网页开发详细文档可以看微信官方文档:https://developers.weixin.qq.com/doc/offiaccount ...

  4. 吉特日化MES & HttpClient基础连接已经关闭: 连接被意外关闭

    在吉特日化MES调用某公司AGV平台下发任务的时候,使用HttpClient 进行POST请求,出现如下异常: HttpClient基础连接已经关闭: 连接被意外关闭  , 之前已经使用HTTPCli ...

  5. [ABC267G] Increasing K Times

    Problem Statement You are given an integer sequence $A = (A_1, \dots, A_N)$ of length $N$. Find the ...

  6. 华企盾DSC客户端无法连接以及无法切换工作模式常见处理方法

    先查看客户端日志见文档<客户端连接服务器问题和加密进程初步判断>常见的 1.检查客户端连接服务器配置是否正确 2.telnet服务器的IP和端口是否通 3.客户端日志中显示client i ...

  7. 华企盾DSC服务器状态显示“服务未安装”

    在cmd中先删除原服务:sc delete DSEServer 然后重新创建DSEServer所在位置:sc create "DSEServer" binpath= "C ...

  8. 使用 GPT4V+AI Agent 做自动 UI 测试的探索

    一.背景 从 Web 诞生之日起,UI 自动化就成了测试的难点,到现在近 30 年,一直没有有效的手段解决Web UI测试的问题,尽管发展了很多的 webdriver 驱动,图片 diff 驱动的工具 ...

  9. .NET开源免费功能最全的商城项目

    前言 今天给大家推荐一个功能丰富.免费.灵活且可定制的开源电子商务解决方案:nopCommerce.大家假如有商城需求可以直接使用该项目进行二次开发,省时省力. 项目介绍 nopCommerce在.N ...

  10. 【华为云技术分享】STM32L476移植华为LiteOS系列教程(二)---开发前准备

    在进行移植华为LiteOS开发工作之前,我们是需要提前做一些准备工作,如:开发工具.环境.源码等相关事宜. 一.准备开发工具 STM32CubeMX用于生成工程文件:STM32CubeMX下载地址 I ...