rainbow与freda染旗

★   输入文件:shimi.in   输出文件:shimi.out   简单对比
时间限制:1 s   内存限制:128 MB

【题目背景】

Freda:aya Rainbow,怎么没看见你城堡挂旗子呀?
Rainbow:我城堡旗子太难看了肿么办T_T
Freda:lala~那好办,我可以帮你染色呀~
Rainbow:嗯嗯,那就试试吧~

【题目描述】

Rainbow城堡的旗子是一个有N个基本单位的长条>_<,每个单位都会被染成前m个大写字母当中的一个颜色。可是,Rainbow认为,两个相邻的单位有相同的颜色很难看的说。所以,Rainbow需要改动一些单位的颜色,使得不存在两个相邻的单位颜色相同。当然了,那些被改动的单位改动之后的颜色也是前m个大写字母当中的一个。Rainbow想请你帮忙计算,它最少要改动多少个单位的颜色才能让旗子好看呢?

【输入格式】

第一行两个整数N、m,表示旗子组成的基本单位数目和颜色的范围。
接下来一行一个长度为N的字符串,字符串的每个字符都是在前m个大写字母的范围内的,表示Rainbow的旗帜。

【输出格式】

一行一个整数表示Rainbow最少改动的单位数目。

【样例输入】

6 3
ABBACC

【样例输出】

2
//某大神说用DP,是出题人的失误导致这个题的正解成了模拟
/****
思路:
首先,考虑只有两种颜色的情况,只能是A和B交替组合,我们只需要将ABABAB...AB或BABAB...ABA与原来的进行比较,看看哪个相符程度高,
然后再求出改变的最少的位置数;
其次,考虑三种及三种以上颜色的情况,一面旗子至多有两个邻居,也就是说使用三种颜色完全可以使所有旗子与相邻的不同色。
如果出现两面相邻的旗子同色,我们只需要改后面的那一面旗子,计数,并将旗子进行标记。
如果不标记,当出现AAABCB...这种情况时,答案就会有错误,模拟时,会将第二面和第三面都改变。
****/
#include <stdio.h>int main()
{freopen("shimi.in","r",stdin);freopen("shimi.out","w",stdout);int n,m;int i,j,k;char c[100010]={'\0'};scanf("%d%d",&n,&m);scanf("%s",c);if(m==2){char temp='A';int d=0;int s1=0,s2=0;for(i=0;i<n;i++){if(c[i]!=temp)s1++;if(d)temp='A';elsetemp='B';d=1-d;//printf("%c",temp);}temp='B';d=1;for(i=0;i<n;i++){if(c[i]!=temp)s2++;if(d)temp='A';elsetemp='B';d=1-d;//printf("%c",temp);}printf("%d\n",s1<s2?s1:s2);}else{int s=0;for(i=1;i<n;i++){if(c[i]==c[i-1]){s++;c[i]='-1';}}printf("%d\n",s);}return 0;
}

rainbow与freda染旗相关推荐

  1. 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法

    3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 753  Solved: 444 [Submit][Status][Discuss] ...

  2. 洛谷P4147玉某宫(最大矩阵好题)

    题目描述 这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda. 现在freda要在这里卖萌...它要找一块矩形土地,要求 ...

  3. BZOJ 3039: 玉蟾宫( 悬线法 )

    最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...

  4. 18.8.20 考试总结

    铁塔 (tower.pas/c/cpp) 题目描述 Rainbow 和Freda 要在Poetic Island 市的一座山脚下盖房子定居了--盖房子需要钢材 ,幸运的是,这里有排成一行的n 座废弃的 ...

  5. Test 2018-07-19 二中集训

    铁塔 $ (tower.pas/c/cpp) $ 原题:$ TYVJ 「Poetize8」Tower $ $ \rightarrow $ 戳我进TYVJ原题 题目描述 $ Rainbow $ 和 $ ...

  6. bzoj 3039: 玉蟾宫(悬线法)

    3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 975  Solved: 562 [Submit][Status][Discuss] ...

  7. 洛谷P4147 玉蟾宫(单调栈解决)

    题目 题目链接 题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成 N\times ...

  8. CODEVS 2491 玉蟾宫

    题目描述 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表 ...

  9. BZOJ[3039]玉蟾宫 悬线法

    题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3039 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山 ...

最新文章

  1. 【通俗理解线性代数】 -- 矩阵的等价与相似
  2. vue-cli3 第三版安装搭建项目
  3. CNN交通场景解析--Spatial as Deep: Spatial CNN for Traffic Scene Understanding
  4. 浅谈csrf攻击以及yii2对其的防范措施
  5. mysql 模拟序列_【原创】MySQL 模拟PostgreSQL generate_series 表函数
  6. 第二章--电商设计表订单实体-电商项目
  7. python画50个图-python绘制多个子图的实例
  8. PPPOE宽带接入技术及常见故障分析
  9. linux centos7 下ruby 下载安装
  10. Win10 - 使用‘Alt+Tab’不能切换窗口及更改切换风格
  11. C语言打印菱形超详细版本,逐句解析
  12. 手把手教你如何自学计算机,绝对的干货满满!!!
  13. Java、数据库等面试题大全
  14. Google SketchUp SDK
  15. 手机的CPU为什么要区分大小核?
  16. Idea工具如何使用
  17. proceed with launch?解决办法
  18. App ID注册地址
  19. matlab quiver一维矢量图,Matlab quiver函数用法 - 画矢量箭头图
  20. 什么是RIA?介绍几种RIA客户端开发技术

热门文章

  1. Linux ubuntu下载deb包的推荐网站
  2. rhel6 中安装使用finger命令
  3. 在线端口检查工具 Online IP TCP UDP port scan
  4. 【BUCTOJ训练: 求和(Python)】
  5. Java对接地磅串口工作日志
  6. ajax初始化 ztree v3,zTree_v3
  7. 鴻海董事長郭台銘先生的話
  8. postMan请求结果中文乱码
  9. 如何将图片制作成画中画特效
  10. 华为一级产品线介绍(部分)