P8301 [CoE R4 A/Stoi2041] 娘子 题解
Tz_Obopn233 · · 题解
这道题一开始没仔细去读,结果用了动态规划(怎么第一题就这么难啊)。
做了半天才发现,序列
我们令
题目要求我们用最小的次数完成
那么,更改的次数应该为
为什么呢?我们可以化简其中一个式子:
而因为
我们可以只统计
Code:
#include<bits/stdc++.h>
using namespace std;
int n,d1,d2;
int main() {
scanf("%d",&n);
for(int i=1;i<=n;i++) {
char x; cin>>x;
if(x=='0') d1++;//d1记录a中出现0的次数
}
for(int i=1;i<=n;i++) {
char x; cin>>x;
if(x=='0') d2++;//d2记录b中出现0的次数
}
printf("%d",(abs(d1-d2)));//由于|d1-d2|=|n-d1-(n-d2)|,我们无需比较,直接输出就行了
return 0;
}