夏日送清凉解题报告

夏日送清凉,解题报告-by shfs

A:火星A+B

先写一个小程序得到从2开始的 25个素数放到一个数组里面备用j[25]={2,3,5.....}

输入:我的方法 是 用

i=0;

while(1)

{

scanf("%d%c",&s[i++],&c);

if(c!=',') break;

}

a=i;//长度

然后用 一个for循环倒着赋值到一个数组a1里面

for(i=0;i<a;i++)

a1[i]=s[a-1-i];

同样的方法得到 b1  

因为是倒着赋值的 所以a1[0]就是个位

然后就是用一个for循环求出 sum[]的每一位 类似于大数求和的方法

for(i=0,jin=0;i<max(a,b);i++){....}

倒着输出就好了

B:奇数阶魔方(II) 不会做    感觉有点规律 但是理不清楚

C:LC-Display  有点 复杂   没时间做了(借口)       空格的问题要处理好   其实不是很会。

D:Running 考虑到加速度为0  就能A了

E:a^b

个位数的和的个位数的和。。。。。。4次

10000的10000次 是10的40000次 一次后算足是36万  6位数 算足是54 再一次一般就是 个位数了 然后第四次后一定是个位数了

然后 就算了2的0 1 2 3 4 5 6 7  ,发现到后面是循环的换算成个位数后  就想到 其它小于10的数也是有规律的

接下来就是 a>9怎么办  然后算了 11的 0 1 2 3 4 5 6  发现结尾和2 是一样的  弱弱的又算了几组 都有这个规律

把a换算成 个位数后的 b次的个位和 和原来的a的b次和 是一样的

然后就是把 a换算成个位数 分 0 1 2 3 4 5 6 7 8 9   这样10种情况 分别找出规律  然后 就 ok了

F:Eeny Meeny Moo类似于约瑟夫问题,不过是告诉你  总的城市的个数n   并且先断1的网   最后断的是 2 要求最小的m

我没水平,果断m从2开始试上去 等到 最后留下也就是最后断的是 2  跳出循环      提交 结果超时了

没办法了  n取值范围是 3到150    在 上面加了个freopen("d:/data.txt","w",stdout); 输入改成for(n=3;n<=150;n++)

输出的换行 改成 逗号 然后运行  等一下下 就有   请按任意键继续。。。  关掉 然后在d盘下找到了data的文件 里面就是 没一个n的结果  放到一个数组里面  对每个n直接取出来就是了,方法烂爆了。据说求最后留下的又一个公式的,用了然后不会超时。

G:Light Bulb我觉得是数学问题,weiben说二分查找,没懂weiben大神的意思(我太水)。

设墙上的高度为a,总长为l;利用相似三角形得到 (H-a)/D=(h-a)/(l-a)  

可以化出 l=D(h-a)/(H-a)+a

通分得到 l=(-a*a+(H-D)a+Dh)/(H-a)

就是求l的最大值 

最大值 也就是 l的导数等于0的时候的 a能使l取得最大值(无限感谢 zxl 童鞋这里的提示)

2边求导  可以得到 0=(a*a-2Ha+H*H+Dh-DH)/((H-a)*(H-a)) 因为左边是0,分母约掉

得到 a*a-2Ha+H*H+Dh-DH=0  这样用求根公式得到a=H-sqrt(DH-Dh),因为a必定小于H,所以舍弃 H+sqrt(DH-Dh),

然后 判断 如果 a>=h 就直接输出h  如果a<=0 就是墙上的长度为0 输出 D*h/H  其他情况代入l的公式求解

zxl童鞋用  (H-a)/D=(h-a)/b  (b是地面上的长度)   然后根据 (a+b)的导数为0 用微分方程求解 a (我高数没学好,不会。)


为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.