Codeforces Round #827 (Div. 4)

news/2024/7/7 20:07:52

A:给定三个数字,问是否存在1个数字是另外两个的和

void solve(){
    int a, b, c;
    cin >> a >> b >> c;
    if(a + b == c || a + c == b || b + c == a)  puts("YES");
    else    puts("NO");
}

B:给定一个数组,能否存在一个组合是单调上升的 

思路:显然只要没有相同的两个数即可

void solve(){
    int n;  cin >> n;
    set<int> s;
    rep(i, 0, n){
        int x;  cin >> x;
        s.insert(x);
    }
    cout << (s.size() == n ? "YES" : "NO") << endl;
}

C:给定一个 8×8 的网格,其中 . 符号表示空,'R' 符号表示红色,'B' 符号表示蓝色。 每次可能水平地画一道红色,或者垂直地画一道蓝色,后面画的会覆盖前面画的,给出最终结果,问最后画的是什么颜色。

思路:很简单,只要行内有完整的一行,说明这一行是最后画的,如果行内没有那就是列了

void solve(){
    string s[8];
    int R = false;
    for(int i = 0; i < 8; i++) {
        cin >> s[i];
        if(s[i] == "RRRRRRRR") R = true;
    }
    if(R) cout << "R\n";
    else cout << "B\n";
}

D:给定一个长度为 n <= 2e5 的数组,数字大小不超过 1000。求最大的 i + j 满足 a[i] 与 a[j] 互质。

思路:考虑到数字大小不超过1000,且i显然越大越好,所以最后一次出现的位置我们才记录。然后暴力枚举这1000个数即可!

const int N = 1010;
int g[N][N];

//n^2 枚举所有可能不可取,但我们发现数字大小不超过 1000,这也就意味着这个数组会有很多的重复元素,把这些重复的元素只保留下标最大的即可,这样就可以 1000^2 枚举了。
inline void solve(){
    int n;  cin >> n;
    int v[1020] = {0};
    repn(i, 1, n){
        int x;  cin >> x;   v[x] = i;
    }
    int res = -1;
    for (int i = 1; i <= 1000; i ++ )
        for (int j = 1; j <= 1000; j ++ ){
            if(g[i][j] && v[i] && v[j]) res = max(res, v[i] + v[j]);
        }
    cout << res << endl;

}

int main(){

    IOS;
    int t;  cin >> t;
    for(int i = 1; i <= 1000; i++) //打表看互质
        for(int j = 1; j <= 1000; j++)
            g[i][j] = (__gcd(i, j) == 1);

    while(t -- ){
        solve();
    }
    
    
    return 0;
}

 

E:给定一个长度为 n <= 2e5 的数组 a[i],表示每级台阶的高度。

给定 q<=2e5 个询问,每个询问给出 k 表示一次最多能跨越的高度,问从 0 开始最多能爬多高。

思路:显然只要小于k的位置我们是肯定都能跨越的,所以我们用一个数组维护当前位置前的最大高度,那么这个数组显然是单调不降的!那么就可以二分出位置了。然后直接计算一下前缀和即可

inline void solve(){
    int n, q;   cin >> n >> q;
    repn(i, 1, n){
        cin >> s[i];
        mx[i] = max(s[i], 1ll * mx[i - 1]);//维护当前位置前最大的高度
        s[i] += s[i - 1];//前缀和
    }
    while(q -- ){
        int k;  cin >> k;
        auto t = upper_bound(mx + 1, mx + n + 1, k) - mx - 1;
        cout << s[t] << ' ';
    }
    cout << endl;

}

 

 F:给定两个字符串 s, t,初始时全为空。

有 q<=2e5 次操作,每次操作选择其中一个串,给定 k <= 2e5,str,往后添加 k 个 str。并询问是否存在一种方式重排 s,t 的字符,使得 s 的字典序严格小于 t 的字典序。

 

