关于NOIP2007(PASCAL)

来源:百度知道 编辑:UC知道 时间:2024/05/14 01:15:00
三、问题求解(共 2 题,每题 5 分,共计 10 分)
1.某商店有m种不同颜色的小球且每种小球的数量都足够多。要在这m种不同颜色的小球里挑选出n个小球,设共有s种不同的选法。例如当m=2,n=3时,s等于4,也就是说,共有4种不同的选法。(分别为:【0,3】,【1,2】,【2,1】,【3,0】)。现在,令m=6,n=5,试求出选法数s=__________。

2.【问题描述】
对于任意给出的一个正整数n(n<=50000),求出具有n个不同因子的最小正整数m。(例如:但n=4时m=6,因为6有4个不同整数因子:1、2、3、6,并且是最小的有4个因子的整数。)
【算法分析】
由于具有n个不同因子的正整数一定是形如p1^i1*p2^i2*..*pk^ik,且n=(i1+1)*(i2+1)*…*(ik+1),要让p1^i1*p2^i2*..*pk^ik最小,显然p1、p2、…pk要等于前k个质数。同时i1>=i2>=…>=ik。
程序中递归过程resolve用来求出n的所有不同的因子分解式,如n=12时,其所有不同的因子分解式有:12、6*2、4*3、3*2*2四种,然后比较相应的数2^11、2^5*3、2^3*3^2、2^2*3*5的大小得到最小值为2^2*3*5=60,由于m的值可能很大,所以比较两数大小时转化为自然对数后再比较,最终结果使用了改良的高精度运算。
【程序代码】
program ex502;
const maxn=50000;
p:array [1..16] of longint=(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53);
var h,i,j,k,l,n,t,total:longint;
mins,s:real;
f,c,minc:array [1..500] of longint;
m:array [0..20000] of longint;
procedure resolve(dep,m,r:longint);
var i:longint;
begin

当然可以用C/C++开发工具了。c++是高级语言啊。完全符合标准。

没参加过,没什么经验给你这个看看吧

全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces简称NOIP)自1995年至今已举办11次。每年由中国计算机学会统一组织。 NOIP是在同一时间、不同地点以各省市为单位由特派员组织。每年的9月10—20日报名,初赛定于每年10月的最后一个星期六下午,复赛定于每年11月的最后一个星期六举行。全国统一大纲、统一试卷。初、高中或其他中等专业学校的学生可报名参加联赛。联赛分初赛和复赛两个阶段。初赛以通用和实用的计算机知识为考试内容,重在考察基础与实用的知识,以笔试为主。复赛为程序设计。参加初赛者须达到一定分数线后才有资格参加复赛。各省市、自治区都应参加联赛,参加联赛是参加NOI的必要条件。

联赛命题宗旨

全国青少年信息学奥林匹克联赛(NOIP)是一项面向全国青少年的信息学竞赛和普及活动,旨在向那些在中学阶段学习的青少年普及计算机科学知识;给学校的信息技术教育课程提供动力和新的思路;给那些有才华的学生提供相互交流和学习的机会;通过竞赛和相关的活动培养和选拔优秀的计算机人才。

竞赛的目的是为了在更高层次上推动普及。本竞赛及其相关活动遵循开放性原则,任何有条件和有兴趣的学校和个人,都可以在业余时间自愿参加。本活动不和现行的学校教学相冲突,也不列入教学计划,是课外性质的因材施教活动。参加者可为初高中学生或其他中等专业学校的青少年。

普及的内容涉及

.计算机的基本组成;

.计算机工作的基本原理;

.计算机程序设计的基本方法;

.至少一门高级程序设计语言;

.程序设计中常用的数据结构。

普及的重点是根据中学生的特点,培养学生学习计算机的兴趣,使得他们对信息技术的一些本质和核心的东西有更多的了解,提高他们创造性地运用程序设计知识解决实际问题的能力。

对学生的能力培养注重

.想象力