zoukankan      html  css  js  c++  java
  • FZU 1876 JinYueTuan(排列组合)

    Description

    Let’s have a look at the picture below

    Now, do you know what it’s? Yeah , O(∩_∩)O~ , It is the game called JinYueTuan. chjing plays it very often years ago. I promise you would like it too. Now I want to introduce it to you. Maybe you have already known it clearly. Just be patient.

    JinYueTuan is a famous online game which has been in vogue for a long time. Since it is so exciting a game that a large number of players put themselves in it . Only seven keys on the keyboard will be used in games, each key are assigned to one of the seven sound tracks. During the game, a series of notes may fall in each sound track irregularly. When notes fall down in one sound track, player should press the assigned key at once. If so, then got a “Cool”, or get “Miss” otherwise. You should press the key when the note is almost disappeared at the bottom of the window. If you press the key too early, you will miss the note. There will be a song or some kind of music played when you are playing the game. So you will feel you are a pianist. As you pass a low level .the notes will be more and the speed the notes fall will be very high. And the game will be more exciting .There are a lot of cows who play this game very well. If you have a chance to watch them playing, you would say ‘orz’ from your heart. But as a programmer, we would admire people who write this game more. Here comes the problem.

    If you are assigned write a game similar to this game. If there are n different sound tracks and m different notes. How many different ways can you arrange the notes to fall.

    Input

    There are multiple test cases, each case contains a line of three numbers n, m, p. (0 < n, m < 1000000, 0 < p < 10^10).

    Output

    Output the result mod p.

    Sample Input

    2 2 1000

    Sample Output

    6

    Hint


    We only care about the figure when the notes are piled up. So please ignore the sequence of the notes falling in different sound tracks.
     
     
    把n个轨道看成n-1个隔板,然后就是(n-1+m)! / ( n-1) ! ...
    当结果等于0的时候要break ; 才能过~这里简直坑
     
     
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <cmath>
    #include <vector>
    #include <queue>
    #include <map>
    #include <set>
    #include <stack>
    #include <algorithm>
    #define root 1,n,1
    #define lson l,mid,rt<<1
    #define rson mid+1,r,rt<<1|1
    #define lr rt<<1
    #define rr rt<<1|1
    using namespace std;
    
    typedef long long LL;
    const int inf = 1e9+7;
    const double PI = acos(-1.0);
    const double eps = 1e-6 ;
    const int N = 1010;
    LL n , m , p ;
    int main()
    {
        #ifdef LOCAL
            freopen("in.txt","r",stdin);
        #endif // LOCAL
        ios::sync_with_stdio(false);
        while( cin >> n >> m >> p ) {
            LL res = 1 ;
            for( int i = n + m - 1 ; i >= n ; --i ) {
                res *= i ; res %= p ;
                if( !res ) break ;
            }
            cout << res << endl;
        }
    }
    View Code
     
    only strive for your goal , can you make your dream come true ?
  • 相关阅读:
    Linux系统排查1——内存篇
    (原创)Python字符串系列(1)——str对象
    (原创)Python文件与文件系统系列(2)——os模块对文件、文件系统操作的支持
    (原创)Python文件与文件系统系列(5)——stat模块
    (原创)Python文件与文件系统系列(4)——文件描述字操作
    CenterOS7——使用yum命令报错Could not retrieve mirrorlist
    awk 查询某一列大于1900的值
    /bin/bash^M: bad interpreter: No such file or directory
    linux 设置时间同步
    CentOS7 服务器分析挖矿病毒,清理挖矿病毒 tor2web
  • 原文地址:https://www.cnblogs.com/hlmark/p/4178010.html
Copyright © 2011-2022 走看看