小麦亩产一千八

【问题描述】
“有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾……”,话说HYSBZ(Hengyang School for Boys & Zy)学识渊博孩纸们一讲到粮食,都会想起印度那
个著名的故事:国王要在第一个格子里放入一粒小麦,接下来的格子放入前面一个格子的两倍的小麦。这样所需小麦总数是巨大的,哪是不用金坷垃就能完成的任务?不过为了减轻国王的任务,那个下棋获胜的宰相换了一个要求:“我只需要你在棋盘外放一粒小麦,可以将其理解为第0 个格子,然后你需要在第一个格子里放入若干小麦,之后每一个格子放入前两个格子的小麦数之和的小麦,并且要满足第a 个格子放x 粒小麦,第b 个格子放……”说到这,宰相突然发现自己说的满足第a 个格子放x 粒小麦的情况可能不存在……欺君可是大罪
啊!国王看到宰相迟迟不说,自己也烦了!我自己来算!于是国王拜托你,让你算出第b个格子应该放几粒小麦。当然,就算答案不存在,你也是要告诉国王的。

【输入格式】kela.in
该题有多组数据,请读到文件末结束。
对于每一组数据仅一行,3 个正整数a,x,b,分别表示第a 个格子放了x 粒小麦,以及你所需要计算的是第b 个格子的小麦数量。

【输出格式】kela.out
对于每一次询问,仅1 个整数,为第b 个格子的小麦数量,若宰相说的情况不存在,那么请输出-1。

样例输入
1 1 2
3 5 4
3 4 6
12 17801 19

样例输出
2
8
-1
516847

【样例解释】
对于样例二,f[1]=2 时,能够满足f[3]=5,因此宰相没有撒谎,此时第5
个格子的小麦数应为f[4]=f[2]+f[3]=3+5=8.

【数据范围与约定】
对于50%的数据:如果答案存在,那么p<=50
对于100%的数据:1<=数据组数<=10000,1<=a,b<=20, 数据保证如果答案
存在,那么1<=p<=1000000.(注:p 是第一格放置的小麦数)。

“然后你需要在第一个格子里放入若干小麦,之后每一个格子放入前两个格子的小麦数之和的小麦”,看到这句话就感觉特别亲切,一看就是知道是和斐波那契切数列有关的。不过这道题不告诉你第一项是多少,而是通过后面的第几项是多少来反推。

无脑的算法就是枚举第一项,然后检验。嗯……不过再怎么优化,出发点是在不动脑子的前提下的,都不是最优。

那么什么是最优呢?读读题,我们发现,已知的只有f[0] = 1 和,f[a] = x。而我们要求f[1]。那么就可以试着推一下用 f[0] 和 f[1] 来表示 f[2], f[3], f[4]……

      f[2] = f[1] +f[0];

      f[3] = 2 * f[1] + f[0];

      f[4] = 3 * f[1] + 2 * f[0];

      f[5] = 5 * f[1] + 3 * f[0];

      ……

于是有了一个惊奇的发现:对于任意的f[n] 都可以用f[1] 和 f[0] 来表示,而且 f[1] 前的系数是斐波那契的第 n 项,f[0] 前的系数是第(n - 1) 项。

而这道题f[0] = 1,所以对于有没有解,只用判断x - f[a - 1]能否被 f[a] 整除。能的话就输出 f[b] * (x - f[a - 1]) + f[b - 1]。

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 #include<vector>
 7 #include<queue>
 8 using namespace std;
 9 typedef long long ll;
10 const int maxn = 50;
11 ll f[maxn];
12 void init()
13 {
14     f[0] = 0; f[1] = 1;        //预处理斐波那契
15     for(int i = 2; i < maxn; ++i) f[i] = f[i - 1] + f[i - 2];
16 }
17 int main()
18 {
19     freopen("kela.in", "r", stdin);
20     freopen("kela.out", "w", stdout);
21     init();
22     ll a, x, b;
23     while(scanf("%lld%lld%lld", &a, &x, &b) != EOF)
24     {
25         ll f1 = x - f[a - 1];
26         if(f1 % f[a] || f1 < 0) {printf("-1\n"); continue;}
27         f1 /= f[a];
28         printf("%lld\n", f[b] * f1 + f[b - 1]);
29     }
30     return 0;
31 }

原文地址:https://www.cnblogs.com/mrclr/p/8922687.html

时间: 2024-10-10 17:11:25

小麦亩产一千八的相关文章

千八行

<千八行> 魔都的春天,如同孩子的脸,说变就变,昨天还是艳阳高照,“暖风熏的游人醉”:今天就可能春寒料峭,“又作东风十日寒”.但毕竟春天来了,岸柳生烟,玉兰吐芳,若不满足于这些人工栽培.精心培育的观赏植物,可以暂时离开人声鼎沸.磨拳擦掌.竞争激烈的都市,到那山间田野.湖塘溪涧找寻久违的现世安稳.岁月静好的美妙感觉.于是我决定,趁着清明小长假的机会,前往浙江福建两省交界处的“千八”踏青徒步. “千八”位于浙江省南部丽水市的龙泉和庆元两市县境内,属洞宫山脉的支脉.具体是指11座海拔在1800米以上

【水】4月21日模拟题解

(((((((((((((((((((((((((((((((((((((((((((((((((((((4.21模拟题解((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 欢迎查看本校最水题解 第1 题 小麦亩产一千八 [问题描述] "有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾--", 话说HYSBZ(Hengyang School for Boys & Zy)学识渊博孩纸们一讲到粮食,都

【小提琴】石川绫子演奏合集 之 不要认输

http://www.bilibili.com/video/av672043/index_14.html 绫子姐简直美哭~ 另,在视频下面刷“亩产一千八”的头过来,我给你加个buff.

《互联网时代》 第八集 忧虑

引言 塞纳河,中分巴黎而过,它的右岸凝结着奢华与宏大,它的左岸汇聚了叛逆与思辨.左岸的巴黎第一大学近旁,矗立着一座古希腊风格的圣殿——先贤祠. 永生的烛火灯影里,安眠着七十二位法兰西高贵的灵魂.这些伟人中间,两位先哲占据着最显耀的位置,他们比邻而居,相安无事,共享世荣.他们生前却针锋相对,唇枪舌剑,至死方休. 伏尔泰,鼓吹科技与进步,他锲而不舍地描绘着技术文明的进步带给人类前所未有的快乐和幸福,他宣称启蒙的旗帜是理性,启蒙的基石是进步. 卢梭为后人称为自然之子,终生的信奉却截然相反,他坚定的认为

把时间当作朋友——第5章 思考

1.勤于思考 遇到问题动脑子想一想其实是根本不费力气的事情,可偏偏很多人最常说的一句话是"想那么多累不累啊?"这话相当古怪,特别是从一个"人"--作为地球上唯一拥有庞大大脑额叶的物种的成员--的口中说出来. 谁也说不清,为什么会有那么高比例的人懒得思考.不愿思考.害怕思考.厌恶思考--这个比例保守估计不会低于80%,而且,剩下的20%中甚至又有80%常常用错误的方法思考.综合来说,在全人类中能用简单且清楚的方式把问题想明白的人几乎不到4%.这4%的人,绝大多数最终选

蛋白质

https://zh.wikipedia.org/wiki/%E8%9B%8B%E7%99%BD%E8%B4%A8 蛋白质是一种由氨基酸分子组成的有机化合物,旧称“朊”[1].氨基酸分子呈线性排列,相邻氨基酸残基的羧基和氨基通过肽键连接在一起.蛋白质的氨基酸序列是由对应基因所编码.除了遗传密码所编码的20种“标准”氨基酸,在蛋白质中,某些氨基酸残基还可以被翻译后修饰而发生化学结构的变化,从而对蛋白质进行激活或调控.多个蛋白质可以一起,往往是通过结合在一起形成稳定的蛋白质复合物,发挥某一特定功能.

创业者口中的理想 不过是旁观者眼中的荒唐

对国内互联网经济环境的形容,笔者见过最为贴切的是:BAT和其派系企业就像天上的神仙,中小创业团队则像红尘中的过客.天神们静静看着人间的熙熙攘攘,"闷声发大财"地扩展着自己的商业帝国.而人世间的不甘者们,闹出一阵动静之后,引起天神的注意,迅速地归为平静或消失殆尽. 几乎每个月里,国内互联网创业环境内,都会出现这般热闹非凡的个例.利用资本,通过各路PR渠道,自说自话地描绘出一片大好形势,一幅立刻要颠覆BAT们霸权的商业蓝图.在2016年九月里,这个主角是订房宝团队. 创新模式.星级体验.颠

为什么国外程序员爱用 Mac?

from http://www.vpsee.com/2009/06/why-programmers-love-mac/ Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒.那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因: 1.Mac OS X 是基于 Unix 的.这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到.

不甘心才是你一直在努力的理由

1.宁静的力量 「静以修身」.「非宁静无以致远」.「学须静也」 诸葛亮忠告孩子宁静才能够修养身心,静思反省. 不能够静下来,则不可以有效的计划未来,而且学习的首要条件,就是有宁的环境. 现代人大多数终日忙碌,你是否应在忙乱中静下来,反思人生方向? 2.节俭的力量 「俭以养德」 诸葛亮忠告孩子要节俭,以培养自己的德行. 审慎理财,量入为出,不但可以摆脱负债的困扰,更可以过着纪律的简朴生活,不会成为物质的奴隶. 在鼓励消费的文明社会,你有否想过节俭的好处呢? 励志文章:诸葛亮给后人10种力量 三联