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