Codeforces Round955 (Div2)--(A~D)题解

Problem - A - Codeforces

思路:如果领先方互换,那么“NO”,否则“YES”。

void solve(){                   A
    int x1,y1; cin>>x1>>y1;
    int x2,y2; cin>>x2>>y2;
    if(x1>y1&&x2>y2||x1<y1&&x2<y2) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
}

Problem - B - Codeforces

思路:找现在的X还差多少可以被Y整除,即need=y-x%y;如此一直模拟即可。但是要注意的是,当X==1之后,是一直在循环的,每y-1次循环回到X==1.所以k%=(y-1)。因为y>=2,所以这样模拟的话,X会递减非常快,只要k足够大,X很快就递减到1,不会TLE。

void solve(){           B
    int x,y,k; cin>>x>>y>>k;
    int need=y-x%y;
    while(k>=need){
        x+=need,k-=need;
        while(x%y==0) x/=y;
        need=y-x%y;
        if(x==1) k%=(y-1);          key!!!!!!!!!!!!!!
    }
    cout<<x+k<<endl;
}

Problem - C - Codeforces

思路:滑动窗口+贪心。

int arr[100005];
void solve(){               C  第一发写的太急了,应该是滑动窗口    写拉了,wa了3发。。
    int n,l,r; cin>>n>>l>>r;
    for(int i=1;i<=n;i++) cin>>arr[i];
    int idxl=1,idxr=1,ans=0,sum=0;
    while(idxr<=n){
        sum+=arr[idxr];
        if(sum>=l&&sum<=r||arr[idxr]>=l&&arr[idxr]<=r) ans++,sum=0,idxl=idxr+1;
        else if(sum>r){
            while(sum>r){   rr和r搞混了。。这里应该是sum>r  不是sum>rr。。。  这都能过样例。。  取名应该区分一点。。不然把自己搞混了
                sum-=arr[idxl];
                idxl++;
            }
            if(sum>=l&&sum<=r||arr[idxr]>=l&&arr[idxr]<=r) ans++,sum=0,idxl=idxr+1;   刚才复制的..这里忘了删rr++..
        }
        idxr++;
    }
    cout<<ans<<endl;
}

Problem - D - Codeforces

思路:一开始山峰的高度差dif是可知的,那么需要弥补这个dif。因为是固定了修改k*k的矩形,那么可以初始化,在每一个这样的k*k矩形中,存在的R山和B山各有几个,它们之间的差difrb就是可以作为弥补dif的值。那么计算出所有的difrb,题目就变成了判断是否存在c1a1+c2a2+...+cnan==dif.
要满足这个条件,那么dif%gcd(a1,a2,...,an)==0即可。初始化的话,我这里先是计算了每一个k*1的矩形的R,B各有几个,利于后面k*k矩阵的遍历移动(滑动窗口一样,只不过这里是长条的移动)。

int n,m,k;
int arr[550][550];
char mark[550][550];
pair<int,int> cnt[550][550];
void solve(){                    D..
    cin>>n>>m>>k;
    int red=0,blue=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>arr[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>mark[i][j];
            if(mark[i][j]=='0') red+=arr[i][j];
            else if(mark[i][j]=='1') blue+=arr[i][j];
        }
    }
    bool check=false;
    int dif=red-blue;
    if(k==1||dif==0) check=true;
    for(int i=1;i<=n-k+1;i++){   o(1e8)      初始化
        for(int j=1;j<=m;j++){
            int r=0,b=0;
            for(int f=i;f<=i+k-1;f++){
                if(mark[f][j]=='0') r++;
                else if(mark[f][j]=='1') b++;
            }
            cnt[i][j]={r,b};
        }
    }
    set<int> st;                    st最大是500...st中存在的是因子,需要判断能否通过使用这些因子的倍数组合,组合出dif----多重背包?--不可能,非常庞大X^500次方的级别,X为每个因子最多可以取的次数
    for(int i=1;i<=n-k+1;i++){
        int r=0,b=0;
        for(int j=1;j<=m+1;j++){
            if(j<=k) r+=cnt[i][j].first,b+=cnt[i][j].second;
            else{
                int difrb=abs(r-b);
                if(difrb!=0&&dif%difrb==0) check=true;
                if(difrb!=0) st.insert(difrb);
                if(j!=m+1){
                    r-=cnt[i][j-k].first,b-=cnt[i][j-k].second;
                    r+=cnt[i][j].first,b+=cnt[i][j].second;
                }
            }
        }
    }
    我想知道怎么判断,能否通过使用n个不同的数字a1,a2...an的倍数组合出数字X.即判断是否存在?a1+?a2+...+?an==X,其中?代表系数(可以为0).
    int gcd0=*st.begin();
    for(auto s:st) gcd0=gcd(gcd0,s);
    if(gcd0!=0&&dif%gcd0==0) check=true;
    这个st可以省去,直接计算gcd0
    if(check) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/762634.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt:8.QWidget属性介绍(focuspolicy属性-控件焦点、stylesheet属性-为控件设置样式)

