USACO2012 Moo /// 模拟 oj21548
大致题意:
递归地描述序列:设S(0)为3个字符的序列“mo o”。然后在较长的序列小号(ķ)通过取序列的拷贝获得小号(ķ -1),则“摩... O”与ķ 2 O公司,然后该序列的另一个拷贝小号(ķ -1 )。例如:
S(0)=“mo o”
S(2)=“moomooomoomoooomoomoo omo o”
...... 以此类推 可无限延长
预测这个字符串的第N个字符是“m”还是“o”
Multiple test case. For each case:
* Line 1: A single integer N (1 ≤ N ≤ 109).
For each case, output one line: The only line of output should contain a single character, which is either m or o.
11
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的更多相关文章
- 3016: [Usaco2012 Nov]Clumsy Cows
3016: [Usaco2012 Nov]Clumsy Cows Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 91 Solved: 69[Submi ...
- 【BZOJ3012】[Usaco2012 Dec]First! Trie树+拓补排序
[BZOJ3012][Usaco2012 Dec]First! Description Bessie has been playing with strings again. She found th ...
- [BZOJ2678][Usaco2012 Open]Bookshelf
P.S. 偶然间发现可以用 markdown... [BZOJ2678][Usaco2012 Open]Bookshelf 试题描述 When Farmer John isn't milking co ...
- Censoring【KMP算法+堆栈模拟】
Censoring 传送门:链接 来源:UPC8203 题目描述 Farmer John has purchased a subscription to Good Hooveskeeping ma ...
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- Python 爬虫模拟登陆知乎
在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...
- HTML 事件(四) 模拟事件操作
本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4. ...
- 模拟AngularJS之依赖注入
一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...
随机推荐
- Eclipse快捷键 之 代码追踪
在使用Java编写复杂一些的程序时,你会不会常常对一层层的继承关系和一次次方法的调用感到迷惘呢?幸亏我们有了Eclipse这么好的IDE可以帮我们理清头绪--这就要使用Eclipse强大的代码追踪功能 ...
- 跨域Ajax请求时是否带Cookie的设置
1. 无关Cookie跨域Ajax请求 客户端 以 Jquery 的 ajax 为例: $.ajax({ url : 'http://remote.domain.com/corsrequest', d ...
- shell脚本命令行参数里的空白符
看一个小脚本 #!/bin/bash #demonstarting the shift command count= while [ -n "$1" ] ; do echo &qu ...
- spring security 学习三-rememberMe
功能:登录时的“记住我”功能 原理: rememberMeAuthenticationFilter在security过滤器链中的位置,在请求走认证流程是,当前边的filter都不通过时,会走remem ...
- buuctf zip伪加密
平时伪加密总是依赖osx,这道题无法直接解压,所以研究一下伪加密先放两张图(图是偷的)一般在压缩源文件数据区全局方式位标记处,真加密为 09 00,伪加密为00 00,而后面将压缩源文件目录区全局方式 ...
- linux每日命令(4):解压命令
1) Ubuntu 16.04 已经自动安装了unzip 软件,解压命令: unzip FileName.zip 2) 如果没有安装unzip,可以使用下面的命令安装: sudo apt instal ...
- JS鼠标效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- springboot集成redis报错-ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig
当使用Springboot 2.0以上版本集成redis的时候遇到报错信息如下: Application run failed org.springframework.beans.factory.Un ...
- adb 提示adb server version(31) doesn't match this client(40) 解决办法
有时候我们用adb工具去连接安卓设备,或者模拟器的时候,会提示adb server version(31) doesn't match this client(40)这样的提示.如图 提示的字面意思就 ...
- dubbo-源码阅读之服务订阅
配置例子 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...