Atcoder Beginner Contest 124 解题报告
心态爆炸。本来能全做出来的。但是由于双开了Comet oj一个比赛,写了ABC就去搞那个的B题 还被搞死了。
回来写了一会D就过了。可惜比赛已经结束了。真的是作死。
#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 ;
}
#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 ;
}
只有两种排列方式 第一种为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 ;
}
题意是一个长为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 解题报告的更多相关文章
- AtCoder Beginner Contest 122 解题报告
手速选手成功混进rated only里面的前30名,但是总排名就到110+了... A - Double Helix #include <bits/stdc++.h> #define ll ...
- AtCoder Beginner Contest 146解题报告
题目地址 https://atcoder.jp/contests/abc146/tasks 感觉没有什么有意思的题... 题解 A #include <bits/stdc++.h> usi ...
- AtCoder Beginner Contest 118 解题报告
A - B +/- A #include <bits/stdc++.h> int main() { int a, b; std::cin >> a >> b; b ...
- AtCoder Beginner Contest 120 解题报告
为啥最近都没有arc啊... A - Favorite Sound #include <algorithm> #include <iostream> #include < ...
- AtCoder Beginner Contest 117 解题报告
果然abc都是手速场. 倒序开的qwq. D题因为忘记1e12二进制几位上界爆了一发. A - Entrance Examination 就是除一下就行了... 看样例猜题意系列. #include& ...
- AtCoder Beginner Contest 132 解题报告
前四题都好水.后面两道题好难. C Divide the Problems #include <cstdio> #include <algorithm> using names ...
- AtCoder Beginner Contest 129 解题报告
传送门 写了四个题就跑去打球了.第五题应该能肝出来的. A - Airplane #include <bits/stdc++.h> using namespace std; inline ...
- AtCoder Beginner Contest 127 解题报告
传送门 非常遗憾.当天晚上错过这一场.不过感觉也会掉分的吧.后面两题偏结论题,打了的话应该想不出来. A - Ferris Wheel #include <bits/stdc++.h> u ...
- AtCoder Beginner Contest 126 解题报告
突然6道题.有点慌.比赛写了五个.罚时爆炸.最后一个时间不太够+没敢写就放弃了. 两道题奇奇怪怪的WJ和20/20.今天的评测机是怎么了. A Changing a Character #includ ...
随机推荐
- 我从来不理解JavaScript闭包,直到有人这样向我解释它...
摘要: 理解JS闭包. 原文:我从来不理解JavaScript闭包,直到有人这样向我解释它... 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 正如标题所述,JavaScript闭包 ...
- vue从入门到进阶:Vuex状态管理(十)
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 在 Vue 之后引入 vuex 会进行自动 ...
- [JS设计模式]:构造函数模式(2)
基本用法 function Car(model, year, miles) { this.model = model; this.year = year; this.miles = miles; th ...
- [笔记]原生JS实现的DOM操作笔记
原生JS实现的DOM一系列操作参考: 原生JavaScript封装DOM库 siblings: 原生JS-查找相邻的元素-siblings方法的实现 addClass,removeClass,hasC ...
- 设计模式系列之过滤器模式(Chriteria Pattern)
过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来.这种类 ...
- java新知识系列 一
内联函数: 所谓内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度. 对应Java语言中也有一个关键字final ...
- Vue2.5笔记:Vue的实例与生命周期
理解与认识 Vue 的实例是我们学习 Vue 非常重要的一步,也是非常必须的,因为实例是它的一个起点,也是它的一个入口,只有我们创建一个 Vue 实例之后,我们才行利用它进行一些列的操作. 首先 Vu ...
- MySQL常用数值函数
数值函数: 用来处理很多数值方面的运算,使用数值函数,可以免去很多繁杂的判断求值的过程,能够大大提高用户的工作效率. 1.ABS(x):返回 x 的绝对值 mysql> select abs(- ...
- git 初探
1,创建GIT代码仓库 git init 2,添加修改到缓存区 git add filename 3,提交缓存区的修改 git commit -m "任意文字(便于自己记忆)" 4 ...
- Bootstrap -- 缩略图、进度条、列表组、面板
Bootstrap -- 缩略图.进度条.列表组.面板 1. 缩略图 大多数站点都需要在网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap ...