博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【NOI题库】9269:Big String超级字符串
阅读量:5293 次
发布时间:2019-06-14

本文共 2057 字,大约阅读时间需要 6 分钟。

传送门:

//------------------------------------题目内容--------------------------------------

9269:Big String超级字符串

总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 131072kB

描述

fish在无数次oi竞赛的狱炼之后,悟出一个真理,往往越容易的题目,陷阱越深。由此,fish创作了这道题目。

fish首先给出两个短串A=’4567’ (4个字符), B=’123’(3个字符)。反复进行如下的操作得到一个长串C。

(1)C=B+A (例如:A=’4567’ ,B=’123’ C=B+A=’1234567’)

(2)A=B B=C (上述例子 A=’123’ B=’1234567’)

请你编程找出这个长串的第n个字符。

---------

输入

第一行包含一个整数 n (1<=n<=10^9)

---------

输出

仅一行,包含一个字符,表示这个长串的第n个字符。

---------

样例输入

9

样例输出

2

//----------------------------------------解题-----------------------------------------

先来观察一下a,b,c的长度变化:

 

可以发现嘛,这个字符串的构成只有1,2,3,4,5,6,7这几个字符,

而且4,5,6,7只会属于‘4567’,而1,2,3只会属于‘123’,

然后呢,但操作次数为单数时,字符串【c】末段一定是‘4567’【长度为4】

但操作次数为偶数时,字符串【c】末段一定是‘123’【长度为3】

--------------------------------------------

思路:

可以用递归查找那个要找的那个字符在123或4567中的第几位,找到后输出就可以啦

代码:

1 program chaojizifuchuan; 2 var 3   n,tochange,tcd:longint; 4 //----------------------------------------------------------------------------- 5 function need(t1:longint):longint;//需要进行几步操作 6 var 7   sum,xh,sum2,su:longint; 8 begin 9   xh:=2;              //默认需要两步10   sum:=7;            //xh-1步的字符串长度11   sum2:=10;          //xh步的字符串长度12   while sum2
=total-last then begin //如果在字符串末段47 if last=4 then c:='4567'48 else c:='123'; //last记录的是末段的长度嘛49 printf(c[len-total+last]); //输出50 end51 else begin52 dec(bu); //这个似乎可以删掉QAQ53 total:=tcd; //上一步长度54 tcd:=0; //还原tcd55 try(len-total);//继续try那个lastend到len段【其长度就是len减去上一步的长度】56 end;57 end;58 59 end;60 //-----------------------------------------------------------------------------61 begin62 readln(n); //读入63 try(n); //try64 end.

//中秋快乐QAQ         ----于2016.9.15

 

转载于:https://www.cnblogs.com/bobble/p/5874483.html

你可能感兴趣的文章
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
Ubuntu sudo 出现 is not in the sudoers file解决方案
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
#ifndef #define #endif
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
js中函数与对象的使用
查看>>
正则表达式
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
前端页面卡顿-代码优化
查看>>
nagios通过脚本对系统进行定制监控
查看>>
jquery判断点击鼠标左、中、右键事件
查看>>
java线程池原理
查看>>
为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来?...
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>