/*
算法分析:分析题目发现,从一堆照片中取照片是不计操作次数的,只有翻转的时候才统计次数,而且一堆照片可以一次翻转。所以决定从第一张照片
开始遍历,遇到照片不同的就将前面的照片一次性翻转,接着按照翻转后的照片方向依次比较。
*/
#include <stdio.h>
int main()
{
int i;
int n;//照片的张数
char p[100000]; //存储照片
int N; //数据块的数量
scanf("%d", &N);
while(N--)
{
scanf("%d", &n);
for(i = 0; i < n; )
{
scanf("%c", p + i);
//跳过分隔符
if(p[i] == 'U' || p[i] == 'D') i++;
}
int ans = 0;//记录翻转次数
int pos = 0;//比较位置
//逐个比较照片,如果遇到不同就ans+1,再用当前照片的朝向接着比较。
for(i = 1; i < n; i++)
if(p[i] != p[pos])
{
pos = i;
ans++;
}
printf("%d\n", ans);
if(N) putchar('\n');
}
return 0;
}
zoj 1171 sort the photo
最新推荐文章于 2020-04-18 21:37:25 发布