目录 一、focuspolicy属性-控件焦点&#xff1a; 1.1focuspolicy属性介绍&#xff1a; 1.2设置焦点策略——setFocusPolicy()&#xff1a; 1.3获取控件的焦点策略——focusPolicy()&#xff1a; 二、stylesheet属性——为控件设置样式&#xff1a; 2.1 stylesheet属性介绍…

【Python函数编程实战】:从基础到进阶,打造代码复用利器

文章目录 &#x1f68b;前言&#x1f680;一、认识函数&#x1f308;二、函数定义❤️三、函数调用⭐四、实参与形参&#x1f4a5;1. 形式参数&#x1f6b2;2. 实际参数&#x1f525;1. 位置参数☔2. 关键字参数&#x1f3ac;3. 默认参数&#x1f525;4. 可变数量参数(不定长参…

Jenkins教程-12-发送html邮件测试报告

上一小节我们学习了发送钉钉测试报告通知的方法&#xff0c;本小节我们讲解一下发送html邮件测试报告的方法。 1、自动化用例执行完后&#xff0c;使用pytest_terminal_summary钩子函数收集测试结果&#xff0c;存入本地status.txt文件中&#xff0c;供Jenkins调用 #conftest…

Zuul介绍

Zuul 是 Netflix 开源的一个云平台网络层代理&#xff0c;它主要用于路由、负载均衡、中间件通信和动态路由。Zuul 本质上是一个基于 JVM 的网关&#xff0c;它提供了以下功能&#xff1a; 1.路由&#xff1a;Zuul 允许客户端和服务器之间的所有入站和出站请求通过一个中心化的…

【单片机与嵌入式】stm32串口通信入门

一、串口通信/协议 &#xff08;一&#xff09;串口通信简介 串口通信是一种通过串行传输方式在电子设备之间进行数据交换的通信方式。它通常涉及两条线&#xff08;一条用于发送数据&#xff0c;一条用于接收数据&#xff09;&#xff0c;适用于各种设备&#xff0c;从微控制…

七一建党节|热烈庆祝中国共产党成立103周年!

时光荏苒&#xff0c;岁月如梭。 在这热情似火的夏日&#xff0c; 我们迎来了中国共产党成立103周年的重要时刻。 这是一个值得全体中华儿女共同铭记和庆祝的日子&#xff0c; 也是激励我们不断前进的重要时刻。 103年&#xff0c; 风雨兼程&#xff0c;砥砺前行。 从嘉兴…

【电路笔记】-A类放大器

A类放大器 文章目录 A类放大器1、A类放大器概述2、A类放大器基本通用发射极配置3、变压器耦合配置4、总结在 放大器类型简介的文章中,我们介绍了不同类别的放大器。 在本文中,我们将更详细地介绍A类放大器。 在介绍不同的A类放大器配置前,首先的是要记住放大器类别的选择标…

MySQL的简介和安装目录

今日总结到此结束&#xff0c;拜拜&#xff01;

内容分发网络(CDN)学习记录

目录 静态内容动态内容CDN工作原理CDN缓存 CDN关键技术1.内容路由功能2.内容分发技术&#xff1a;内容分发技术主要是PUSH和PULL3.内容存储技术4.内容管理技术 全局负载均衡基于DNS的GSLB基于HTTP重定向的GSLB基于IP欺骗的GSLB服务器群选择策略 静态内容 静态内容是不会因用户…

