数学题
克莉丝汀娜
此时一名自称平民的玩家路过
展开
-
204A (数学题或者数位DP?)
求区间[l,r]内最高位数字与个位数字相等的数的个数。 数位DP?其实只需求出不超过x的满足要求的数的个数sum(x),最后答案就是sum(r)-sum(l-1)对于x,若小于10,则sum(x)=x.若x不小于10,取x的最高位a,最低位b。可以发现如果a否则结果为上式再减1(因为a……a不能取) #includeusing namespace std;#原创 2015-03-26 10:06:14 · 445 阅读 · 0 评论 -
hdu 5451 Best Solver (特征方程求通项+广义Fibonacci数列找循环节)
题目大意:y=(5+26√)1+2x。给出x和M,求这个式子的整数部分对M取模的值记A=5+2√6,B=5-2√6。则AB=1,A+B=10则A、B可以看作特征方程x^2-10x+1=0的两根。该特征方程对应的数列通项公式为a[n]=10*a[n-1]-a[n-2]。令a[0]=A^0+B^0,a[1]=A+B。#include#include#原创 2015-09-20 20:32:16 · 1110 阅读 · 0 评论 -
hdu 5417 Victor and Machine
题目:Victor有一个机器,这个机器每次开启的瞬间会弹出一个小球,之后每隔ww秒会弹出一个小球。因为机器不是很完善,该机器每开启xx秒就得关闭yy秒进行调整,在机器关闭的瞬间可能会有小球弹出,关闭之后一直到下一次开启之前都不会有小球弹出。00时刻,机器第一次开启,Victor想要知道第nn个小球弹出的时刻,你能够告诉他吗?分析:当x当x>=w时,每个周期(原创 2015-08-22 22:15:18 · 481 阅读 · 0 评论 -
hdu 5387 clock (时间夹角的计算)
已知时间h:m:s,求三个指针任意两个之间的夹角。分别求出三个指针相对于12的夹角。秒针:6*s度分针:6*(m+s/60)度时针:30*h+0.5*(m+s/60)由于结果要用分数的形式表示。因此计算的时候将上面结果乘以120,得到整数。最后再和120约分即可。#include#include#include#include#inc原创 2015-08-13 17:21:08 · 458 阅读 · 0 评论 -
uva 264 Count on Cantor
找到要求的位置在第几个斜线上,再分奇偶两种情况处理。需要注意的是,当n恰好为第k斜线末尾的那个位置时特殊处理一下就好了#includeusing namespace std;int main(){ long long a,b,k,n; while(cin>>n) { printf("TERM %lld IS ",n); f原创 2015-06-21 11:17:11 · 516 阅读 · 0 评论 -
hdu 5201 the mokey king (容斥原理)
题目大意:n个桃分给m只猴子,要求第1只猴子获得的桃子数目最多。问分配的方法数。分析:设第i个猴子分得的桃子数目为x[i](0若没有要求,则问题转为求不定方程x[1]+x[2]+x[3]+……+x[m]=n,即x[2]+x[3]+……+x[m]=n-x[1] 的非负整数解的个数。用插板法得到个数为C(n-x[1]+m-1-1,m-1-1)=C(n-x[1]+m-2,n-x[原创 2015-05-01 21:23:05 · 713 阅读 · 0 评论 -
SGU 106 The equation
这题做得很辛酸。。说多了都是泪。。题意:求方程ax+by+c=0,在x1分析:1、若a=0,b=0.考虑c,若c!=0,则无解;否则解个数即为(x2-x1+1)*(y2-y1+1)2、若a=0,b!=0.此时x可为任意值,y的值唯一,为-c/b。判断是否在区间[y1,y2]内,若在,则解的个数为(x2-x1+1),否则无解。3、若a!=0,b=0,此时y可为任意值,x的值唯一,原创 2015-03-10 09:26:45 · 469 阅读 · 0 评论 -
51nod 1264 线段相交
写得很复杂,还好一遍过了。方法是直接根据线段两点,得到直线方程,联立方程组求交点,然后看交点是否在两线段之间。注意平行、位于同一直线时的情况就可以了。肯定还有更好的方法。有时间会补上。#includeusing namespace std;#define LL long longstruct P{ double x,y;};int cmp(double x)原创 2015-04-05 22:54:08 · 79 阅读 · 0 评论 -
343A(gcd)
有阻值为1欧姆的电阻。问最少使用多少个这样的电阻通过串并联得到阻值为a/b的电阻。1、若a%b==0,则只需a/b个电阻。否则2、若a>b,设k=a/b的整数部分。则可通过串联k个电阻,使问题转化为得到阻值(a-k*b)/b,即(a%b)/b3、若a具体处理时,对于第三种情况只需交换a、b的值即可转变为第二种情况。上述过程其实就是一个辗转相除的过程。修改一下欧几里得算法原创 2015-03-26 09:54:51 · 496 阅读 · 0 评论 -
51nod 1265 四点共面
利用四点组成构成的三个向量的混合积为0来判断是否共面。#include #includetypedef struct{ double x,y,z;}P;P p[5];double mul(P a,P b){return a.x*b.x+a.y*b.y+a.z*b.z;}P del(P a,P b){ P ans; ans.x=a.x-b.x,an原创 2015-04-04 20:57:05 · 603 阅读 · 0 评论 -
51nod 1298 圆与三角形
#include#include#includeusing namespace std;struct P{ double x,y;};struct circle{ P c; double r;};int cmp(double x){ if(fabs(x)<1e-15) return 0; if(x>0) return原创 2015-04-02 22:44:51 · 999 阅读 · 0 评论 -
SGU 118 Digital Root
定义f(n)为n各位数字之和,如果n是个位数,则n的根是f(n),否则n的根为f(n)的根现在给出n个数Ai,求出A1*A2*…*AN + A1*A2*…*AN-1 + … + A1*A2 + A1 这个式子的根一个数的所有位数之和与这个数模9同余。根据同余定理即可证明:http://www.cnblogs.com/zhixingqiezhixing/archive/2012/04/03/原创 2015-03-24 19:52:07 · 408 阅读 · 0 评论 -
SGU 110 Dungeon
题意:http://hi.baidu.com/hpfdf/item/4bc71df5cc9f3dc4a835a2a9纯粹的数学题。初始一看非常麻烦,但是仔细思考后,其实并不复杂。需要注意一些细节。1、用对称式的空间直线方程(一个点,一个空间向量)来表示入射光线,然后与球的方程联立方程组,求出比例系数t1,t2,再由系数求出直线与球的交点。需要注意的是:如果表示入射光线的点为起点的话,这原创 2015-03-22 16:38:38 · 438 阅读 · 0 评论 -
sgu 107 (987654321 problem)
求n位数中,其平方最后9位数为987654321的个数。一个数的平方的后n位是由该数的后n位相乘得到,于是先打表算出n于是n=10时,最高位可以是1-9,低9位只能是那8个数。总个数为9× 8=72 n=11时,个数为9*10*8=72*10 n=k时,个数为72*(k-9)#include#define LL long longint ma原创 2015-03-10 11:27:29 · 436 阅读 · 0 评论 -
SGU 114 Telecasting station
题意:n个城市,第i个城市坐标为x[i],人口为p[i],现在要建立一个电视台,使得各个城市到电视台的距离乘以该城市人口之和最小。分析:单纯的带权中位数问题。百度百科上有相关证明。可以这样来简单考虑:若各个城市人口均为1,则问题就是求城市坐标的中位数。现在人口为p,则可以看做是有p个人口为1的城市,这样就把问题转化为求中位数。 #include #include#include原创 2015-03-20 12:29:41 · 512 阅读 · 0 评论 -
SGU 119 Magic Pairs
已知N、A0、B0,对于给定X、Y,若A0X+B0Y能被N整除,则AX+BY也能被N整除,求所有的A、B。(0 A0X+B0Y、AX+BY均能被N整除,则显然A=k*A0,B=k*B0,0#include#includeusing namespace std;struct P{ int A,B;}p[10001];bool cmp(P x,P y){ re原创 2015-03-26 13:00:55 · 587 阅读 · 0 评论 -
194B(LCM)
从n*n的一个正方形左下角开始沿着边顺时针走,每走n+1个单位画一个叉叉。当走到已经画叉的位置停止,问此时共画了多少个叉。、首先停止时走的总距离一定是4n的倍数,因为可以看做是从停止处出发又回到停止的位置,设走了p圈停止,则总距离为p*4*n,又设画了k个叉叉,则总距离又可表示为(k-1)*(n+1)。即有p*4*n=(k-1)*(n+1)。故只需求4*n与n+1的最小公倍数lcm(4n,原创 2015-03-26 09:55:59 · 431 阅读 · 0 评论 -
HDU 5459 Jesus Is Here(递推)
题目大意:字符串s1=c,s2=ffs[n]=s[n-2]+s[n-1](n>=3)给出n,求s[n]中任意两个cff之间距离之和。分析:设所求为f[n]。则必然有f[n]=f[n-2]+f[n-1]+a[n]。关键就是求新增加的部分a[n]是多少。可以发现任意两个cff之间的距离之和即任意两个c之间的距离之和(s[n]中任意两个c之间的距离都必然是>=2的原创 2015-09-22 19:23:22 · 563 阅读 · 0 评论