Educational Codeforces Round 99 (Rated for Div. 2)

A. Strange Functions

读懂题即可(或者快速看一下样例解释),直接输出字符串长度即可。

void solve() {
string s;
cin >> s;
cout << s.length() << endl;
}

B. Jumps

这是一个数轴移动问题,按题意推导一下就好

void solve() {
int x; cin >> x;
int cnt = 0;
while (cnt * (cnt + 1) < (x << 1)) cnt++;
if (cnt * (cnt + 1) / 2 == x + 1) cnt++;
cout << cnt << endl;
}

C. Ping-pong

题意是Alice 和 Bob 开始玩击球游戏,但他们只有 x 和 y 个体力,每次发球和击回都要消耗一点体力,问怎么应对才能使两方的赢数最大

根据样例解释,其实对Bob而言只要我不回第一球,那么后面都会是Bob赢。那么就很简单了,次数为 \(x - 1, y\)

void solve() {
int x, y;
cin >> x >> y;
cout << x - 1 << " " << y << endl;
}

D. Sequence and Swaps

这道题一开始想简单了,正确思路是先判断是否已经排序好了,如果是的话直接输出0,不然把x插入每个位置进行尝试,即计算逆序,每次都进行最小值判断。

AC代码 ↓

void solve() {
int n, x;
cin >> n >> x;
vector<int> a(n);
for (int i = 0; i < n; ++i)
cin >> a[i];
int ans = n + 1;
if (is_sorted(a.begin(), a.end())){//STL函数,判断是否有序
cout << 0 << endl;
return;
}
for (int i = 0; i < n; ++i) {
vector<int> b(a);
b[i] = x;
sort(b.begin(), b.end());
int cur = x, cnt = 0;
bool f = true;
for (int j = 0; j < n; ++j) {
if (a[j] != b[j]) {
++cnt;
if (cur == b[j] && b[j] < a[j])
cur = a[j];
else
f = false;
}
}
if (f)
ans = min(ans, cnt);
}
if (ans > n)
ans = -1;
cout << ans << "\n";
}

E. Four Points

直接去写的话感觉很麻烦,这里思路借鉴了rank2的大神的代码:转化为复数处理。

对标样例模拟就清楚了。

void solve() {
ll ans = 1e18;
pair<int, int> p[4];
for (int i = 0; i < 4; ++i)
cin >> p[i].first >> p[i].second;
sort(p, p + 4);
do {
vector<int> cand{0};
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j) {
cand.push_back(p[2 + j].first - p[i].first);
cand.push_back(p[2 * j + 1].second - p[2 * i].second);
} for (auto d : cand) {
if (d < 0)
continue;
ll res = 0;
int x[4], y[4];
for (int i = 0; i < 4; ++i)
tie(x[i], y[i]) = p[i]; //转化为复数处理
x[2] -= d, x[3] -= d;
y[1] -= d, y[3] -= d;
sort(x, x + 4), sort(y, y + 4);
for (int i = 0; i < 4; ++i) {
res += abs(x[i] - x[1]);
res += abs(y[i] - y[1]);
}
ans = min(res, ans);
}
} while (next_permutation(p, p + 4));
cout << ans << endl;
}

F. String and Operations

贴一下dalao代码作为学习

Code
void update(std::string& a, const std::string& b) {
if (a.empty() || a > b)
a = b;
}
void solve() {
int n, k;
std::cin >> n >> k;
std::string a, b;
std::cin >> a;
b = a;
for (int i = 0; i < n; ++i) {
if (b[i] == 'a' + k - 1)
b[i] = 'a';
else if (b[i] != 'a')
--b[i];
}
std::string dp[2][2];
dp[0][0] = a;
int cur = 0;
for (int i = 0; i < n; ++i) {
cur ^= 1;
dp[cur][0] = dp[cur][1] = "";
if (!dp[!cur][0].empty()) {
auto& s = dp[!cur][0];
update(dp[cur][0], s);
if (i > 0) {
std::swap(s[i], s[i - 1]);
update(dp[cur][0], s);
std::swap(s[i], s[i - 1]);
}
if (i + 1 < n) {
std::swap(s[i], s[i + 1]);
update(dp[cur][1], s);
std::swap(s[i], s[i + 1]);
}
s[i] = b[i];
update(dp[cur][0], s);
}
if (!dp[!cur][1].empty()) {
auto& s = dp[!cur][1];
update(dp[cur][0], s);
if (i > 1) {
std::swap(s[i - 1], s[i - 2]);
update(dp[cur][0], s);
std::swap(s[i - 1], s[i - 2]);
}
s[i - 1] = b[i];
update(dp[cur][0], s);
}
}
std::cout << dp[cur][0] << "\n";
}

G. Forbidden Value

最后一道题似乎是线段树 + DP ? 看完题没啥思路。。。(老菜鸡了)

