评论

收藏

[C++] (UVA - 12405) Scarecrow(贪心)

编程语言 编程语言 发布于:2021-07-06 14:59 | 阅读数:471 | 评论:0

  链接: https://vjudge.net/problem/UVA-12405
  题意:给定正整数n(n<=100),接着输入长度为n的字符串,只由’.’和’#’组成,一个’#’可以覆盖相邻三个’.’,求最少用多少个’#’可以覆盖所有的’.’?
  分析:贪心,遇到一个’.’,ans++,跳过后面的两个字符
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e3+5;
char str[N];
int main()
{
  int t,cas=1;
  scanf("%d",&t);
  while(t--)
  {
    int n,ans=0;
    scanf("%d",&n);
    scanf("%s",str);
    for(int i=0;i<n;i++)
    {
      if(str[i]=='.')
        ans++,i+=2;
      else continue;
    }
    printf("Case %d: %d\n",cas++,ans);
  }
  return 0;
}
  

  
关注下面的标签,发现更多相似文章