心态爆炸。本来能全做出来的。但是由于双开了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 ;
}

B - Great Ocean View

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

C - Coloring Colorfully

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

跑两遍取最小就好了

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

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 + ;
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 = ;
int cnt = ;
s[len] = '';
G[].l = G[].r = ;
cnt = ;
for (int i = ; i <= len; i++) {
if (s[i] == '') {
if (!l) G[cnt++].l = i;
l++;
} else {
if (l) G[cnt-].r = i - ;
l = ;
}
}
G[cnt].l = G[cnt].r = len - ;
cnt++;
int ans = ;
if (k + >= cnt) {
printf("%d\n", len);
return ;
}
for (int i = ; i < cnt; i++) {
int temp = i + k;
if (temp >= cnt) break;
ans = max(ans, G[temp].r - G[i].l + );
}
ans = min(ans, len);
printf("%d\n", ans);
return ;
}

下次再也不多开比赛了。

Atcoder Beginner Contest 124 解题报告的更多相关文章

  1. AtCoder Beginner Contest 122 解题报告

    手速选手成功混进rated only里面的前30名,但是总排名就到110+了... A - Double Helix #include <bits/stdc++.h> #define ll ...

  2. AtCoder Beginner Contest 146解题报告

    题目地址 https://atcoder.jp/contests/abc146/tasks 感觉没有什么有意思的题... 题解 A #include <bits/stdc++.h> usi ...

  3. AtCoder Beginner Contest 118 解题报告

    A - B +/- A #include <bits/stdc++.h> int main() { int a, b; std::cin >> a >> b; b ...

  4. AtCoder Beginner Contest 120 解题报告

    为啥最近都没有arc啊... A - Favorite Sound #include <algorithm> #include <iostream> #include < ...

  5. AtCoder Beginner Contest 117 解题报告

    果然abc都是手速场. 倒序开的qwq. D题因为忘记1e12二进制几位上界爆了一发. A - Entrance Examination 就是除一下就行了... 看样例猜题意系列. #include& ...

  6. AtCoder Beginner Contest 132 解题报告

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

  7. AtCoder Beginner Contest 129 解题报告

    传送门 写了四个题就跑去打球了.第五题应该能肝出来的. A - Airplane #include <bits/stdc++.h> using namespace std; inline ...

  8. AtCoder Beginner Contest 127 解题报告

    传送门 非常遗憾.当天晚上错过这一场.不过感觉也会掉分的吧.后面两题偏结论题,打了的话应该想不出来. A - Ferris Wheel #include <bits/stdc++.h> u ...

  9. AtCoder Beginner Contest 126 解题报告

    突然6道题.有点慌.比赛写了五个.罚时爆炸.最后一个时间不太够+没敢写就放弃了. 两道题奇奇怪怪的WJ和20/20.今天的评测机是怎么了. A Changing a Character #includ ...

随机推荐

  1. 大型网站架构演进(6)使用NoSQL和搜索引擎

    随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系型数据库技术(即NoSQL)和非数据库查询技术如搜索引擎.NoSQL数据库一般使用MongoDb,搜索引擎一般使用El ...

  2. css中“~”和“>”

    css中“~” element1~element2 选择器匹配  出现在   element1 后面的    element2  .element1 和 element2 这两种元素必须具有相同的父元 ...

  3. vue中如何使用mockjs摸拟接口的各种数据

    mockjs的作用 生成模拟数据 模拟 Ajax 请求,返回模拟数据 基于 HTML 模板生成模拟数据(后续更新) 帮助编写单元测试(后续更新) Vue 中使用 mock 有两种使用方式,一种是仅编写 ...

  4. Bootstrap中内联单选按钮

    <div class="form-group"> <label class="control-label">性别:</label& ...

  5. ArcGIS for JavaScript学习(一)

    一  API准备 从网上下载开发包:ArcGIS for JavaScript(百度网盘地址) sdk中含有API的帮助和例子 2.离线部署(以IIS为例) 配置IIS(详见网络):解压离线包,包中的 ...

  6. 通过Excel文件快速创建页面和数据表

    在设计一个软件系统,构建过程:需求->数据表->系统开发.实际情况是需求(数据)很多来源于已经存在的文件中,客户会要求把这些数据“电子化”,这就给需求分析产生了很大的工作量: 分析这些原始 ...

  7. 基于LBS的六边形热力图算法

    六边形算法: 我把六边形铺满的分布图进行了切分,切分为矩形,每个矩形中有一个六边形.4个三角形.两个小长方形,依次计算.边界判断上,采用主流的MP>MN的方式(M为上边界对称点,N为与六边形的交 ...

  8. EditText超出字数限制,给用户提示

    当我们在Editext输入内容的时候,检测如果超过限制的长度无法输入内容,并且给用户提示. 首先我想到了下面的方法: editText.addTextChangedListener(new TextW ...

  9. django入门与实践 - 关于升级到django 3.7,三种模板超链接配置(编辑中)

    第一种方法: 在myblog/urls.py模块中: from django.contrib import admin from django.urls import path, include ur ...

  10. 如何利用MongoDB打造TOP榜小程序

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB发表于云+社区专栏 今天我分享的主题内容大概是两部分,最主要的还是小游戏和小程序,第一部分就是跟大家分 ...