题解 P2433 【【深基1-2】小学数学 N 合一】

· · 题解

总之,这题可以说是洛谷入门赛史上最难,最坑,最不容易AC的简单题了,反正在考场上本人调了一个小时才调出来,既然如此,发篇题解吐槽一下吧!

Problem 1

这个没啥好说的,直接:

cout << "I love Luogu!";

Problem 2

这个也是比较简单的问题,并且题目已经给你答案了,就不做过多注解了

cout << 2 + 4 << " " << 10 - 2 - 4;

Problem 3

这个也是小学数学:

14\div 3=4\cdots 2

(既然是小学数学,那就按照小学的格式写吧)

然后就迎刃而解了,分别是3,12,2

Problem 4

这个题也不难,但是有一个超!级!大!坑!点!!!!

保留6位有效数字

6位有效数字

\huge \text{有效数字!!!!!}

有效数字包括整数部分和小数部分

\huge \text{包括整数部分} 500\div 3=166.6666666\cdots

前面的166也属于有效数字的一部分!

所以这个题\color{red}\text{不是保留6位小数}\color{green}\text{而是3位小数}!!!

众所周知,printf是比cout快的,而且cout保留小数还要用iomanip里又臭又长的控制符,所以我们在这里就用cout啦!

cout<<fixed<<setprecision(3)<<1.0*500/3;

Problem 5

第五题是一个典型的小学奥数的大坑——行程问题

至于行程问题到底要注意什么,为什么不问问神奇海螺呢?

神奇海螺告诉我们:

\text{相遇问题:路程和}=\text{时间}\times\text{速度和} \text{火车过桥问题:总路程}=\text{车长}+\text{桥长}

所以根据神奇海螺的提示,这题就是一个相遇问题,而路程和就是两辆车的长度之和

所以套用相遇问题的公式,就珂以直接得出答案啦!

cout<<(220+260)/(20+12);

Problem 6

到目前为止都是小学数学,但是第六题开始,出题人就逐渐忘记了标题……

这个题如果你是小学生的话,没准还真做不出来(当然,热爱提前学习的小学生除外)——因为这涉及到一个初中数学中一个非常重要的几何问题——勾股定理

勾股定理:在一个直角三角形中,两直角边的平方和等于斜边的平方

这样的话,答案就应该等于\sqrt{6^2+9^2}

cout<<sqrt(6*6+9*9);

Problem 7

第7题这还算是是小学数学,一年级的加减法即可

答案就是110,90,0

Problem 8

这个题的话,前两问还算是小学数学,但是在后面的话,球体的体积公式可能就有人不知道了

\text{圆的周长:}C=2\pi r \text{圆的面积:}S=\pi r^2 \text{球的体积:}V=\frac{4}{3}\pi r^3

其它要注意的就是3/4一定要强转成double!至于怎么转,乘1.0就好啦!

cout<<pi*10<<endl<<pi*25<<endl<<4/3*pi*125<<endl;

当然像圆周率\pi这种东西还是定义一下好:

const double pi=3.141593;

Problem 9

如果你是入门赛的忠实粉丝的话,你会发现这个题是上次- P5743 【深基7.习8】猴子吃桃的弱化版

这个题又直接指向小学奥数的另一类问题:用倒推法还原问题

还原问题,就是已知最后的状态,倒推出一开始的状态

怎么倒推呢,总结成一句话:拿了我的给我送回来,吃了我的给我吐出来

也就是说,我们可以从最后的一个桃子出发,由于是吃了一半,又吃了一个桃子,所以我们倒推的话就是先把那一个桃子加回去,再把桃子变成2倍,也就是加1,乘2

cout<<((((1+1)*2)+1*2)+1)*2;

当然你也可以写个循环,甚至用递归……总之最后可以得到答案22

Problem 10

这个题是我要重点讲的——这个题算是小学奥数最难也不为过了。没错,它就是臭名昭著,令人闻风丧胆的——牛吃草问题

牧场上有一片青草,每天都生长得一样快。这片青草供给10头牛吃,可以吃22天,或者供给16头牛吃,可以吃10天,期间一直有草生长。如果供给25头牛吃,可以吃多少天?

看出相似度来了吧?说句题外话,这题是由牛顿大爷提出的,所以又叫牛顿问题

