大致题意:

递归地描述序列:设S(0)为3个字符的序列“mo o”。然后在较长的序列小号ķ)通过取序列的拷贝获得小号ķ -1),则“摩... O”与ķ 2 O公司,然后该序列的另一个拷贝小号ķ -1 )。例如:

S(0)=“mo o”

S(1)=“moomooomo o”

S(2)=“moomooomoomoooomoomoo omo o”

...... 以此类推 可无限延长

预测这个字符串的第N个字符是“m”还是“o”

Input

Multiple test case. For each case:

* Line 1: A single integer N (1 ≤ N ≤ 109).

Output

For each case, output one line: The only line of output should contain a single character, which is either m or o.

Sample Input

11

Sample Output

m

#include <bits/stdc++.h>
using namespace std;
int a[];
void constant()     /*完整序列的规律可分为 a m a 三部分
   即moomooomoo中,moo为a部分,mooo为m部分*/
{
a[]=; a[]=;
for(int i=;i<;i++) ///求出所有可能的有规律范围
a[i]=a[i-]*+i+;
}
int find_area(int n)
{
int i=;
while(n>a[i++]); ///找到n所在的最小的有规律范围
return i-;
}
int main()
{
constant();
int n;
while(scanf("%d",&n)!=EOF)
{
int lie=find_area(n)-; ///得到在n之前的有规律范围即前面的a部分
int flag=-;
while(flag<)
{
n-=a[lie]; ///此时去掉前面的a部分
if(n==) flag=;
else if(n<=lie+) flag=; //判断是否在m部分内
else
{
n-=lie+; /*减去m部分,余下的后面的a部分同样可细分为a m a三部分,
则再次调用find_area()得到n所在的最小规律范围*/
lie=find_area(n)-;
}
} ///继续循环直到缩小到m部分 修改flag值 跳出循环
if(flag==) printf("m\n");
else if(flag==) printf("o\n");
} return ;
}

USACO2012 Moo /// 模拟 oj21548的更多相关文章

  1. 3016: [Usaco2012 Nov]Clumsy Cows

    3016: [Usaco2012 Nov]Clumsy Cows Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 91  Solved: 69[Submi ...

  2. 【BZOJ3012】[Usaco2012 Dec]First! Trie树+拓补排序

    [BZOJ3012][Usaco2012 Dec]First! Description Bessie has been playing with strings again. She found th ...

  3. [BZOJ2678][Usaco2012 Open]Bookshelf

    P.S. 偶然间发现可以用 markdown... [BZOJ2678][Usaco2012 Open]Bookshelf 试题描述 When Farmer John isn't milking co ...

  4. Censoring【KMP算法+堆栈模拟】

    Censoring 传送门:链接   来源:UPC8203 题目描述 Farmer John has purchased a subscription to Good Hooveskeeping ma ...

  5. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  6. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  7. Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  8. HTML 事件(四) 模拟事件操作

    本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4.  ...

  9. 模拟AngularJS之依赖注入

    一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...

随机推荐

  1. camunda流程实例启动的一些简单操作

    public class ZccRuntimeService { RuntimeService runtimeService; RepositoryService repositoryService; ...

  2. 用IDEA打可运行的jar包

    今天,需要将一个定时项目打成jar包,直接放在服务器上运行,看了一下要求是将依赖包几种放到lib文件夹下,以前都是用maven来打包的.这一次想利用idea直接打包. 但是打完包后运行发现一直缺失ma ...

  3. html iframe js frame

    <iframe> 语法<iframe id="productList" src=""../common/emxTable.jsp?table= ...

  4. Android开发:Handler的简单使用(一)

    1.Handler是什么? 原文: A Handler allows you to send and process Message and Runnable objects associated w ...

  5. 使用androidstudio时遇到的一些小错误

    1 路径名字中不能有汉字  报如下错误:Error:(1, 0) Your project path contains non-ASCII characters. This will most lik ...

  6. Linux账号管理与ALC权限设定(二) 批量增加用户脚本

    接上篇.鸟哥提出了一个问题.就是 如果myuser1用户是这个项目的助理,他只能查看该目录下的内容,而无法修改删除.那该如何操作呢? 首先,不能将该用户加入projecta这个群组,否则他也可以修改删 ...

  7. Codeforces 1140F 线段树 分治 并查集

    题意及思路:https://blog.csdn.net/u013534123/article/details/89010251 之前cf有一个和这个相似的题,不过那个题只有合并操作,没有删除操作,直接 ...

  8. 【网页布局基础】css布局学习总结

    三种定位机制 1.标准文档流:从上到下,从左到右输出文档内容 2.浮动 3.绝对定位 需要注意的是块级元素如div p ul 等 行级元素如span strong img input等 块级元素与行级 ...

  9. 最详细的 Android Toolbar 开发实践总结(转)

    转自:http://www.codeceo.com/article/android-toolbar-develop.html 过年前发了一篇介绍 Translucent System Bar 特性的文 ...

  10. 【sql】牛客网练习题 (共 61 题)

    [1]查找最晚入职员工的所有信息 CREATE TABLE `employees` ( `emp_no` ) NOT NULL, `birth_date` date NOT NULL, `first_ ...