zoukankan      html  css  js  c++  java
  • 洛谷 P1497 木牛流马

    P1497 木牛流马

    题目描述

    孔明造出了木牛流马

    木牛者,方腹曲头,一脚四足,头入领中,舌著于腹。载多而行少,宜可大用,不可小使;特行者数十里,群行者二十里也。曲者为牛头,双者为牛脚,横者为牛领,转者为牛足,覆者为牛背,方者为牛腹,垂者为牛舌,曲者为牛肋,刻者为牛齿,立者为牛角,细者为牛鞅,摄者为牛秋轴。牛仰双辕,人行六尺,牛行四步。载一岁粮,日行二十里,而人不大劳。流马尺寸之数,肋长三尺五寸,广三寸,厚二寸二分,左右同。前轴孔分墨去头四寸,径中二寸。前脚孔分墨二寸,去前轴孔四寸五分,广一寸。前杠孔去前脚孔分墨二寸七分,孔长二寸,广一寸。后轴孔去前杠分墨一尺五分,大小与前同。后脚孔分墨去后轴孔三寸五分,大小与前同。后杠孔去后脚孔分墨二寸七分,后载克去后杠孔分墨四寸五分。前杠长一尺八寸,广二寸,厚一寸五分。后杠与等版方囊二枚,厚八分,长二尺七寸,高一尺六寸五分,广一尺六寸,每枚受米二斛三斗。从上杠孔去肋下七寸,前后同。上杠孔去下杠孔分墨一尺三寸,孔长一寸五分,广七分,八孔同。前后四脚,广二寸,厚一寸五分。形制如象,靬长四寸,径面四寸三分。孔径中三脚杠,长二尺一寸,广一寸五分,厚一寸四分,同杠耳。(《三国志·亮集载作木牛流马法》)

    可是在现实中它有个缺陷,就是两个不能在同一行或同一列!

    孔明兴高采烈的叫庞统来参观,孔明存心想难一难庞统,他把k个木牛流马放在一个大的n*n的格子地板上,并且给他们都染上色,想让庞统帮着算算有多少种不同的合理布局情况?

    输入输出格式

    输入格式:

     

    第一行:n,k,h(h为有多少种颜色) n<=20

    接下来h行为每种颜色多少个

     

    输出格式:

     

    合理布局情况总数

     

    输入输出样例

    输入样例#1: 复制
    4 4 1
    4
    输出样例#1: 复制
    24

    说明

    不需要高精度,并且孔明规定在格子地板上不能翻转,也就是说如果两种布局在翻转后是一样的仍算两种。

    思路:数学‘

    #include<iostream>
    using namespace std;
    int n,k,h;
    int main(){
        cin>>n>>k>>h;
        long long ans1=1,k1=k;
        if(k>n){
            cout<<0<<endl;
            return 0;
        }
        for(int i=1;i<=h;i++){
            int x;
            cin>>x;
            for(int j=1;j<=x;j++)    ans1*=j;
        }
        long long ans2=1;
        for(int i=n;i>=n-k+1;i--)    ans2*=i*i;
        cout<<ans2/ans1<<endl;
        return 0;
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    「搬运」影魔
    「不会」斯特林数
    「不会」二项式反演
    「不会」插头dp
    「不会」主定理
    「不会」网络流
    接口和抽象类的区别
    TestNG常用注解
    九九乘法表-Java
    冒泡排序和选择排序--Java
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7859884.html
Copyright © 2011-2022 走看看