Educational Codeforces Round 99 (Rated for Div. 2) (A ~ F)个人题解的更多相关文章

  1. Educational Codeforces Round 92 (Rated for Div. 2) B、C题解

    TAT 第一场codeforces B. Array Walk #暴力 #贪心 题目链接 题意 有\(a1, a2, ..., an\) 个格子(每个格子有各自分数),最初为1号格(初始分数为\(a1 ...

  2. Educational Codeforces Round 61 (Rated for Div. 2) D,F题解

    D. Stressful Training 题目链接:https://codeforces.com/contest/1132/problem/D 题意: 有n台电脑,每台电脑都有初始电量ai,也有一个 ...

  3. Educational Codeforces Round 76 (Rated for Div. 2)E(dp||贪心||题解写法)

    题:https://codeforces.com/contest/1257/problem/E 题意:给定3个数组,可行操作:每个数都可以跳到另外俩个数组中去,实行多步操作后使三个数组拼接起来形成升序 ...

  4. 【Educational Codeforces Round 38 (Rated for Div. 2)】 Problem A-D 题解

    [比赛链接] 点击打开链接 [题解] Problem A Word Correction[字符串] 不用多说了吧,字符串的基本操作 Problem B  Run for your prize[贪心] ...

  5. Educational Codeforces Round 96 (Rated for Div. 2) E. String Reversal 题解(思维+逆序对)

    题目链接 题目大意 给你一个长度为n的字符串,可以交换相邻两个元素,使得这个字符串翻转,求最少多少种次数改变 题目思路 如果要求数组排序所需要的冒泡次数,那其实就是逆序对 这个也差不多,但是如果是相同 ...

  6. Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...

  7. Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...

  8. Educational Codeforces Round 43 (Rated for Div. 2)

    Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...

  9. Educational Codeforces Round 35 (Rated for Div. 2)

    Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...

  10. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...

随机推荐

  1. 使用javafx,结合讯飞ai,搞了个ai聊天系统

    第一步:先在讯飞ai那边获取接入的api 点进去,然后出现这个页面: 没有的话,就点击免费试用,有了的话,就点击服务管理: 用v2.0的和用3的都行,不过我推荐用2.0版本 文档位置:星火认知大模型W ...

  2. Netty源码学习8——从ThreadLocal到FastThreadLocal(如何让FastThreadLocal内存泄漏doge)

    系列文章目录和关于我 一丶引入 在前面的netty源码学习中经常看到FastThreadLocal的身影,这一篇我们将从ThreadLocal说起,来学习FastThreadLocal的设计(< ...

  3. VsCode运行与freopen与快读

    运行 g++ -o a a.cpp && ./a g++ b.cpp -o b && ./b g++ c.cpp -o c && ./c freopen ...

  4. 用Linux搭建网站(LAMP)

    安装环境 演示服务器版本为CentOS 8 安装apache 下载apache yum install httpd httpd-devel 启动apache服务器 systemctl start ht ...

  5. 数仓性能优化:倾斜优化-表达式计算倾斜的hint优化

    本文分享自华为云社区<GaussDB(DWS)性能调优:倾斜优化-表达式计算倾斜的hint优化>,作者: 譡里个檔 . 1.原始SQL SELECT TMP4.TAX_AMT, CATE. ...

  6. GaussDB(DWS):非侵入式备份及其在NBU上的应用

    摘要:Netbackup软件必须要有该集群所支持的OS的安装包,一种新的非侵入式备份架构呼之欲出. 1. 通用的备份方案介绍 除Netbackup深度定制的厂商外,通常数据库厂商都按XBSA接口来实现 ...

  7. 聊聊LiteOS中生成的Bin、HEX、ELF三种文件格式

    摘要:我们在使用编译器在编译工程后会要求生成可执行文件,将这些文件烧录到MCU进行运行,达到我们测试和使用程序的目的,再使用工具链进行编译的时候往往生成.bin..hex ..elf ..alf等文件 ...

  8. 华为云IoT设备接入服务全体验

    摘要:华为云IoT设备接入服务,海量设备,一键接入,你值得拥有! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之 华为云IoT设备接入服务全体验>,原文作者:启明 ...

  9. 图解 Redis丨这就是 RDB 快照,能记录实际数据的

    摘要:所谓的快照,就是记录某一个瞬间东西,比如当我们给风景拍照时,那一个瞬间的画面和信息就记录到了一张照片.RDB 快照就是记录某一个瞬间的内存数据,记录的是实际数据. 本文分享自华为云社区<图 ...

  10. JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析

    JPEG文件简介 JPEG的全称是JointPhotographicExpertsGroup(联合图像专家小组),它是一种常用的图像存储格式, jpg/jpeg是24位的图像文件格式,也是一种高效率的 ...