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 ...
随机推荐
- 《Odoo开发指南》精选分享—第1章-开始使用Odoo开发(1)
引言 在进入Odoo开发之前,我们需要建立我们的开发环境,并学习它的基本管理任务. 在本章中,我们将学习如何设置工作环境,在这里我们将构建我们的Odoo应用程序.我们将学习如何设置Debian或Ubu ...
- TextView图文混排
大家都知道,textView有一个setCompoundDrawables的方法来设置上下左右位置的图标,当然,也可以在xml布局文件中设置,然而问题来了,假如我们把图标放在左边,当我们让TextVi ...
- 转摘app测试方法总结
app测试方法总结 一.安全测试 1.软件权限 1)扣费风险:包括短信.拨打电话.连接网络等. 2)隐私泄露风险:包括访问手机信息.访问联系人信息等. 3)对App的输入有效性校验.认证.授权.数 ...
- 定时删除所有文件夹下的_desktop.ini文件
写个批处理,删除对应的文件,命名为DELDesktopIni.bat,存于D盘根目录 @echo off :delini for %%a in ( C: D: E: ) DO ( del /f/s/a ...
- Python+ITchart实现微信中男女比例,城市分布统计并可视化显示
直接上代码: import itchat import os import csv import pandas as pd from pyecharts import Bar,Pie,Geo impo ...
- js实现横向跑马灯效果
首先我们需要一个html代码的框架如下: <div style="position: absolute; top: 0px; left: 168px; width: 100%; mar ...
- 【Spring】application.xml文件配置
什么是Spring? Spring是分层的javaEE full-stack(一站式)轻量级开源框架. ---注解配置--针对SSM <?xml version="1.0" ...
- Linux下添加windows字体
在Linux下使用wqy字体,在视觉效果上就已近很好了,其实没有必要添加windows字体.但是显然有些人(比如领导,^..^)就喜欢宋体.楷体,所以添加windows字体有时还是需要的,幸运的是这件 ...
- Django路由(url)
1.基本配置 from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', ...
- Python第二天: 变量详解及变量赋值
目录 什么是变量? 怎么写一个好的变量? 下划线命名法及驼峰命名法 结语 目录 此文章针对刚学Python的小白,若觉得对变量有很好的掌握,可以观看其他的文章 在这里, 我说一下我对变量的简单总结: ...