绝代码农 发表于 2021-7-6 14:59:53

(UVA - 12405) Scarecrow(贪心)

  链接: 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;
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=='.')
                ans++,i+=2;
            else continue;
      }
      printf("Case %d: %d\n",cas++,ans);
    }
    return 0;
}
  

  
文档来源:51CTO技术博客https://blog.51cto.com/u_13696685/2989954
页: [1]
查看完整版本: (UVA - 12405) Scarecrow(贪心)