Mustango——音乐领域知识生成模型探索

Mustango&#xff1a;利用领域知识的音乐生成模型 论文地址&#xff1a;https://arxiv.org/pdf/2311.08355.pdf 源码地址&#xff1a;https://github.com/amaai-lab/mustango 论文题为**“**利用音乐领域知识开发文本到音乐模型’Mustango’”。它利用音乐领域的知识从文本指…

数据链路层分析

文章目录 前言一、数据链路层概述二、终端之间的通信三、帧格式1.Ethernet_II型2.IEEE 802.3 四、MTU分析五、数据帧的传输1.MAC地址2.单播3.广播4.组播5.数据帧的收发 前言 网络中传输数据需要定义并遵循一些标准&#xff0c;以太网是根据IEEE802.3标准来管理和控制数据帧的&…

值得收藏!盘点那些适合普通人方便又好用的AIGC工具!(下)

【导读】接上一篇文章&#xff0c;盘点国内外适合普通人能够轻松上手的AIGC工具&#xff08;上&#xff09;。今天又为大家整理了一些好用又方便的AI设计工具、AI办公工具、AI编程工具、AI指令工具和AI检测工具&#xff0c;如果有没更新到的工具也欢迎大家评论区交流。 一 、A…

理性决策的艺术:从购房到择偶的数学智慧;37% 规则,做出最佳决策的秘诀;用数学模型解决人生难题

在面对人生重大决策时&#xff0c;如购房或择偶&#xff0c;我们常常感到迷茫和困惑。然而&#xff0c;如果我们能够将这些看似复杂的问题简化为数学模型&#xff0c;我们就能以更加理性和系统的方式做出决策。 37%规则 1950年代&#xff0c;当时几位数学家开始研究这样一个问…

获取onnx模型输入输出结构信息的3种方式:ONNX、onnxruntime、netron

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

二、基础—常用数据结构:列表、元祖、集合、字典、函数等(爬虫及数据可视化)

二、基础—常用数据结构&#xff1a;列表、元祖、集合、字典、函数等&#xff08;爬虫及数据可视化&#xff09; 1&#xff0c;字符串2&#xff0c;最常用的是列表&#xff08;重点掌握&#xff09;3&#xff0c;元组4&#xff0c;字典&#xff08;重要&#xff09;5&#xff0…

51-1 内网信息收集 - 内网资源探测

导语 在内网渗透过程中,通常需要利用各种技术来探测内网资源,为后续的横向渗透做准备。发现内网存活的主机及其详细信息可以帮助确定攻击方向和潜在的漏洞。 一、基于 ICMP 发现存活主机 ICMP(Internet Control Message Protocol,因特网控制消息协议)是 TCP/IP 协议簇的…

python 笔试面试八股(自用版~)

1 解释型和编译型语言的区别 解释是翻译一句执行一句&#xff0c;更灵活&#xff0c;eg&#xff1a;python; 解释成机器能理解的指令&#xff0c;而不是二进制码 编译是整个源程序编译成机器可以直接执行的二进制可运行的程序&#xff0c;再运行这个程序 比如c 2 简述下 Pyth…

springcloud-gateway 网关组件中文文档

Spring Cloud网关 Greenwich SR5 该项目提供了一个基于Spring生态系统的API网关&#xff0c;其中包括&#xff1a;Spring 5&#xff0c;Spring Boot 2和项目Reactor。Spring Cloud网关的目的是提供一种简单而有效的方法来路由到API&#xff0c;并向它们提供跨领域的关注&#x…

7.1作业

初始化 /******rcc章节初始化********/ |//1.使能gpiob组控制器 |RCC->MP_AHB4ENSETR |(0X1<<1); |//2.使能gpiog组控制器 |RCC-&…

数据结构 - C/C++ - 链表

目录 结构特性 内存布局 结构样式 结构拓展 单链表 结构定义 节点关联 插入节点 删除节点 常见操作 双链表 环链表 结构容器 结构设计 结构特性 线性结构的存储方式 顺序存储 - 数组 链式存储 - 链表 线性结构的链式存储是通过任意的存储单元来存储线性…