首页 > 其他分享 >AT_abc301 复盘

AT_abc301 复盘

时间:2023-12-11 20:15:20浏览次数:33  
标签:code cout int abc301 ++ RID include 复盘

AT_abc301 复盘

A

一眼水,只需要遍历一遍数组,记录哪一个胜利场数先打到 \((n + 1) / 2\) 就好了。

AC code:

// LUOGU_RID: 139221441
#include <bits/stdc++.h>
using namespace std;

int n, c1, c2;
string s;

int main(){
    cin >> n >> s;
    for (int i = 0; i < n; i++){
        if (s[i] == 'T') c1++;
        else c2++;
        if (c1 >= (n + 1) / 2) return cout << "T", 0;
        if (c2 >= (n + 1) / 2) return cout << "A", 0;   
    }
    return 0;
}

B

依旧很水,只需要看当前与下一个数之间的趋势,然后输出就好。

注意边界,如果输出一个区间包含前面但不含后面的话,最后一个数要单独输出。

AC code:

// LUOGU_RID: 139221974
#include <bits/stdc++.h>
using namespace std;

int n;
int a[105];

int main(){
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 1; i < n; i++){
        if (a[i] < a[i + 1]){
            for (int j = a[i]; j < a[i + 1]; j++) cout << j << " ";
        }
        else {
            for (int j = a[i]; j > a[i + 1]; j--) cout << j << " ";
        }
    }
    cout << a[n] << endl;
    return 0;
}

C

依旧是字符串,先记录下每一个字母的出现情况和两个字符串中 @ 的数量。之后遍历一遍字母,如果缺失(两个字符串字母出现次数不同)的字母是 atcoder 中的一个,那么记录需要的 @ 的数量。

最后判断所需 @ 符是否超过字符串已有的,或者两个字符串剩的 @ 符不同。

AC code:

// LUOGU_RID: 139224230
#include <bits/stdc++.h>
using namespace std;

string s, t;
int cnts, cntt;
int ms[30], mt[30];

int main(){
    cin >> s >> t;
    for (int i = 0; i < s.size(); i++){
        if (s[i] == '@') cnts++;
        if (t[i] == '@') cntt++;
        if (s[i] != '@') ms[s[i] - 'a']++;
        if (t[i] != '@') mt[t[i] - 'a']++;
    }
    for (char i = 'a'; i <= 'z'; i++){
        if (ms[i - 'a'] != mt[i - 'a']){
            if (i == 'a' || i == 't' || i == 'c' || i == 'o' || i == 'd' || i == 'e' || i == 'r'){
                if (ms[i - 'a'] < mt[i - 'a']) cnts -= (mt[i - 'a'] - ms[i - 'a']);
                else cntt -= (ms[i - 'a'] - mt[i - 'a']);
            }
            else return cout << "No", 0;
        }
    }
    if (cnts < 0 || cntt < 0 || cnts - cntt != 0) return cout << "No", 0;
    cout << "Yes";
    return 0;
}

D

算是比较水的 D,只要先记录初始的数,特判一下是否大于 \(n\)。然后从高位到低位去看每一个 ? 是否能变成 \(1\),如果能,就加上这个数二进制还原回来的数,否则跳过。

注意:不开 long long 见祖宗。

AC code:

// LUOGU_RID: 139228615
#include <bits/stdc++.h>
#define int long long
using namespace std;

string s;
int n, sum, cnt = 1;
int a[65];

signed main(){
    cin >> s >> n;
    for (int i = s.size() - 1; i >= 0; i--) a[i] = cnt, cnt *= 2;
    for (int i = 0; i < s.size(); i++) sum += (s[i] == '1') ? a[i] : 0;
    if (sum > n) return cout << -1, 0;
    for (int i = 0; i < s.size(); i++){
        if (s[i] == '?' && sum + a[i] <= n) sum += a[i];
    }
    cout << sum << endl;
    return 0;
}

标签:code,cout,int,abc301,++,RID,include,复盘
From: https://www.cnblogs.com/ccf-ioi/p/17895432.html

