Codeforces Round 922 (Div. 2)

本文介绍了CodeforcesRound922(Div.2)中三个问题的解题方法:A.BrickWall使用模拟和贪心策略填充砖块,B.MinimizeInversions通过排序消除逆序对,C.XOR-distance利用位运算解决异或距离问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Codeforces Round 922 (Div. 2)

A. Brick Wall

模拟、贪心

不需要竖着的砖块,全部为横着的砖块即可。

如果发现一行填不满,只需要将一个位置换成 1x3的砖块即可

其余的都填1x2的砖块

#include<bits/stdc++.h>

typedef long long ll;
using namespace std;

int main(){
    int t;
    cin>>t;
    while(t--){
        int n,m;
        cin>>n>>m;
        ll ans=0;
        if(m&1){
            m-=3;
            ans+=n;
        }
        ans+= n*(m/2);
        cout<<ans<<endl;
    }
}

B.Minimize Inversions

思维,模拟

每次选中两个下标,进行交换。一共有三种情况。

1、选中的下标里有一对逆序对,那么交换后,仍然是一对

2、选中的下标里有两对逆序对,交换后变成0对

3、选择的下标里有0对逆序对,交换后变成2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

louisdlee.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值