题解 P4439 【[COCI2017-2018#3] Aron】

· · 题解

自我感觉方法还是挺简单的。

题目描述相当于一块一块的人,我们只要统计出一共有几块人,然后再+1,就是Aron的位置。

而找几块人,我们不需要把每个人的衣服颜色都记下来,我们只需要记下一个变量,记录上一个人的衣服颜色,和这个人的衣服颜色进行比较,如果一样,则属于同一块,跳过,继续找下一个人。如果不一样,则说明不属于同一块,那么则ans人数++,变量k为当前人的衣服颜色。

接下来就是代码了,我们只需要从1~n扫一遍,统计一下ans,即可得出答案。

#include<bits/stdc++.h>
using namespace std;
int n,ans;
int main(){
    scanf("%d",&n);
    char k='#';//变量K,题目给出衣服颜色一定是大写字母,所以我们初始化一个#。 
    for(int i=1;i<=n;i++){//循环 
        char s;//当前人的衣服颜色 
        cin>>s;
        if(s==k)continue;//属于同一块 
        ans++;
        k=s;
    }ans++;
    printf("%d",ans);//输出答案 
    return 0;
} 

好了,(只是突然发现红题又新加了一道,所以来发篇题解,第一篇题解,望能过) 祝大家AC~