心态爆炸。本来能全做出来的。但是由于双开了Comet oj一个比赛,写了ABC就去搞那个的B题 还被搞死了。

回来写了一会D就过了。可惜比赛已经结束了。真的是作死。

A - Buttons

#include <cstdio>
using namespace std;int main() {int x, y;scanf("%d%d", &x, &y);int ans = x > y ? x : y;if (x > y) x--;else y--;if (x > y) ans += x;else ans += y;printf("%d", ans);return 0;
}

View Code

B - Great Ocean View

#include <cstdio>
#include <algorithm>
using namespace std;const int maxn = 25;
int a[maxn];int main() {int n;scanf("%d", &n);for (int i = 0; i < n; i++) scanf("%d", &a[i]);int ans = 0;for (int i = 0; i < n; i++) {bool flag = false;for (int j = i - 1; j >= 0; j--) {if (a[i] < a[j]) {flag = true;break;}}if (!flag) ans++;}printf("%d\n", ans);return 0;
}

View Code

C - Coloring Colorfully

只有两种排列方式 第一种为0或者第一种为1

跑两遍取最小就好了

#include <bits/stdc++.h>
using namespace std;const int maxn = 1e5 + 10;
char s[maxn];int main() {scanf("%s", s);int len = strlen(s);if (len == 1) {puts("0");return 0;}  int now = 0;int ans = 0;for (int i = 0; i < len; i++) {if (s[i] - '0' != now) ans++;now ^= 1;} int temp = 0;now = 1;for (int i = 0; i < len; i++) {if (s[i] - '0' != now) temp++;now ^= 1;}printf("%d\n", min(ans, temp));return 0;
}

View Code

D - Handstand

题意是一个长为N的01串,可以至多操作K次,每次操作任选一个区间都变成另一个颜色

求最长连续1的长度

问题就等价于有x个连续1的区间(遍历统计一下)把 k+1 个区间并起来有多长(中间的0也得统计上)

区间用结构体存上l,r 统计答案就是G[i+k].r - G[i].l + 1

有多种情况要考虑

一是 0000000000001010101010101000000 这样统计答案的时候

我们会忽略掉这些前导0和后导0 因为我们是从G[0].l开始统计的 所以不是正解

解决方案就是 G数组给加上头和尾 G{0].l = G[0].r = 0 G[x].l = G[x].r = len-1

遍历统计答案的时候就会把这些前导0后导0给算上

二是 000000000000000100000001000000000  k = 500 的情况

这是特殊情况 如果连续1的区间没有k + 1大的话 答案就是len了

#include <bits/stdc++.h>
using namespace std;const int maxn = 1e5 + 10;
char s[maxn];
struct Point {int l, r;
} G[maxn];int main() {int len, k;scanf("%d%d", &len, &k);scanf("%s", s);int l = 0;int cnt = 0;s[len] = '0';G[0].l = G[0].r = 0;cnt = 1;for (int i = 0; i <= len; i++) {if (s[i] == '1') {if (!l) G[cnt++].l = i;l++;  } else {if (l) G[cnt-1].r = i - 1;l = 0;}   }G[cnt].l = G[cnt].r = len - 1;cnt++;int ans = 0;if (k + 1 >= cnt) {printf("%d\n", len);return 0;}for (int i = 0; i < cnt; i++) {int temp = i + k;if (temp >= cnt) break;ans = max(ans, G[temp].r - G[i].l + 1);}ans = min(ans, len);printf("%d\n", ans);return 0;
}

View Code

下次再也不多开比赛了。

转载于:https://www.cnblogs.com/Mrzdtz220/p/10703719.html

Atcoder Beginner Contest 124 解题报告相关推荐

  1. AtCoder Beginner Contest 132 解题报告

    前四题都好水.后面两道题好难. C Divide the Problems #include <cstdio> #include <algorithm> using names ...

  2. AtCoder Beginner Contest 285解题报告

    A - Edge Checker 2 Problem Statement Determine if there is a segment that directly connects the poin ...

  3. Atcoder Beginner Contest 260D - Draw Your Cards 解题报告

    Atcoder Beginner Contest 260D - Draw Your Cards 解题报告 1 题目链接 abc260_d 2 题目大意 题目 : 抽牌 题目大意 : 给定NNN个数字, ...

  4. AtCoder Beginner Contest 300G - P-smooth number解题报告

    AtCoder Beginner Contest 300G - P-smooth number解题报告 1 题目链接 传送门 2 题目大意 题目:P-光滑数的数量 题目大意: 在 1 1 1 到 n ...

  5. AtCoder题解 —— AtCoder Beginner Contest 182 —— D - Wandering

    题目相关 题目链接 AtCoder Beginner Contest 182 D 题,https://atcoder.jp/contests/abc182/tasks/abc182_d. Proble ...

  6. AtCoder题解 —— AtCoder Beginner Contest 187 —— B - Gentle Pairs —— 暴力

    题目相关 题目链接 AtCoder Beginner Contest 187 B 题,https://atcoder.jp/contests/abc187/tasks/abc187_b. Proble ...

  7. AtCoder题解—— AtCoder Beginner Contest 181 —— B - Trapezoid Sum

    题目相关 题目链接 AtCoder Beginner Contest 181 B 题,https://atcoder.jp/contests/abc181/tasks/abc181_b. Proble ...

  8. AtCoder Beginner Contest 282 A-E

    比赛名称:HHKB Programming Contest 2022 Winter(AtCoder Beginner Contest 282) 比赛链接:AtCoder Beginner Contes ...

  9. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...

最新文章

  1. 贪心 ---- 2020牛客多校第3场[Clam and Fish+贪心]
  2. java process started_Java HistoricProcessInstanceQuery.startedBy方法代碼示例
  3. hbuilder前端需要的插件_最新web前端学习路线
  4. vi编辑器的学习使用(十五)
  5. 5.3.2 计算机网络传输层之TCP流量控制
  6. ParserError: Error tokenizing data. C error: Expected 1 fields in line 122, saw 2
  7. PullToRefresh
  8. git 实践(二) push的使用
  9. empty怎么发音_empty是什么意思
  10. 6.1bash编程入门值变量类型、for循环和算术运算
  11. [C++]实现10以内整数的简单科学计算器
  12. mysql_分页、联合查询
  13. 关机王自动定时关机软件 3.579 正式版
  14. vi vim 查找和替换字符串 命令
  15. php实现微信第三方登录
  16. Handling App Links
  17. 2022年高校毕业生破千万,AI岗位23960元跃升高薪职位榜首
  18. 四平方和定理(每个正整数均可表示为4个平方数的和)
  19. Linux 命令详解之df命令
  20. control设备的注册流程

热门文章

  1. Apache Kafka-max.poll.interval.ms参数含义说明
  2. Spring-AOP 自动创建代理
  3. Java高级工程师学习路径
  4. MongoDB自动删除过期数据--TTL索引
  5. Compose 手势事件:防止重复点击,双击,长按,全局触摸隐藏键盘
  6. flex socket java,Flex的socket与java使用amf3进行通信
  7. java邮件发送代码_用Java实现最简单的邮件发送代码
  8. pycharm更改模板_pycharm怎样给文件编辑统一的模板?
  9. 基础的VueJS面试题(附答案)
  10. LeetCode 213 House Robber II Python