相关文章

  • #5独立开发11月复盘|销售额提升了4倍
    11月OKR达成情况O1:提高NotionConverter的销售额,达到1000元/月本月前两周的核心都在提升产品体验上,目前产品链路的体验相比之前已经提升许多本月最大的收获就是,找对了用户来体验产品,目前需求池里有几十个待优化的问题,知道如何一步一步把产品做的更好,同时在样式模板上扣细节......
  • Atcoder abc301 复盘(更新中)
    跳转比赛链接A-OverallWinner简述:高桥和青木下了\(N\)盘棋。给你一个长度为\(N\)的字符串\(S\),表示这两盘棋的结果。如果\(S\)的\(i\)个字符是t,那么高桥赢得了\(i\)局;如果\(S\)的\(i\)个字符是A,那么青木赢得了这局。高桥和青木之间的胜负关系是谁赢的局......
  • ABC312 复盘
    ABC312复盘At链接LG链接AChord思路解析:水题,一个if即可#include<bits/stdc++.h>usingnamespacestd;strings;intmain(){ cin>>s; if(s=="ACE"||s=="BDF"||s=="CEG"||s=="DFA"||s=="EGB&qu......
  • ABC301 复盘
    ABC301复盘At链接LG链接[ABC301A]OverallWinner思路解析:从头开始遍历字符串,遇到一个字符就给对应的一方加分,输出第一个胜场大于\(\lceiln/2\rceil\)的一方。#include<bits/stdc++.h>usingnamespacestd;intn;stringstr;intmain(){ cin>>n; cin>>str......
  • AT_abc312复盘
    AT_abc312复盘A一眼过去直接\(if\)秒了ACcode:#include<bits/stdc++.h>usingnamespacestd;strings;intmain(){cin>>s;if(s=="ACE"||s=="BDF"||s=="CEG"||s=="DFA"||s=="E......
  • 【父子进程/AES/XTEA/SMC】赛后复盘
    官方wp:进程重影技术:进程重映像利用了Windows内核中的缓存同步问题,它会导致可执行文件的路径与从该可执行文件创建的映像节区所报告的路径不匹配。通过在一个诱饵路径上加载DLL,然后卸载它,然后从一个新路径加载它,许多WindowsAPI将返回旧路径。这可能可以欺骗安全产品,使其在错误......
  • 微信小程序使用canvas生成分享海报功能复盘
    前言近期需要开发一个微信小程序生成海报分享的功能。在h5一般都会直接采用html2canvas或者dom2image之类的库直接处理。但是由于小程序不具备传统意义的dom元素,所以也没有办法采用此类工具。所以就只能一笔一笔的用canvas画出来了,下面对实现这个功能中遇到的问题做一......
  • 红帽大赛决赛复盘
     1.基础命令(1)greproot/etc/passwd>/opt/grep.txt(2)date-s"2023-12-1215:20:54">/opt/time.txt#这题考试的时候就不会修改时间是date-s"日期(空格)时间【格式为2023-12-1215:20:54】(3)cd/tmpmvtest.txt/optmvtest.txtrhel-test.txtecho"Hell......
  • 2023CSP复赛/NOIP备战模拟赛复盘集合
    20231003CSP-J模拟赛复盘这次模拟赛考的特别差,只有160。T1:一上来,虽然不那么打卡,但也挺简单,然后五分钟写完,对了对样例,对了,走人。T2:需要在\(O(nlogn)\)或者\(O(n)\)的时间复杂度求出每一个区间被覆盖的区间,这要怎么求啊?我想了半天也只知道\(O(n^2)\)怎么做,然后发现一个小时......
  • 2023CSP初赛备战复盘合集
    NOIP2010提高组复盘整套卷子讲解:noip2010初赛提高组试题详解-Dijkstra·Liu-博客园_noip2010提高组初赛试题解析-豆丁网Docin原题:luogu本文部分内容参考来自以上链接。总结:这次的卷子比较难,考了67.5,全机房第2,cwzdalao拿到了68分%%%,他的运气逆天,蒙对了程序输出题。......