Codeforces Round 922 (Div. 2) (A~B)

news2024/9/21 16:45:38

A. Brick Wall

读题不谨慎翻车半小时,警惕黑体加粗的单词,真的很重要。

给你n高,m宽的方框,往里面放 1*k 大小的砖头,k自己选,但是>=2,塞满方框的情况并且不超出边界,输出最大的平衡值(横砖数量减去竖砖数量)(同时方框里面 k 可以不全都是一样的

就是 Note 后面的一段,没看到的话这道题就难做了(指样例一直过不了到处找bug,结果题目看漏了)。

思路很简单,横的要多那就全放1*2的横砖,有留空塞不满的就不用管(相当于最后的2拉长填满剩下的),此时就是最多的。

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;

int n,m;

void solve(){
    cin>>n>>m;
    int tmp=0;
    while(m>=2){//这里就是m/2  看到黑体单词的时候已经小脑萎缩了
        m-=2;
        tmp++;
    }
    cout<<tmp*n<<endl;
}

void init(){
    
}
signed main(){
    ios::sync_with_stdio(false),cin.tie(nullptr);
    int t;//单组数据删除cin>>t,将此处改为t=1
    cin>>t;
    while(t--)solve(),init();
    return 0;
}

B. Minimize Inversions

题意:任意的 i<j 且 ai>aj(某一个数后面比他小的数)记作一个投资、也就是逆序对,我们可以任选 i,j 交换 ai,aj,可以无限次操作,然后再给你一个序列,你对原序列的操作要同步执行到这个序列上。要求输出操作后最小的逆序对数量情况下的两个序列。

思路:因为交换会影响到两个序列,所以要上下都要考虑进去,并且一上一下作为一个整体来看待。

比如 a: 4 5

        b: 6 7

把a1和b1上下框起来看做一个整体,a2和b2上下框起来看做一个整体,分析可以得出三种情况。

1. a1<a2

    b1<b2

这种情况a1和b1不会产生逆序对,所以要放a1和b1在左边。

2. a1>a2

    b1>b2

这种情况a1和b1会产生两个逆序对,a1和b1必须交换到a2和b2的后面。

3. a1>a2        或        a1<a2

    b1<b2                    b1>b2

这种情况会产生一个逆序对,那就把他们按照升序放在一起,遇到临界条件1和2了再做改变就完事了。

分析完之后发现,这三个条件使用sort和很容易实现,于是这道题就结束了。

题目限制范围所有测试集的n总和不会大于2e5

那么大概 n^2 及以下能过这道题。

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;
const int N=2e5+5;

struct Node{
    int a,b;
}sn[N];

int n;

void solve(){
    cin>>n;
    per(i,1,n)cin>>sn[i].a;
    per(i,1,n)cin>>sn[i].b;

    sort(sn+1,sn+1+n,[](Node A,Node B){
        if(A.a<B.a and A.b<B.b){//条件1
            return true;
        }else if(A.a>B.a and A.b>B.b){//条件2
            return false;
        }else return A.a<B.a;//条件3,A.b<B.b也可以
    });                      

    per(i,1,n)cout<<sn[i].a<<" ";
    cout<<endl;
    per(i,1,n)cout<<sn[i].b<<" ";
    cout<<endl;
}

void init(){

}
signed main(){
    ios::sync_with_stdio(false),cin.tie(nullptr);
    int t;
    cin>>t;
    while(t--)solve(),init();
    return 0;
}
条件3为什么只需要任意选一行升序?
有没有可能上面升序带来的逆序对 比 下面升序带来的逆序对 更少?

假设有条件3的情况如下,任意两个均为1个逆序对,且按照上面排序

10 20 30 40 55 B
90 40 30 20 15 C

根据条件2可得 B和C能在右边 取值必须要大于左边的最大值
随便取值即

10 20 30 40 55 56
90 40 30 20 15 91

按照上面排序的时候最大值55就已经小于56了
按照下面排序,那上面只会出现比55更小的数,所以此问题不会有成立的情况。

哪怕下面大小满足了,上面永远找不出比55更大的数,不能实现逆序对更少。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(M)UNITY三段攻击制作

三段攻击逻辑 基本逻辑&#xff1a; 人物点击攻击按钮进入攻击状态&#xff08;bool isAttack&#xff09; 在攻击状态下&#xff0c; 一旦设置的触发器&#xff08;trigger attack&#xff09;被触发&#xff0c;设置的计数器&#xff08;int combo&#xff09;查看目前攻击…

【计算机网络】网络的网络

网络的网络 客户 customer 接入ISP提供商 provider 全球承载ISP多个ISP的层级结构 第一层ISP &#xff08;tier-1 ISP &#xff09; 位于顶部 区域ISP &#xff08;reginal ISP&#xff09;Level 3通信 &#xff0c;AT&T&#xff0c;Sprint &#xff0c;NTT存在点&#x…

交叉注意力融合时域、频域特征的FFT + CNN-Transformer-CrossAttention轴承故障识别模型

目录 往期精彩内容&#xff1a; 前言 1 快速傅里叶变换FFT原理介绍 第一步&#xff0c;导入部分数据 第二步&#xff0c;故障信号可视化 第三步&#xff0c;故障信号经过FFT可视化 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 3 交叉注意力机制 …

【机器学习300问】21、什么是激活函数?常见激活函数都有哪些?

在我写的上一篇文章中介绍了感知机&#xff08;单个神经元&#xff09;的构成&#xff0c;其中就谈到了神经元会计算传送过来的信号的总和&#xff0c;只有当这个总和超过了某个界限值时&#xff0c;才会输出值。这也称为“神经元被激活”。如果想对神经网络是什么有更多了解的…

人工智能是哪个专业

人工智能是一个以计算机科学为基础&#xff0c;由计算机、心理学、哲学等多学科交叉融合的交叉学科、新兴学科。其研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学&#xff0c;企图了解智能的实质&#xff0c;并生产出一种新的能以人类…

机器学习——绪论总结

目录 一、引入 二、基本术语 三、假设空间与归纳偏 四、模型选择 一、引入 机器学习&#xff1a;通过计算手段&#xff0c;得出具有能够自我修改、完善能力的模型&#xff0c;利用经验改善系统自身性能。算法使用数据得到模型的过程即称为学习&#xff0c;或训练 流程&…

uni-app app引入天地图

话不多说咸鱼来了 <template><view><div class"mapBox" style"width: 100%; height: 100vh;background: #ddc0c0;" id"mapId" ></div></view> </template> <script module"test" lang"r…

vue使用antv-x6 绘制流程图DAG图(二)

代码&#xff1a; <template><div class"graph-wrap" click.stop"hideFn"><Toobar :graph"graph"></Toobar><!-- 小地图 --><div id"minimap" class"mini-map-container"></div>…

Security ❀ TCP异常报文详解

文章目录 1. TCP Out-Of-Order2. TCP Previous Segment Lost3. TCP Retransmission4. TCP Dup Ack XXX#X5. TCP Windows Update6. TCP Previous segment not captured7. 异常案例分析 TCP协议中seq和ack seq的联系&#xff1a; id4的http请求报文由客户端发向服务器&#xff0…

C++ 数论相关题目 台阶-Nim游戏

现在&#xff0c;有一个 n 级台阶的楼梯&#xff0c;每级台阶上都有若干个石子&#xff0c;其中第 i 级台阶上有 ai 个石子(i≥1 )。 两位玩家轮流操作&#xff0c;每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中&#xff08;不能不拿&#xff09;。 已经拿到地面…

JAVA处理类似饼状图占比和100%问题,采用最大余额法

前言&#xff1a; 在做数据统计报表的时候&#xff0c;有两种方式解决占比总和达不到100%或者超过100%问题。 第一种方式是前端echart图自带的算分框架。 第二种方式是java后端取处理这个问题。 现存问题&#xff1a; 前端通过饼状图的方式去展示各个分类的占比累加和为100%问题…

vue前端页面时间显示问题解决方法

解决方法&#xff0c; <template slot-scope"scope"><span>{{ parseTime(scope.row.boxClosingOnlineTime, {y}-{m}-{d} {h}:{i}:{s}) }}</span> </template> 刷新页面&#xff1a; 此外&#xff0c;使用JsonFormat(pattern "yyyy-M…

Kaggle竞赛系列_SpaceshipTitanic金牌方案分析_数据分析

文章目录 【文章系列】【前言】【比赛简介】【正文】&#xff08;一&#xff09;数据获取&#xff08;二&#xff09;数据分析1. 缺失值2. 重复值3. 属性类型分析4. 类别分析5. 分析目标数值占比 &#xff08;三&#xff09;属性分析1. 对年龄Age分析&#xff08;1&#xff09;…

OpenHarmony—环境准备

JS SDK安装失败处理指导 问题现象 下载JS SDK时&#xff0c;下载失败&#xff0c;提示“Install Js dependencies failed”。解决措施 JS SDK下载失败&#xff0c;一般情况下&#xff0c;主要是由于npm代理配置问题&#xff0c;或未清理npm缓存信息导致&#xff0c;可按照如…

如何更新github上fork的项目(需要一定git基础)

如何更新Fork的项目(需要一定git基础) 前言&#xff1a;本文记录一下自己在github上fork了大佬的开源博客项目https://github.com/tangly1024/NotionNext&#xff0c;如何使用git克隆以及自定义开发和同步合并原项目更新迭代内容的的步骤 如何更新fork的项目(进阶版) 首先你…

MyBatis 源码系列:MyBatis 解析配置文件、二级缓存、SQL

文章目录 解析全局配置文件二级缓存解析解析二级缓存缓存中的调用过程缓存中使用的设计模式 解析SQL 解析全局配置文件 启动流程分析 String resource "mybatis-config.xml"; //将XML配置文件构建为Configuration配置类 reader Resources.getResourceAsReader(re…

华天动力OA ntkodownload.jsp 任意文件读取漏洞复现

0x01 产品简介 华天动力OA是一款将先进的管理思想、 管理模式和软件技术、网络技术相结合,为用户提供了低成本、 高效能的协同办公和管理平台。 0x02 漏洞概述 华天动力OA ntkodownload.jsp接口处存在任意文件读取漏洞,未经身份认证的攻击者可利用此漏洞获取服务器内部敏感…

条款32:确定你的public继承塑模出 is-a 关系

如果你编写类D(“派生类”)public继承类B(“基类”)&#xff0c;就是在告诉C编译器(以及代码的读者)每个类型D的对象都是类型B的对象&#xff0c;但反之则不然。 class Person {...}; class Student: public Person {...}; void eat(const Person& p); // 素有的Person都…

笔记本从零安装ubuntu server系统+环境配置

文章目录 前言相关链接ubuntu Server 安装教程屏幕自动息屏关上盖子不休眠MobaXterm外网SSH内网穿透IPV6远程 为什么我要笔记本装Linux为什么要换ubuntu Server版能否连接wifi之后Linux 配置清单总结 前言 之前装了个ubuntu desktop 版&#xff0c;发现没有命令行&#xff0c;…

FLUENT Meshing Watertight Geometry工作流入门 - 3 BOI FOI

本视频中学到的内容&#xff1a; 如何使用和设置 “Body Of Influence”&#xff08;BOI&#xff09;、“Face Of Influence”&#xff08;FOI&#xff09;。 视频链接&#xff1a; 【FLUENT Meshing入门教程-局部尺寸控制3-BOI&FOI-哔哩哔哩】 https://b23.tv/UHYY828 在…