摘要: 数学题:给你一个区间[a,b]在该区间内有多少个费波那列数(包括a,b),数据规模达到10^100。这题的原理很简单,基本没什么算法,其实更偏重于编程能力,需要用到高精度。另外找区间的地方要小心1.先把长度在100以内的fibs先找出来并保存,再开始输入case2.得到区间[a,b],那么在保存下来的fibs里找到 第一个f[p],要满足a<=f[p] , 然后继续找下去,找到 第一个f[q],满足b<=f[q]其中f[q]还要处理一下,如果b=f[q],那么f[q]显然在区间内 ; b<f[q],那说明f[q]并不在区间内,由于是第一个所以可以知道f[q-1]一定要区间内而 阅读全文
posted @ 2013-01-22 22:48 Titanium 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 数学题(找规律题)题意:给你骑士的攻击范围,给你一个r行c列的棋盘,问怎么放能放最多的骑士而且任意骑士间不会相互攻击r行c列和c行r列是相同的,所以我们在计算的时候,先转换使 行<=列 ,这样方便计算当1行是,整行都能放完当2行时,放满一个田字,隔一个田字……大于两行时,每行都是隔着放——第奇数行从第一个开始,第偶数行从第二个开始这题以前做过简易版的,选成这个也差不多,不过以前没有思考过1行的特殊情况,也没有详细思考2行的特殊情况#include <cstdio>#include <cstring>int main(){ int r,c,n,m,ans; whil 阅读全文
posted @ 2013-01-22 20:54 Titanium 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 数学题题意很好懂,就不解释。这个代码写得不好,主要是自己想复杂了感觉,或者还没有找到最本质的规律,举个例子来说明思路23 ,456781. 处理为30 ,45670 ,另外的部分就单独计算得到是78,接着就是(45670-30)/10*45=2053802.变为3 ,4567,处理为10,4560,另外的部分单独计算为70,接着就是(4560-10)/10*45=204753.变为1,456,处理为10,450,另外的部分单独计算为66,接着就是(450-10)/10*45=19804.变为1,45,处理为10,40,另外的部分单独计算为60,接着就是(40-10)/10*45=1355.变为 阅读全文
posted @ 2013-01-22 18:32 Titanium 阅读(447) 评论(0) 推荐(0) 编辑