ACM入门教程-数学问题.ppt
《ACM入门教程-数学问题.ppt》由会员分享,可在线阅读,更多相关《ACM入门教程-数学问题.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ACM程序设计竞赛程序设计竞赛入门入门浙江工业大学浙江工业大学田贤忠田贤忠2023/1/1612023/1/162第二讲第二讲数学问题2023/1/163引例:引例:本校OJ 1207(相似题)杭电杭电1018,求求n!的位数!的位数 Inmanyapplicationsverylargeintegersnumbersarerequired.Someoftheseapplicationsareusingkeysforsecuretransmissionofdata,encryption,etc.Inthisproblemyouaregivenanumber,youhavetodetermine
2、thenumberofdigitsinthefactorialofthenumber.2023/1/164InputInputconsistsofseverallinesofintegernumbers.Thefirstlinecontainsanintegern,whichisthenumberofcasestobetested,followedbynlines,oneinteger1m107oneachlineOutputTheoutputcontainsthenumberofdigitsinthefactorialoftheintegersappearingintheinput.Samp
3、le Input2 10 20Sample Output7 192023/1/165如何求位数?算出阶乘,循环求位数?阶乘怎么存储?一定要算出阶乘吗?n!的位数:(int)log10(n!)+1(int)(log10(1)+log10(2)+log10(3)+log10(n)+12023/1/166代码怎么写?超时问题怎么解决?能不能降低计算量?有没有更简便的公式?2023/1/167如果不知道高效的计算公式?(int)(log10(1)+log10(2)+log10(3)+log10(n)对于每个输入的数都要按上述公式计算如何避免重复计算?先算小数的位数,在此基础上再算大数。(1)每次找最小
4、值?需要存储数据和位数的计算 (2)先把算出的log10存储?2023/1/168计算机程序设计艺术计算机程序设计艺术中给出了另一个公式中给出了另一个公式 n!=sqrt(2*n)*(n/e)n)*(1+1/(12*n)+1/(288*n*n)+O(1/n3)=acos(-1)e=exp(1)两边对两边对10取对数取对数 忽略忽略 log10(1+1/(12*n)+1/(288*n*n)+O(1/n3)log10(1)=0 得到公式得到公式 log10(n!)=log10(sqrt(2*pi*n)+n*log10(n/e)2023/1/169数学问题的特点:题意容易理解;题意容易理解;数学关联
5、性一般比较大;数学关联性一般比较大;语言的关联性相对较小;但有时需要相关语言的关联性相对较小;但有时需要相关策略来规避过高的复杂度。策略来规避过高的复杂度。要注意复杂度问题;要注意复杂度问题;适合适合ACM/ICPC入门练习。入门练习。每次竞赛一般会有每次竞赛一般会有1-2个数学问题个数学问题。2023/1/1610常用单词:1、integer 整数(不一定就是32位的)2、positive 正的3、negative (adj)负的;(n)负数4、factorial (n)阶乘;(adj)因子的,阶乘的5、digital (n)数字;(adj)数字的6、multiple 倍数7、multipl
6、ication 乘法运算2023/1/1611常用单词:(图形相关)1、vertex(vertices)顶点2、polygon 多边形3、convex 凸的4、concave 凹的5、segment (线)段(n);分割(v)2023/1/1612数学问题数学问题(分类分析)(分类分析)2023/1/1613第一类简单问题HDOJ1004:LettheBalloonRiseHDOJ1004:LettheBalloonRise题目描述:题目描述:输入:输入:第一行输入气球的个数第一行输入气球的个数n,以下,以下n行输入行输入n个气球的颜色,个气球的颜色,n为为0时结束。时结束。输出:输出:哪种颜
7、色的气球数目最多哪种颜色的气球数目最多2023/1/1615HDOJ1004:LettheBalloonRiseSample Input5 green red blue red red 3 pink orange pink 0Sample output red pink2023/1/16162023/1/1617题目评述:1.一个让你看到后兴奋的题目2.只要懂点C或者C+,就可解决该问题。2023/1/16181004题目分析:该题算法思想比较简单,就是对输入的字符串进行比较和统计。值得注意的一点是:如果用C语言来写,要注意可能会把第一个数字后的“回车符”误认为是第一个串,字符串的比较也要用函
8、数和循环语句。而C+则在处理字符串方面较为方便。2023/1/1619ElevatorProblem DescriptionThehighestbuildinginourcityhasonlyoneelevator.ArequestlistismadeupwithNpositivenumbers.Thenumbersdenoteatwhichfloorstheelevatorwillstop,inspecifiedorder.Itcosts6secondstomovetheelevatoruponefloor,and4secondstomovedownonefloor.Theelevatorw
9、illstayfor5secondsateachstop.Foragivenrequestlist,youaretocomputethetotaltimespenttofulfilltherequestsonthelist.Theelevatorisonthe0thflooratthebeginninganddoesnothavetoreturntothegroundfloorwhentherequestsarefulfilled.2023/1/1620InputTherearemultipletestcases.EachcasecontainsapositiveintegerN,follow
10、edbyNpositivenumbers.Allthenumbersintheinputarelessthan100.AtestcasewithN=0denotestheendofinput.Thistestcaseisnottobeprocessed.OutputPrintthetotaltimeonasinglelineforeachtestcase.Sample Input1 2 3 2 3 1 0Sample Output17 41const int UP=6;const int DOWN=4;const int STOP=5;int nCase,floor;while(cin nCa
11、se&nCase)int sec=0,tmp;cin floor;tmp=floor;sec=floor*UP+STOP;/由由0层出发到第一个目标层所有时间层出发到第一个目标层所有时间 for(int i=1;i floor;if(floor tmp)/如果电梯往上如果电梯往上 sec+=(floor-tmp)*UP+STOP;else /电梯往下电梯往下 sec+=(tmp-floor)*DOWN+STOP;tmp=floor;/记录本次目标层,方便下一个目标层的计算记录本次目标层,方便下一个目标层的计算 cout sec endl;2023/1/16212023/1/1622第二类 大数
12、问题2023/1/1623一、大数加法 HDU1002:A+B Problem IIInput The first line of the input contains an integer T(1=T=20)which means the number of test cases.Then T lines follow,each line consists of two positive integers,A and B.Notice that the integers are very large,that means you should not process them by usin
13、g 32-bit integer.You may assume the length of each integer will not exceed 1000.2023/1/1624分析:准确的说,此问题不算是数学问题;由于数据特别大,用一般的整数类型不能存储,怎么办?字符串存储?怎么处理?按位加,进位?2023/1/16251 2 3 5 6 7 8 02 35 6 7 8 0.3 5 6 0(1)字符如何相加?(从最低位开始相加)(2)不等长怎么办?(3)发生进位怎么办?本校本校OJ1217大数乘大数乘 时空限定时空限定 l5S,32M基本描述基本描述l给定一些大数,请计算其积。给定一些大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ACM 入门教程 数学 问题
限制150内