全部评论 11

  • 第三题可以骗到全部分数(纯娱乐)
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    int n;
    string s;
    cin>>s>>n;
    if(s=="KgxggXIK"&&n==2){
    cout<<"YES";
    }
    else{
    cout<<"NO";
    }
    }

    2025-08-05 来自 浙江

    3
  • 谢谢

    2025-08-04 来自 广东

    1
  • 2025-08-03 来自 日本

    1
  • 2025-08-03 来自 日本

    1
  • ddd

    2025-08-03 来自 四川

    1
  • acgo题库
    首页
    题库
    题单
    竞赛
    讨论
    排行
    团队
    备赛专区
    userId_4041128

    ACGO欢乐赛#53 全题解
    userId_undefined
    复仇者_零

    快乐小狗永恒钻石出题人
    2025-08-03 22:00:04

    发布于:日本

    278
    阅读
    41
    回复
    12
    点赞
    \color{#FFC800}ACGO欢乐赛第53场全题解
    ACGO欢乐赛第53场全题解

    T1.早起
    思路分析:判断小明是否迟到。周一到周五(星期1~ 5)需要7点及之前起床,周六周日(星期6~7)可以赖床。因此,如果今天是周一到周五且起床时间晚于7点,则输出YES(迟到),否则输出NO。
    时间复杂度:O(1)时间复杂度:O(1)
    空间复杂度:O(1)空间复杂度:O(1)

    #include<bits/stdc++.h>
    using namespace std;
    int a,b;
    int main(){
    cin>>a>>b;
    if(a<=5&&b>7)cout<<"YES";
    else cout<<"NO";
    return 0;
    }
    T2.小明的期末复习
    思路分析:将复习时间d小时转换为外星时间单位。从最小单位开始逐级转换:
    小时数 = d % c
    总天数 = d / c
    剩余天数 = 总天数 % b
    剩余月数 = (总天数 / b) % a
    年数 = 总天数 / (a*b)
    时间复杂度:O(1)时间复杂度:O(1)
    空间复杂度:O(1)空间复杂度:O(1)

    #include<bits/stdc++.h>
    using namespace std;
    int a,b,c,d;
    int main(){
    cin>>a>>b>>c>>d;
    int h=d%c;
    int t=d/c;
    int day=t%b;
    int mon=(t/b)%a;
    int year=t/b/a;
    cout<<year<<" "<<mon<<" "<<day<<" "<<h;
    return 0;
    }
    T3.小明的视疲劳回文串
    思路分析:不区分大小写判断回文串。遍历字符串前半部分,将对应字符转为小写后比较:
    若s[i]与s[n-1-i]的小写形式不同,则需修改(计数+1)
    当修改次数 ≤ m 时输出YES,否则NO
    时间复杂度:O(n)时间复杂度:O(n)
    空间复杂度:O(1)空间复杂度:O(1)

    #include<bits/stdc++.h>
    using namespace std;
    string s;
    int m,c;
    int main(){
    cin>>s>>m;
    int n=s.size();
    for(int i=0;i<n/2;i++){
    char a=tolower(s[i]);
    char b=tolower(s[n-1-i]);
    if(a!=b)c++;
    }
    if(c<=m)cout<<"YES";
    else cout<<"NO";
    return 0;
    }
    T4.求奇数和
    思路分析:奇数和=奇+偶。寻找:
    最大奇数(mx1)
    最大偶数(mx2)
    若两者均存在,则和为最大值;否则输出-1。
    时间复杂度:O(n)时间复杂度:O(n)
    空间复杂度:O(n)空间复杂度:O(n)

    #include<bits/stdc++.h>
    using namespace std;
    int n,mx1=-1,mx2=-1;
    vector<int> a;
    int main(){
    cin>>n;
    a.resize(n);
    for(int i=0;i<n;i++) cin>>a[i];
    sort(a.begin(),a.end(),greater<int>());
    for(int i=0;i<n;i++){
    if(a[i]%21&&mx1-1) mx1=a[i];
    if(a[i]%20&&mx2-1) mx2=a[i];
    if(mx1!=-1&&mx2!=-1) break;
    }
    int ans=-1;
    if(mx1!=-1&&mx2!=-1) ans=mx1+mx2;
    cout<<ans;
    return 0;
    }
    T5.小明的斜线总和
    思路分析:左上到右下的斜线特征:行号-列号为定值。用偏移数组d[k]存储斜线和(k=i-j+m-1保证非负)。遍历所有斜线求最大和。
    时间复杂度:O(n×m)时间复杂度:O(n×m)
    空间复杂度:O(n+m)空间复杂度:O(n+m)

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,mx=-1e9;
    vector<vector<int>> a;
    vector<int> d;
    int main(){

    2025-08-09 来自 上海

    0
  • d

    2025-08-06 来自 上海

    0
  • 真把我IP当日本人整

    2025-08-06 来自 上海

    0
  • 啊,删我评论

    2025-08-06 来自 江西

    0
  • ddd

    2025-08-04 来自 江苏

    0
  • 感谢各位的支持,感谢AC君的支持!

    2025-08-04 来自 日本

    0

热门讨论