博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sgu175---pascal
阅读量:4657 次
发布时间:2019-06-09

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

题目描述

phi(W)为以下编码算法的结果:

1. W的长度为1,则phi(W)=W

2. 设编码单词为W=w1w2…wNK=N/2(向下取整);

3. phi(W) = phi(wNw(N-1)…w(K+1)) + phi(wKw(K-1)…w1)

例如,phi(‘Ok’)=’kO’phi(‘abcd’)=’cdab’

你的任务是找出字母Wq在加密的单词phi(W)中的位置。

 

输入:

给出整数Nq (1<=N<=10^9 1<=q<=N)N是单词W的长度。

输出:

输出字母Wq在加密的单词phi(W)中的位置。

样例测试:

输入:

9 4

输出:

8

 

 

program sky;

var
   n,ans : longint;
procedure get(l,r: longint );
var
   mid : longint;
begin
   if l=r then exit;
   mid:=(r-l+1) shr 1+l-1;
   if ans<=mid then
   begin
      ans:=l+mid-ans;
      inc(ans,r-mid);
      get(r+1-(mid-l+1),r);
   end
   else
   begin
      ans:=mid+1+(r-ans);
      dec(ans,mid-l+1);
      get(l,l-1+(r-mid));
   end;
end;
begin
   read(n,ans);
   get(1,n);
   writeln(ans);
end.

 

毫无难度的递归模拟仅写给像我一样的细节爱出问题的盆友。

长度=r-l+1

左端点加上长度=(l-1)+(l-r+1)

右端点减去长度=(r+1)-(l-r+1)

仅写给自己吧。。

转载于:https://www.cnblogs.com/skysun/archive/2012/03/14/2396307.html

你可能感兴趣的文章
C3P0连接池工具类使用
查看>>
SVN常用命令备注
查看>>
孩子教育
查看>>
解决Cacti监控图像断断续续问题
查看>>
结构体的传参理解成员的存储方式
查看>>
python 进程与线程(理论部分)
查看>>
什么是API
查看>>
强名称程序集(strong name assembly)——为程序集赋予强名称
查看>>
1028. List Sorting (25)
查看>>
BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
查看>>
ubuntu 重启命令,ubuntu 重启网卡方法
查看>>
Linux的学习:
查看>>
JavaScript中的原型继承原理
查看>>
Python logger模块
查看>>
jquery控制css的display(控制元素的显示与隐藏)
查看>>
关于python做人工智能的一个网页(很牛逼)
查看>>
判断控件的CGRect是否重合,获取控件的最大XY值
查看>>
POJ-1128 Frame Stacking
查看>>
GET请求在Tomcat中的传递及URI传递
查看>>
P4878 道路修建-美国
查看>>