ZOJ 1171 Sorting the Photos
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的更多相关文章
- poj 1094 / zoj 1060 Sorting It All Out
Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 26876 Accepted: 92 ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- ZOJ 1188 DNA Sorting
原题链接 题目大意:给定一串字符串,查找字符串里字母逆序排列的对数,按照由少到多的顺序把所有字符串进行排列. 解法:用C++字符串string类的iterator,从每个字符串的起始开始,查找逆序字符 ...
- ZOJ题目分类
ZOJ题目分类初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 13 ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- ZOJ 3229 Shoot the Bullet
Shoot the Bullet Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on ZJU. Origin ...
- WPF 3D Transparency Depth-Order Sorting
原文:WPF 3D Transparency Depth-Order Sorting Just a quick post here - When making WPF 3D apps, trans ...
- Say goodbye to my photos&videos
刚刚得知一个悲惨的消息:虽然2012已经过去了,但是世界末日并未过去.嗯,我不是来严肃的,我是来搞笑的.毕竟,我已经如此伤心了.中午结束考试,下午看了一半的电影然后躺室友的床上睡了一觉,醒来看到阿姨发 ...
随机推荐
- c# winform 路径选择和文件读写
//读文件 private void readBtn_Click(object sender, EventArgs e) { try { if (pathTxt.Text == "" ...
- 总结NHibernate 中删除数据的几种方法
今天下午有人在QQ群上问在NHibernate上如何根据条件删除多条数据,于是我自己就写了些测试代码,并总结了一下NHibernate中删除数据的方式,做个备忘.不过不能保证囊括所有的方式,如果还有别 ...
- Microsoft Visual Studio International Pack 1.0 SR1--关于汉字转拼音
Microsoft Visual Studio International Pack 1.0 SR1————微软的一个类库 地址:http://www.microsoft.com/zh-cn/down ...
- C语言,realloc
void * realloc ( void * ptr, size_t new_size ); 关于realloc的行为方式,结合源码总结为:1. realloc失败的时候,返回NULL: 2. re ...
- KaOS 2016.04 发布,桌面 Linux 发行版
KaOS 2016.04 发布了,KaOS是一份桌面Linux发行,其特色在于最新版本的KDE桌面环境及其他流行的使用Qt工具包的软件程序.它最初基于Arch Linux,但从2013年四月起,开发者 ...
- Qt中使用OpenCV库
原地址:http://blog.sina.com.cn/s/blog_5c70dfc80100qwi3.html 心情真是好啊,曾经一度想放弃使用Qt加OpenCV进行数字图像处理了,幸好坚持住了,今 ...
- Ubuntu下使用sshfs挂载远程目录到本地(和Windows挂载盘一样)
访问局域网中其他Ubuntu机器,在不同机器间跳来跳去,很是麻烦,如果能够把远程目录映射到本地无疑会大大方面使用,就像Windows下的网络映射盘一样.在Linux的世界无疑也会有这种机制和方式,最近 ...
- 安装m2eclipse
Help->Eclipse Marketplace- 搜索 maven 安装 Maven Integration for Eclipse
- 【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列4
Jobs (CJQ0, Jn, SNPn) Job进程运行用户定义的以及系统定义的类似于batch的任务.检查Job进程占用大量CPU资源的方法,就像检查用户进程一样. 可以根据以下视图检查Job进程 ...
- Get Cordova Ready for Grunt and CoffeeScript
Cordova, Grunt and Coffee You may reference to below if you deside to work with coffee instead of Ja ...