1. 题目描述

给你一叠照片,有的正面朝上,有的反面朝上,朝上的用字母U,朝下的用字母D

可以从一个位置开始到最顶端,把这一叠拿出来,反转,然后再放回那一叠照片上面。

试求出最少的翻转次数,使所有的照片朝向一样。

输入格式

第一行输入一个整数表示有组测试数据。随后是组测试数据。

每组测试数据给出照片的张数m, 然后输入一些字符,包括‘U’表示朝上,’D’表示朝下,还有一些空格,回车

输出格式

对于每组测试数据输出一行,内容为使照片翻转次数尽可能少的方案数。

每个样例之间用空行隔开

输入样例

1

5
UU D
UU

输出样例

2

2. 题目分析和算法实现

首先分析输入,对于每个样例的输入,我采用getchar(),其中这些字符里面有用的字符就只有‘U’和‘D’,所以只要判断‘U’和’D’的个数是否到m个即可。

思路分析:把每个连续的U或者D看成一个小整体,只要翻转同步,可以看成一张。然后从上往下依次翻,当遇到朝向不一样的照片时,我们就把上面所有的照片都反转一下即可,接着就继续往下,直到所有的朝向都一样了为止。

所以我们只要计算朝向不一样的次数即可。而朝向不一样的次数等于小整体的个数,所以我们在输入时就直接计算这种小整体的个数S,那么答案即为S-1

3. 问题实现及代码分析

#include<stdio.h>
#include<string.h>
int main()
{
int i,j,k,t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int flag=0,pre=-1;//flag表示小整体的个数
//pre表示之前那个小整体的朝向
char s;
while(n)
{
s=getchar();
if(s=='U'||s=='D')
{
n--;//是照片,个数减一
if(s!=pre)//与前面的不一样,个数加一
//且pre得朝向改变
{
flag++;
pre=s;
}
}
}
flag--;
printf("%d\n",flag);
if(t)puts("");//输出中间的空行
}
return 0;
}

ZOJ 1171 Sorting the Photos的更多相关文章

  1. poj 1094 / zoj 1060 Sorting It All Out

    Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 26876   Accepted: 92 ...

  2. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  3. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  4. ZOJ 1188 DNA Sorting

    原题链接 题目大意:给定一串字符串,查找字符串里字母逆序排列的对数,按照由少到多的顺序把所有字符串进行排列. 解法:用C++字符串string类的iterator,从每个字符串的起始开始,查找逆序字符 ...

  5. ZOJ题目分类

    ZOJ题目分类初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 13 ...

  6. 【转载】图论 500题——主要为hdu/poj/zoj

    转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  7. ZOJ 3229 Shoot the Bullet

    Shoot the Bullet Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on ZJU. Origin ...

  8. WPF 3D Transparency Depth-Order Sorting

    原文:WPF 3D Transparency Depth-Order Sorting   Just a quick post here - When making WPF 3D apps, trans ...

  9. Say goodbye to my photos&videos

    刚刚得知一个悲惨的消息:虽然2012已经过去了,但是世界末日并未过去.嗯,我不是来严肃的,我是来搞笑的.毕竟,我已经如此伤心了.中午结束考试,下午看了一半的电影然后躺室友的床上睡了一觉,醒来看到阿姨发 ...

随机推荐

  1. ActiveMQ消息队列介绍(转)

    ActiveMQ是一个开源兼容Java Message Service (JMS) 1.1面向消息的中件间. 来自Apache Software Foundation. ActiveMQ提供松耦合的应 ...

  2. Eclipse验证码

    package MyEclipse; import java.io.*;     public class MyEclipseGen {     private static final String ...

  3. wireshark删除filters记录

  4. 基于visual Studio2013解决C语言竞赛题之1041反向打印

          题目 解决代码及点评 /* 功能:将一个整数(最多是10位数)从低位到高位打印出来, 如该数是12345时,输出应是54321(只占一行) 时间:19:18 201 ...

  5. SRM589 DV1 250 回文字符串

    其实这道题挺简单的,不过刚开始我钻了一个错误的死胡同.想明白之后才发现. 题目要求用最少的时间来将一个字符串变成回文字符串.(具体题目参看topcoder srm589 DV1 250分值的题目,不便 ...

  6. Android播放音乐时跳动的屏谱demo

    Android实现播放音频时的跳动频谱,并实现可以调节的均衡器. Main.java package com.wjq.audiofx; import android.app.Activity; imp ...

  7. 11g r2 模拟OCR和voting disk不可用,完整恢复过程,以及一些注意事项

    环境:RHEL5.8 RAC 11.2.0.3.0 1:查看ORC和voting disk信息: In 11g Release 2 your voting disk data is automatic ...

  8. ASP.NET - Repeater控件删除按钮,点击删除信息

    前台代码: <!--类别信息--> <div id ="newnews" class ="Frm"> <h4>类别管理< ...

  9. Qt遍历图片文件

    原地址:http://blog.sina.com.cn/s/blog_5c70dfc80100tgff.html //实现遍历某个文件下的图片文件 //如果想遍历其余类型文件,方法也一样,只需简单修改 ...

  10. NGUI: Documentation

    Video Tutorials Basic Tutorial (v.2.5.0+) SD & HD atlas switching (advanced) Packed Font (advanc ...