那这种问题究竟要怎么解呢???让我们慢慢来:

  1. 首先,我们设每头牛(评测机)一天能吃一份艹(评测任务)

  2. 求出每天增长的艹的数量

首先,第一组例子就是8头牛30天吃了30\times8=240份艹,第二组例子就是10头牛6天吃了6\times10=60份艹

240份艹,是原有的艹+30天增长的艹

60份艹,是原有的艹+6天增长的艹

也就是说:在30-6=24天里,增长了240-60=180份艹

所以说每天就增加了180\div24=7.5份艹

  1. 求出原有的艹的数量

这个就简单些了:根据刚才的式子,我们可以求出来:

原有的艹=总共的艹-增长的艹

所以从第一个式子看出:原有的艹=总共的240份艹-增长的30\times7.5=225份艹=15份艹

3.通过最后的条件,最终解决问题

要求的东西,翻译成“牛吃草语言”就是:

几头牛才能吃10天的艹?

首先,这10天的艹要分成2部分:原有的15份艹和每天增长的7.5份艹

对应的,这些牛也要分成两拨去完成吃艹的任务

首先,这增长的7.5份艹,要派7.5头牛天天吃,一直吃(7.5头?……不要在意这些细节,反正最后算出来是个整数)

那原有的15份艹,要10天吃完,需要派15\div10=1.5头牛

所以一共就是7.5+1.5=9头牛,完美!

当然,如果你的数学有初中水平的话,你还可以列一个二元一次方程组,设原有x份艹,每天增长y份艹,可以得到一下方程组:

x+30y=30\times8 x+6y=6\times10

(不会用\LaTeX打方程组……哭唧唧)

然后可以解得

x=15 y=7.5

和上面的小学生方法是完全一样的!

update:

后来看了其它小伙伴们的题解,发现这题有个神奇的做法——

肉眼可见,评测机越多,用时越短,既然评测时间6<10<30,所以评测机数量10>x>8,评测机你总不可能开半台吧,所以答案一定是9

啊……我辛辛苦苦写的;牛吃草……白做了……

Problem 11

这个又双叒叕是行程问题,这次是追及问题!,公式是:

\text{路程差}\div\text{速度差}=\text{追及时间}

很好理解!还可以类比刚才的相遇问题一起记!

那就简单啦,记得转成double

cout<<1.0*100/3;

Problem 12

出题人都已经偏题偏到开普勒-452b行星了,这题不考数学,改考英语了!

有点英语知识的都知道:答案分别是13R

当然你也可以利用int类型和char类型的转换做题:

cout<<(int)('M'-'A')+1<<endl<<(char)(18+'A'-1);

Problem 13

这个题算是Problem 8的升级版,也算是小学五年级应用题的思想,利用体积相同转化问题,再来复习一下公式:

\text{球的体积:}V=\frac{4}{3}\pi r^3 \text{正方体的体积:}V=a^3

但是问题来了,根据体积求边长需要三次根号,但是cmath里面没有三次根号的函数啊,不过没关系:

a^{\frac{m}n}=^n\sqrt{a^m}

所以嘛,^3\sqrt{V}=V^\frac{1}{3},用pow函数就可以解决!

(话说分数指数幂是高中数学内容哎,你确定是小学数学???)

cout<<(int)(pow(4/3*pi*(4*4*4+10*10*10),1.0*1/3));

Problem 14

天哪!现在小学都学一元二次方程了吗?!

没错,这题确实是一道经典的一元二次方程的应用题——薄利多销问题,利润减小,销量随之增大,是典型的二次方程!

那这题我们就设降价x元,这样的话售价110+x元,报名10-x人,总价=单价\times数量,列出方程——

(110+x)(10-x)=3500 1100+10x-110x-x^2=3500 -x^2+100x-2400=0

解方程的话,我们用因式分解法吧!

(x-40)(x-60)=0 x_1=40,x_2=60

也就是说售价分别为70元和50元,取较小的50

但问题来了,如果你不会解一元二次方程咋办呢?

\text{然而我们可以枚举啊!} \text{——vectorwyx}

历经九九八十一难,我们终于可以A掉这个题了!

(耗时两小时,制作不易,希望大家喜欢)

The end~