大致题意:

递归地描述序列:设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. os.walk|图片数据集

    该函数的功能:遍历指定文件夹下的所有[路径][文件夹][文件名] ''' os.walk(top[, topdown=True[, onerror=None[, followlinks=False]] ...

  2. docker使用entrypoint执行时报permission denied错误

    在Dockerfile中使用指令ENTRYPOINT来执行项目下entrypoint.shshell文件,如下: ENTRYPOINT ["./entrypoint.sh"] 时报 ...

  3. 装完某些软件之后IE主页被https://www.hao123.com/?tn=93453552_hao_pg劫持

    今天重装电脑,装完某些软件之后发现IE主页被https://www.hao123.com/?tn=93453552_hao_pg劫持,然后百度各种解决方法都没用,甚至是修改注册表依然没啥用 最后忽然看 ...

  4. tar 和gzip 的区别

    首先要 弄清两个概念:打包和压缩. 打包是指将一大堆文件或目录什么的变成一个总的文件, 压缩则是将一个大的文件通过一些压缩算法变成一个小文件. 为什么要区分这两个概念呢?其实这源于Linux中的很多压 ...

  5. Vue--入门篇

    一.v-model和单选按钮(radio) <div id="app"> <input name="sex" value="男&qu ...

  6. Sed的查,删,增,改

    sed的查,删,增,改 1.sed的查找 2.sed的删除 3.sed的上下左右增加文件内容 4.sed的改

  7. Codeforces 251C Number Transformation DP, 记忆化搜索,LCM,广搜

    题意及思路:https://blog.csdn.net/bossup/article/details/37076965 代码: #include <bits/stdc++.h> #defi ...

  8. Java中Map集合的基本功能

    Map基本方法: put方法: remove方法: isEmpty方法: . clear方法: containsKey方法: containsValue方法 size方法: get方法: keySet ...

  9. FromBase64String(String)和Encoding.Default.GetBytes(String)

    今天突然被问FromBase64String(String)和Encoding.Default.GetBytes(String)有啥区别,我刚开始学C#对这个一脸懵逼,于是总结一下今天查资料的内容. ...

  10. vue 父到子动态传值 子组件实时渲染

    近期项目中需要一个功能,根据选择不同的 团队片区 id 展示不同的数据,团队id 在父组件  数据在子组件中展示. 根据不同的团队 动态渲染数据总览. 父组件: <Cards ref=" ...