发现我的题目的数学题做的很不好,必须努力努力下了。下面都是hdu上一些比较简单的数学题,好好做一下,然后学下数论的知识!

1006

// ---- 设当前的时间为 H:M:S, 其中 0 <= H < 12, 0 <= M < 60, 0 <= S < 60, H,M皆为整数, S为实数
// ---- 于是时针、分针、秒针相对于时刻 0:0:0 的转角分别为
// ---- A(H) = 30H + M/2 + S/120;
// ---- A(M) = 6M + S/10;
// ---- A(S) = 6S;
求解下式:
D <= | A(H) - A(M) | <= 360-D;
D <= | A(H) - A(S) | <= 360-D;
D <= | A(M) - A(S) | <= 360-D;
本来想枚举每秒的情况,但是角度并不是以秒为最小单位,这样精度会丢失。正确解法是解方程,但我不会!

1060

求N^N中的第一个数字。

m=n^n;两边同取对数,得到,log10(m)=n*log10(n);再得到,m=10^(n*log10(n));

m=10^(整数+小数) = 10^整数 * 10^小数。

然后,对于10的整数次幂,第一位是1,所以,第一位数取决于n*log10(n)的小数部分

 

1066

求N!中最后一个非0的数字。

压力好大的一题,看过他们的做法,很详细,当我不是很看的懂,套过吉林模板过的。有空回来再看看!

1099

就是求n/1+n/2+n/3+...+n/n。接下来就是模拟题。

本来想如果仅仅只是分数,注意整数后面的空格不要输出,发现数据里没有这种情况。

用long long类型。

1100

1110

1112 

1115

多边形求重心

1124

虽然1066还是不会做,但这题还是没问题的,产生0的情况就是2*5,而2的个数绝对多余5,所以就是计算5的个数就行。

因为25 = 5 * 5,是两个5.125 = 5 * 5 * 5。所以要递归求解

 

1132

 

1141

求n,是n!< 2^bit。两边求log就是log(n!) / log(2) < bit。就是log(n)*log(n-1)*...*log(1)/log(2) < bit。

简单题 

1143

推导题,dp[i] = 2 * sum + dp[i-2];

sum = SUM(dp[j]) (0<=j<=i-1);

 

1152

1155(物理题)

1163

简单题。两个数相乘后各位数的和等于先两个数各位数的和相加后再相乘。

digit(a * b)= digit(a) * digit(b)。

 

1178

水题,sum(i) = i*(i+1)*(i+2) / 6。两边求log10就行了

 

1214

推导题,我是假设第i个数是建立在前(i-1)个数的基础上的。以i为轴心把前(i-1)个数分成相差最小的两部分,然后转换,把小的那一部分经过i,那么就会多出(i-1)/2次来。

所以dp[i] = dp[i-1] + (i-1) / 2;

 

1221

不知道他的相切是什么意思,包不包括整个圆在矩形内。我的想法是矩形的上边对圆的正下点,下边对应正上点,左边对应圆的正右点,右边对应正左点,如果有这种情况发生就是相切。但一直错! 


1223

公式推了好几个,但都不对,不能处理重复的情况。

只知道是大数 


1261

1267

1273

简单题,可走次数 = 总条数 / 每次走所需边数。最后化简就是(n-1) / 2. 


1291

1292

递推题,dp[i][j] = dp[i-1][j-1] + dp[i-1][j] * j。

其中dp[i][j]表示数i被分成j组的方案数。 


1294

1313

1492

简单题,因为这个数只是由2,3,5,7组成,可以写成n = 2^x1 * 3^x2 * 5^x3 * 7^x4。

又因为2,3,5,7各个数相乘的结果不会出现相同的情况,所以可组成的数sum = (x1+1)*(x2+1)*(x3+1)*(x4+1)。

1593

一开始写会下意思的认为R/v1 < pi*R/v2就行,这是认为一开始0068就全力往elnil反方向岸上跑,然后elnil要跑半圈,0068要跑一个半径的长度。但实际上0068一开始可以不停的跟elnil兜圈子,在兜圈子的同时不停的靠近岸边(一直保持elnil要跑半圈的架势),直到临界点0068再全力往岸上跑。什么是临界点呢,就是0068在跑的同心圆的半径是r,当pi*R / v2 == pi*r / v1相同时就是临界点。

1701

Acmer占 students  of  HDU的比例是处在两者之间就可以了!

这题不是很能理解它的意思。

ps:(int)p*i/100 不等于 (int)(p*i/100)。前面只对p取整了。

1722

1798

1999

用筛选法找出1000000以内的数(该数符合质因子的和小于1000)。则该数的质因子和不是不可摸数。

2108

题目描述:
按逆时针顺序输入n个点的坐标,判断这N个点组成的多边形是不是凸多边形。
分析:
将输入的点连接起来。
对p1,p2,p3三个点,我们设向量a=p2-p1,向量b=p3-p2
向量的叉积 a×b = x1×y2 - x2×y1
若a×b>0则b在a的逆方向
若a×b<0则b在a的顺方向
若a×b=0则b与a共线

2303

给你一个小于10^100的数K,把它分解成两个素数的乘积,看这两个数是否小于数L。

悲剧在这题K很大,怎么分解为两个素数的乘积

2438

几何题,小车转弯。

2529

悲剧的一题,高中知识全部忘光了。

设角度为a,水平分速度Vx = v * cosa,竖直分速度为Vy = v * sina,大家都知道水平速度是不变的,所以球的飞行时间就是t = l / Vx.

时间确定后,只要算出竖直方向之速度在经历时间t后达到的高度即可(因为你必须首先得到篮筐),这样加上起始高度就是最大高度.

因为距离公式是S = V0*t + (1/2)*g*t*t。所以这题最后高度H = h + Vy*t + (1/2)*g*t*t。把t = l / v*cosa代入公式。

得:H = h + tana*l + g*l*l/(2*v*v*cosa*cosa)

又因为1 / (cosa * cosa )  == 1 + tana * tana

得:H = h + tana*l +( g*l*l / (2*v*v)) *tana * tana

下面就是对tana*l +( g*l*l / (2*v*v)) *tana * tana这个一元二次方程求最大值了

得:有最高高度是 tana = v*v /(g*l),代入得解。

ps:距离公式,三角函数转换公式都忘光了。

2554

天啊。我猜了出来,算1~n的各位数的总和,如果是奇数,不行;偶数则可以。

2601

i*j+i+j <= n

则:(i+1)*(j+1) <= n+1。所以就是(n+1) % i == 0有解,i的范围你懂的 

ps:n是大于int范围的,必须用long long 


2603

2701

数论
1164

1211

1215

1222

1286

1299