专栏文章
题解:P12688 [KOI 2022 Round 1] 避开
P12688题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mip4nqf2
- 此快照首次捕获于
- 2025/12/03 06:06 3 个月前
- 此快照最后确认于
- 2025/12/03 06:06 3 个月前
这道题要求我们操作后奇数与奇数相邻,偶数与偶数相邻,且只有一对奇数与偶数相邻。
很容易想出来,就是让奇数放到一边,偶数放到一边,这样即可满足。
我们贪心的想一下,肯定是保持目前奇数偶数相对位置不变,也就是在前面的去前面,后面的去后面。
由于如果将奇数按策略放到前面可能偶数放到后面就不满足策略。于是对奇数优先排和对偶数优先排得到的答案进行比大小就好了。
注意开 long long
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
int cnt,sum,tot,ans;
long long a;
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
if(a%2==1){
cnt++;
sum+=i-cnt;
}
else{
tot++;
ans+=i-tot;
}
}
cout<<min(ans,sum);
}
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...