首页 > 试题广场 >

奶牛编号

[编程题]奶牛编号
  • 热度指数:262 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛养了n只奶牛,牛牛想给每只奶牛编号,这样就可以轻而易举地分辨它们了。 每个奶牛对于数字都有自己的喜好,第i只奶牛想要一个1和x[i]之间的整数(其中包含1和x[i])。
牛牛需要满足所有奶牛的喜好,请帮助牛牛计算牛牛有多少种给奶牛编号的方法,输出符合要求的编号方法总数。

输入描述:
输入包括两行,第一行一个整数n(1 ≤ n ≤ 50),表示奶牛的数量 第二行为n个整数x[i](1 ≤ x[i] ≤ 1000)


输出描述:
输出一个整数,表示牛牛在满足所有奶牛的喜好上编号的方法数。因为答案可能很大,输出方法数对1,000,000,007的模。
示例1

输入

4
4 4 4 4

输出

24
#include <bits/stdc++.h>

using namespace std;


int main(int argc, char const *argv[])
{
    int cow_nums;
    cin >> cow_nums;
    int x[cow_nums];
    for (int i = 0; i < cow_nums; ++i) {
        cin >> x[i];
    }

    sort(x, x + cow_nums);

    long long res = 1;

    for (int i = 0; i < cow_nums; ++i) {
        res *= (x[i] - i);
        res %= 1000000007;
    }

    cout << res;
}
发表于 2017-12-03 14:18:14 回复(0)
#include <iostream>
#include <vector>
 
using namespace std;
 
int main(){
    int num_niu;
    unsigned long long num_name = 1;
    vector<int> niu;
    int temp1;
    cin >> num_niu;
    for(int i = 0; i<num_niu; i++){
        int temp;
        cin >> temp;
        niu.push_back(temp);
    }
    for(int i = 0; i < niu.size(); i++)
        for(int j = i; j < niu.size(); j++){
            if(niu[i] > niu[j]){ temp1 = niu[j]; niu[j] = niu[i];
                               niu[i] = temp1;}
        }
    int flag = 0;
    for (int i = 0; i < niu.size(); i++){
        if (i == 0) num_name *= niu[i];
        else num_name *= (niu[i] - (++flag));
        num_name %= 1000000007;            //最终死在这步上,不能最后取模,会溢出
    }
    cout << num_name;
    return 0;
}

编辑于 2018-10-06 11:00:57 回复(0)
#include<iostream>
#include<vector>
#include<algorithm>
 
using namespace std;
 
int main()
{
    int n;
    while(cin >> n)
    {
        vector<int> vec(n, 0);
        for(int i=0; i<n; ++i)
            cin >> vec[i];
        sort(vec.begin(), vec.end());
        long long sum = 1;
        for(int i=0; i<n; ++i)
        {
            sum *= (vec[i]-i);
            sum %= 1000000007;
        }
        cout << sum << endl;
    }
    return 0;
}
编辑于 2018-09-14 21:58:23 回复(0)