思路:显然只要有s中加入了不是'a'的字符,就肯定比t小了,否则就得比较字符串长度大小了

inline void solve(){
    int n;
    cin >> n;
    ll aa = 0, bb = 0, sz1 = 0, sz2 = 0;
    while(n -- ) {
        int op, k;
        string s;
        cin >> op >> k >> s;
        if(op == 1) sz1 += k * s.size();
        else sz2 += k * s.size();
        for(int i = 0 ; s[i] ; i ++ )
            if(s[i] != 'a') {
                if(op == 1) aa = 1;//给s加上了, s输了
                else bb = 1;//t输了
            }
        if(bb) {
            puts("YES");
            continue;
        } else if(aa) {
            puts("NO");
            continue;
        } else {
            if(sz1 >= sz2) puts("NO");
            else puts("YES");
        }
    }
}

 

 

 


http://lihuaxi.xjx100.cn/news/98245.html

相关文章

centos8 安装nginx

安装个 Nginx 配置 vue 还是折腾了会。 下载源码地址&#xff1a; Index of /download/ http://nginx.org/download/nginx-1.20.2.tar.gz 解压 ./configure make make install echo export PATH$PATH:/usr/local/nginx/sbin >> ~/.bashrc source ~/.bashrc 默认配…

SQL之窗口函数

窗口函数介绍 1 窗口函数语法 <窗口函数> over (partition by <用于分组的列名>order by <用于排序的列名>&#xff09;专用窗口函数&#xff0c;比如rank&#xff0c;dense_rank&#xff0c;row_number等 聚合函数&#xff0c;如sum&#xff0c;avg&#…

图像运算和图像增强四

图像运算和图像增强四 1.图像直方图理论知识和绘制实现 &#xff08;1)图像直方图理论知识 灰度直方图是灰度级的函数&#xff0c;描述的是图像中每种灰度级像素的个数&#xff0c;反映图像中每种灰度出现的频率,可以通过归一化化为到&#xff08;0&#xff0c;1&#xff09;…

降C大法——第3式

“总有人间一两风&#xff0c; 填我十万八千梦” &#x1f351;作者&#xff1a;小赛毛 &#x1f495;文章初次日期&#xff1a;2022/10/21 赋值表达式 a.基本的赋值表达式 变量 表达式 赋值号&#xff1a;是把赋值号右边的内容赋给左边的变量 tips&#xff1…

js-Date对象

1、Date对象的创建&#xff1a;保存的是时间 var d new Date; console.log(d) 如果使用构造函数直接创建Date对象则会封装为当前代码的执行时间 2、创建指定的时间对象——在构造函数中传递表示时间的字符串作为参数 语法&#xff1a; 字符串月份/日/年 时:分:秒…

什么是 Web 3.0?(新手入门指南)

在这篇文章中&#xff0c;我们将解释什么是 Web 3.0&#xff0c;它的技术是如何发展的&#xff0c;哪些项目正在构建这个新的互联网&#xff0c;以及您如何参与其中。 目录 在这篇文章中&#xff0c;我们将解释什么是 Web 3.0&#xff0c;它的技术是如何发展的&#xff0c;哪些…

浅谈UIButton的类型

文章目录前言不对劲的一个出现UIButtonTypeSystem解决方法UIButtonTypeCustom其他类型的buttonUIButtonTypeRoundedRectUIButtonTypeCloseUIButtonTypeInfoDarkUIButtonTypeContactAddUIButtonTypeInfoLightUIButtonTypeDetailDisclosure总结前言 这周在写一个小Demo的时候&am…

MindSpore手写数字识别体验

文章目录1. 环境准备2. 安装minspore及其套件3. 程序撰写4. 总结今天带大家体验一下 MindSpore 这个 AI 框架来完成手写数字识别的任务1. 环境准备 使用Anaconda创建虚拟环境: conda create -n mindspore python3.8创建完成后会显示以下的图像界面 这样我们的虚拟环境mindsp…