1.练习项目 :
问题描述
小蓝又在研究新的电池实验,他发现如果电池相互连接起来后,若电池电量恰巧为回文数字,则整个电路的供给效率会大大提高。
现在有包含 N 个电池的电路 A ,电池的电量均为正整数,小蓝可以选择 x 和 y 两个正整数,将 A 中所有的 x 替换成 y 。操作可以进行任意次,目的是让电路中的电池电量变成一串回文数,即满足对于任意 1≤i≤N,都有 Ai=AN+1−i。
请问,小蓝至少需要进行多少次操作才能达成目标?
输入格式
第一行包含一个正整数 N(1≤N≤102),表示电路 A 的长度。
第二行包含 N 个正整数 A1,A2,...,AN(1≤Ai≤105),表示电路 A 中的元素。
输出格式
输出一个整数,表示小蓝至少需要进行的操作次数。
2.选择课程
在蓝桥云课中选择题库,选择题号8222并开始练习。
3.开始练习
(1)源码 :
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, ans, aN, pN;
int f(int x) {
return px = (px == x ? x : f(px));
}
int main() {
for (int i = 1 ; i <= 1e5 ; i ++) pi = i;
cin >> n;
for (int i = 1 ; i <= n ; i ++) {
cin >> ai;
if (i > n / 2) if (f(an - i + 1) != f(ai)) {
ans ++;
pf(a\[i)] = f(an - i + 1);
}
}
cout << ans << '\n';
return 0;
}
(2)检验结果
对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。
(3)练习心得:
注意每段代码末尾的分号是否存在 ,如不存在则需即使补充;输入法 是否切换为英语模式;语法是否错误。