BASIC-19_蓝桥杯_完美的代价
思路(贪心):
1.两边往中间逼近,步数少;
2.单个字符出现时只考虑移动到中间的步数,不做移动,因为这是最后进行,不影响结果;
示例代码:
#include <stdio.h>
#define N 8000
int main(void)
{
int n = 0 ;
int i = 0 , j = 0 , k = 0 , flag = 0 , sign = 0 , sum = 0;
char arr[N] ;
scanf("%d",&n);
scanf("%s",arr);
k = n - 1 ; /*对称位置*/
for (i = 0 ; i <= k ; i ++)
{
for (j = k ; j >= i ; j --)
{
/*出现单个字符*/
if (i == j)
{
if (n%2 == 0 || sign)
{
flag ++; /*第一次出现忽略*/
break;
}
sign ++;
sum += n/2 - i;
break;
}
/*匹配到的回文*/
if (arr[i] == arr[j])
{
sum += k - j;
while (j != k)
{
arr[j] = arr[j+1];
j ++;
}
arr[j] = arr[i];
k --;
break;
}
}
if (flag)
{
break;
}
}
if (flag)
{
printf("Impossible");
}
else
{
printf("%d",sum);
}
return 0;
}
最新文章
- 在iis7上如何配置来看到asp报错
- wampserver-----------如何设置wampserver在windows下开机自动启动。
- iOS7.0适配问题
- Android 发布可穿戴设备 SDK 的开发者预览版
- iOS 自定义 shareSDK 容器
- homework-08 C++课程课后思考与练习
- 推荐几个JSON工具
- 通过CSS实现各种方向的三角形
- WebService学习总结
- PDF中的空白页面怎么删除,PDF页面删除技巧
- Helm - Kubernetes服务编排的利器
- idea配置git,查看git代码&;拉取git项目至本地
- [Laravel] 11 - WEB API : cache &; timer
- java打印条形码Code128C
- Day 12 作业.(完成)
- debian下配置双核cpu
- 在制MO未取到FP
- Java多线程——volatile关键字、发布和逸出
- 03-运行第一个docker容器
- Shift Operations on C
热门文章
- Redis (一) 概念安装
- delphi中使用MSWINSCK.OCX控件
- pyqt5 使用 QTimer, QThread, pyqtSignal 实现自动执行,多线程,自定义信号触发。
- Spring学习笔记之Container overview
- DevExpress Add ASPxGridView template columns at runtime
- STL标准库-仿函数与仿函数适配器
- js 的垃圾回收器 原理 坑 优化-- 待续
- Android开发入门要点记录:四大组件
- python opencv —— 背景提取(MOG、KNN)、识别与检测(Haar Cascade)
- SendTo MD5 - imsoft.cnblogs