• NOIP水题合集[3/未完待续]


    
    

    NOIP2008pj传球游戏

    题目描述

    上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。

    游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师在此吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。

    聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有三个同学1号、2号、3号,并假设小蛮为1号,球传了3次回到小蛮手里的方式有1->2->3->1和1->3->2->1,共2种。

    输入输出格式

    输入格式:

    输入文件ball.in共一行,有两个用空格隔开的整数n,m(3<=n<=30,1<=m<=30)。

    输出格式:

    输出文件ball.out共一行,有一个整数,表示符合题意的方法数 

    输入输出样例

    输入样例#1:
    3 3
    输出样例#1:
    2

    说明

    40%的数据满足:3<=n<=30,1<=m<=20

    100%的数据满足:3<=n<=30,1<=m<=30

    2008普及组第三题

    -----------------------------------------
    环状递推,f[i][j]表示第i次到第j个人手里,人从0开始编号
    #include<iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    const int N=35;
    int n,m,f[N][N];
    int dp(int i,int j){//printf("%d %d
    ",i,j);
        int &ans=f[i][j];
        if(ans!=-1) return ans;
        ans=dp(i-1,(j-1+n)%n)+dp(i-1,(j+1)%n);
        //printf("ans %d
    ",ans);
        return ans;
    }
    int main(){
        cin>>n>>m;
        memset(f,-1,sizeof(f));
        f[0][0]=1;
        for(int j=1;j<n;j++) f[0][j]=0;
        cout<<dp(m,0);
    }
    
    
    

    NOIP2007统计数字

    题目描述

    某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

    输入输出格式

    输入格式:

    输入文件count.in包含n+1行;

    第一行是整数n,表示自然数的个数;

    第2~n+1每行一个自然数。

    输出格式:

    输出文件count.out包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

    输入输出样例

    输入样例#1:
    8
    2
    4
    2
    4
    5
    100
    2
    100
    
    
    输出样例#1:
    2 3
    4 2
    5 1
    100 2
    

    说明

    40%的数据满足:1<=n<=1000

    80%的数据满足:1<=n<=50000

    100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*109)

    NOIP 2007 提高第一题

    ----------------------------------------------------------------------

    map轻松水果

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<map>
    using namespace std;
    inline int read(){
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    int n,a;
    map<int,int> mp;
    int main(){
        n=read();
        for(int i=1;i<=n;i++){
            a=read();
            mp[a]++;
        }
        map<int,int>::iterator it;
        for(it=mp.begin();it!=mp.end();it++){
            printf("%d %d
    ",it->first,it->second);
        }
    }

    NOIP2013转圈游戏

    题目描述

    n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从0 到 n-1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n − m号位置上的小伙伴走到第 0 号位置,第n-m+1 号位置上的小伙伴走到第 1 号位置,……,第 n-1 号位置上的小伙伴顺时针走到第m-1 号位置。

    现在,一共进行了 10^k轮,请问 x 号小伙伴最后走到了第几号位置。

    输入输出格式

    输入格式:

    输入文件名为 circle.in。

    输入共 1 行,包含 4 个整数 n、m、k、x,每两个整数之间用一个空格隔开。

    输出格式:

    输出文件名为 circle.out。

    输出共 1 行,包含 1 个整数,表示 10

    k 轮后 x 号小伙伴所在的位置编号。

    输入输出样例

    输入样例#1:
    10 3 4 5
    
    输出样例#1:
    5
    

    说明

    对于 30%的数据,0 < k < 7;

    对于 80%的数据,0 < k < 10^7;

    对于 100%的数据,1 <n < 1,000,000,0 < m < n,1 ≤ x ≤ n,0 < k < 10^9


    裸取模快速幂 

    //
    //  main.cpp
    //  noip2013d2t1
    //
    //  Created by abc on 16/8/2.
    //  Copyright © 2016年 abc. All rights reserved.
    //
    
    #include <iostream>
    typedef long long ll;
    using namespace std;
    ll n,m,k,x;
    
    ll powMod(ll a,ll b){
        ll ans=1;
        for(;b;b>>=1,a=(a*a)%n)
            if(b&1) ans=(ans*a)%n;
        return ans;
    }
    
    int main(int argc, const char * argv[]) {
        cin>>n>>m>>k>>x;
        cout<<(powMod(10,k)*m%n+x)%n;
    
        return 0;
    }


  • 相关阅读:
    实现FTP断点续传
    系统软件自动部署实现方案
    QT实现多语言切换
    QTreeWidget实现动态加载本地文件系统
    QuaZip实现多文件打包
    FileZilla命令行实现文件上传以及CreateProcess实现静默调用
    ctkPlugin插件系统实现项目插件式开发
    Windows与Linux下文件操作监控的实现
    QT皮肤系统的动态切换
    OpenGL 学习
  • 原文地址:https://www.cnblogs.com/candy99/p/5796425.html
Copyright © 2020-2023  润新知