NOIP(第12届)--2006--普及组--复赛--试题与答案(NA12)

2022-07-07 已有0人阅读 作者: IT航班

中小学编程红宝书.zip


关键词:

北京中关村;海淀黄庄;北京大学;清华大学。少儿编程;中小学编程;信息学竞赛;计算机竞赛;NOIP;NOIP竞赛;CSP-J/S竞赛;NOI竞赛。北京中学;东坝。

      2006年、普及组、复赛,第12届。

面向6-18岁中小学生,做最专业的中小学编程教育。


解析与答案:

1题:明明的随机数

1、说明

A、试题类型:

       基本数学问题。

 

B、算法模型:

       stl应用。

 

C、试题说明:   

用stl,vector排序然后去重,包括sort,unique。以及vector自己的erase。

 

2、代码

#include<iostream>

#include<vector>

#include<algorithm>

using namespace std;

 

 

int main()

{

    unsigned int n;

    cin>>n;

    if(0==n)

        return 0;

 

    vector<int> iDS;

    int t;

 

    for(int i=0;i<n;i++)

       {

        cin>>t;

        iDS.push_back(t);

    }

 

    vector<int>::iterator iter;

    sort(iDS.begin(),iDS.end());

 

    iter = unique(iDS.begin(),iDS.end());

 

    if(iter!=iDS.end())

        iDS.erase(iter,iDS.end());

   

    cout<<iDS.size()<<endl;

 

    for(iter=iDS.begin();iter!=iDS.end();iter++)

        cout<<(*iter)<<" ";

}

 

 

 

 

2题:开心的金明

1、说明

A、试题类型:

       生活推导。

 

B、算法模型:

       背包。

 

C、试题说明:

       钱是体积,钱×重要度是价格。

 

2、代码

#include<iostream>

using namespace std;

 

#define N 30004

#define M 30

 

long long dp[N]={0};

long long V[M]={0};

long long W[M]={0};

int n=0,m=0;

int main()

{

       cin>>n>>m;

       for(int i=1;i<=m;i++)

       {

              cin>>V[i]>>W[i];

              W[i]*=V[i];

       }

      

       for(int i=1;i<=m;i++)

       {

              for(int j=n;j>=V[i];j--)

              {

                     dp[j]=max(dp[j],dp[j-V[i]]+W[i]);

              }

       }

       cout<<dp[n]<<endl;

       return 0;

}

   

 

 

 

 

3题:Jam的计数法

1、说明

A、试题类型:

       无。

 

B、算法模型:

       无。

 

C、试题说明:   

每一次找到第一个可以向后移的字母,然后将它向后移一位,再把它后面的原来有的几个都一次堆在后面就可以了。

 

没有找到可以向后移的,直接跳出循环。

 

 

2、代码

#include<bits/stdc++.h>

using namespace std;

 

int s,t,w;

string a;

int f[26];

 

int main()

{

    scanf("%d%d%d",&s,&t,&w);

    s--;t--;

 

    cin>>a;

 

    int len=a.length();

    for(int i=0;i<len;i++)

              f[a[i]-'a']=1;

 

    for(int l=1;l<=5;l++)

       {

        int k=0,i;

        for(i=t;f[i];i--,k++)

                     f[i]=0;//就是找到第一个空格

 

        if(k==w)

                     break;//全部都删掉了

 

        for(;!f[i];i--);//再找到前面一个字母

 

        k++;

        f[i++]=0;//删掉

 

        for(int j=i;j<i+k;j++)

                     f[j]=1;//直接堆在这里

 

        for(int j=s;j<=t;j++)

            if(f[j])

                printf("%c",j+'a');//输出

                     printf("\n");

    }

    return 0;

}

 

 

4题:数列

1、说明

A、试题类型:

       数学问题。

 

B、算法模型:

       递归。

 

C、试题说明:

       无。

 

 

 

2、代码

#include <iostream>

#include <cmath>

using namespace std;

 

/**

* 判断 x 是不是 2 的 k(k为正整数)次方

*/

bool judgePow2(int x)

{

       int y = log(x) / log(2);

       int result = pow(2,y);

       return result == x;

}

 

/**

* 递归

*/

int add(int n, int k)

{

       if(n==1)

              return 1;

 

       if(n==2)

              return k;

 

       if(judgePow2(n) == true)

       {

              int p = log(n)/log(2);

              int result = pow(k,p);

              return result;

       }

 

       int temp = log(n)/log(2);

       int base = pow(k,temp);

       int temp2 = pow(2,temp);

       return base + add(n-temp2,k);

}

 

int main()

{

       int m,n;

       cin>>m;

       cin>>n;

       cout<<add(n,m)<<endl;

       return 0;

}

   

 

 





IT航班提供:课程视频、、课程书籍、竞赛辅导、少儿编程指导、课程采购、加盟、少儿编程资料、少儿编程课程、保送生、特长生、加分、中小学计算机教育、中小学信息学、竞赛、中小学信息学课程、人工智能、中小学编程加盟、少儿编程加盟、品牌加盟、技术加盟、技术指导、课程加盟、师资培训、中小学编程教辅资料、中小学编程教师培训、少儿编程教学书籍、少儿编程视频、教学书籍、教师培训、教学视频、CSP-J/S、中小学信息学课程服务、竞赛指导、课程提供、国内外计算机中小学计算机竞赛、信息学竞赛、信息学课程提供商、信息学奥林匹克。

      

IT航班支持----中小学编程比赛汇总:

 

第一部分:国内比赛(IT航班支持)   

1、软件能力认证(CSP-JS) 

2、全国青少年信息学奥林匹克联赛(NOIP)    

3、全国青少年信息学奥林匹克竞赛(NOI)

4、中国青少年………………………  

5、………………………创新挑战赛  

6、全国青少年………………………  

7、………………………

8、 恩欧希教育信息化发明创新奖  

9、世界机器人大赛(WRC) 

10、………………………大赛    

11、少………………………智能教育成果展示大赛 

12、“明天小小科学家”奖励活动

13、………………………    

14、………………………    

15、国际信息学……………………… 

16、………………………    

 

第二部分:国际比赛(IT航班支持)   

17、………………………    

18、国际………………………    

19、………………………

20、美国信息学……………………… 

21、加拿大……………………… 

22、官方邀请赛 (CCO)     

23、国际计算思维………………………    

24、美国计算机……………………… 

25、澳大利亚………………………    

 

第三部分:企业比赛(IT航班支持)   

26、微软MTA    

27、………………………挑战赛 

28、………………………科学奖 

29、………………………学奖    

30、………………………创新挑战赛 

31、………………………挑战赛 

32、………………………芯计算机表演赛 

33、………………………大赛    

 

第四部分:Scratch相关竞赛(IT航班支持)    

34、全国中小学生电脑制作大赛     

35、………………………    

36、………………………    

37、………………………    

 

第五部分:其它(IT航班支持)   

38、NOI夏令营  

39、NOI冬令营(NOIWC)  

40、全国青少年……………………… 

41、国际青少年………………………

 

联系方式:

A、官方网址:

http://www.itflight.net


B、微信公众号:

添加微信,获取资料。

image.png

 



关注公众号,获取动态。

image.png