数学思维题+技巧题

*hdoj 5620 KK's Steel

简单到只要看出是斐波那契数列就能ac,可是我看不出来鸭?

*lightoj 1213 - Fantasy of a Summation

找规律+快速幂,还要使劲取余防止溢出。难点:推公式+溢出

*lightoj 1282 - Leading and Trailing

输出n^k的前三位和后三位,后三位可以用快速幂取1000的模,直接得到答案。

前三位的取值有一定的技巧,这里先假设:n^k=a.bc...×10^m,即用科学计数法表示,因为只要前三位,那么接下来就忽略掉后面的位。

对于上式两边同时取lg,k*lgn=lga.bc+m 这里m一定为一个整数,a.bc在科学计数法中小于10,那么lga.bc一定为一个小于00的小数。那么lga.bc为 k*lgn的小数部分,m为k*lgn的整数部分。

然后abc=10^lga.bc×100,即为所求的前三位数。(lga.bc=x,化简就好)

*Codeforces 632D Longest Subsequence

求找一个最长的子序列使他们的元素的最小公倍数<=m,只要长度最大就行,不要求最小公倍数也最大。

思路:我们可以枚举1~m中的每一个数作为最小公倍数,然后数出n个数中多少个数是它的因子,然后取最大就行了,这里要把a[i]的个数记下来。

*Codeforces 628B New Skateboard

技巧:能被4整除的数字,末尾两位一定是4的倍数

*lightoj 1336 - Sigma Function

规律发现,完全平方数x以及2*x的因子和是奇数。(奇数个奇数相加才是奇数,所以必须要有奇数个因子,只有完全平方数的因子数目才是奇数个)。

*CodeForces 659 A. Round House

正向走取余,反向走判断走的步数是否大于长度,大于的话就先减去这一部分,然后假装从n开始走b-a步,然后再对它取余就可以得到答案啦,水题一枚~

*Codeforces 650A Watchmen

 首先我们要知道当两点的横纵坐标至少有一个相等时,才会满足|xi-xj|+|yi-yj| == sqrt( (xi-xj)^2 + (yi-yj)^2 ) 。

所以二分找到x相等或者y相等的点有多少个,然后去掉重复的点的个数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值