首页 > 其他分享 >acwing第66场周赛

acwing第66场周赛

时间:2022-09-04 23:11:08浏览次数:89  
标签:周赛 int 复杂度 重复 枚举 66 include acwing

1.判断奇偶

原题链接:https://www.acwing.com/problem/content/4609/

判断就就直接 %2即可

#include<iostream>

using namespace std;

int main()
{
    string s;
    for(int i = 0 ; i < 7 ; i ++) cin >> s;
    
    if(s[6] % 2) cout << 1;
    else cout << 0;
    
    return 0;
}

2.字母补全

原题链接:https://www.acwing.com/problem/content/4610/

(1).思路
思考暴力怎么写
看数据范围,思考暴力写的时间复杂度是否合理是否需要优化

暴力枚举,每一个字母往后枚举一个长度为26的片段
总的时间复杂度就是50000 * 26 < 1e8,这个时间复杂度是可行的

枚举这个片段中非?字符是否存在重复,如果重复就接着往下
如果不存在重复就将其补全输出
最终都没有方案就返回-1

(2).代码
#include<iostream>
#include<algorithm>
#include<unordered_set>

using namespace std;

int main()
{
    string s;
    cin >> s;
    
    unordered_set<char> hash;
    vector<char> lack;
    
    for(int i = 25; s[i]; i ++)
    {
        hash.clear();
        bool flag = true; // 表示非?字符中没有存在重复
        for(int j = i - 25; j <= i; j ++)
        {
            if(s[j] != '?' && hash.count(s[j]))
            {
                flag = false;
                break;
            }
            else hash.insert(s[j]);
        }
        if(flag) // 如果不存在重复就将?位置替换输出
        {
            lack.clear();
            for(char j = 'A'; j <= 'Z'; j ++)
            {
                if(hash.count(j) == 0) lack.push_back(j);
            }
            
            for(int j = i - 25,k = 0; j <= i; j ++)
            {
                if(s[j] == '?') s[j] = lack[k ++];
            }
            // 要将s串中所有的?都替换掉
            for(auto& c : s) if(c == '?') c = 'A';
            cout << s;
            
            return 0;
        }
    }
    puts("-1");
    return 0;
}

标签:周赛,int,复杂度,重复,枚举,66,include,acwing
From: https://www.cnblogs.com/rdisheng/p/16656306.html

相关文章

  • 基于 ESP8266_RTOS_SDK 驱动 DHT11
    概述DHT11模块使用一根data线实现信号触发以及数据反馈,信号格式参考如下https://zhuanlan.zhihu.com/p/347904660本文使用GPIO中断的方式采集反馈数据知识点:GPIO、中断......
  • 记录下学习esp8266的过程,之后要一直玩一玩这块的东西
    今天的目标是使用wifi模块进行联网。---------------具体的操作流程如下。  首先打开哔站,搜索esp8266教程,选择一个快速入门教程,这个视频的作者言简意赅,干货满满,然后......
  • acwing语法基础课第二讲!
    课堂笔记倒是没有多少,这节的知识点不是很多。我在做题的时候遇见了好几个不会的,如下:scanf("%%"),这里面的%%虽然是两个%%但是呢,只能输出一个%,具体原理我不知道,但是我......
  • 第 66 场周赛
    A奇偶判断intmain(){ strings;cin>>s; intx=s[6]-'0'; if(x%2)cout<<1<<endl; elsecout<<0<<endl; return0;}B字母补全思路:依次枚......
  • AcWing 802.区间和
    题目链接:https://www.acwing.com/problem/content/804/好像理解了,但又没完全理解....写个题解再好好理解一下。百度说:离散化,把无限空间中有限的个体映射到有限的空间中去......
  • P1966 [NOIP2013 提高组] 火柴排队做题笔记
    这题和P5677一样,是从树状数组题单里翻出来的,由于开始看时感觉题解代码写的不是很清晰,就先放进了做题计划里,后来几次看这道题,但由于第一次看题可能留下了一些心理阴影以及......
  • acwing语法基础课第一讲
    这堂课主要讲的是输入输出,以及顺序语句。以上,是我的笔记,包括课堂笔记以及后来做题总结的知识点。我需要强调的是!啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊......
  • AcWing算法基础课---第三讲基础算法---01DFS和BFS
    DFSAcWing842.排列数字#include<iostream>usingnamespacestd;constintN=10;intn;intpath[N],st[N];voiddfs(intu){if(u==n){......
  • 基于 ESP8266_RTOS_SDK 实现声控灯
    #include<stdio.h>#include<string.h>#include<stdlib.h>#include<stdint.h>#include<stdbool.h>#include"driver/gpio.h"#include"driver/hw_timer.h"#in......
  • ESP8266转RS485/RS232/TTL控制板-下载和运行第一个程序(arduino)
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/circuit_module/8266_485_industrial"frameborder="0"scrolling="auto"width="100%"height="1500"><......