zoukankan      html  css  js  c++  java
  • Little Rooks

    Description

    Inspired by a "Little Bishops" problem, Petya now wants to solve problem for rooks. 

    A rook is a piece used in the game of chess which is played on a board of square grids. A rook can only move horizontally and vertically from its current position and two rooks attack each other if one is on the path of the other. 

    Given two numbers n and k, your job is to determine the number of ways one can put k rooks on an n × n chessboard so that no two of them are in attacking positions. 

    Input

    The input file contains two integers n (1 ≤ n ≤ 10) and k (0 ≤ k ≤ n2). 

    Output

    Print a line containing the total number of ways one can put the given number of rooks on a chessboard of the given size so that no two of them are in attacking positions. 

    Sample Input

    Input
     
    4 4 

    Output
     
    24 
     
    根据规则,每一行只能有一个棋子,采用排列组合的话,
    1.当n > k 时,为0.
    2.当n = k 时,为A(n,k).
    3.当k < n的时候,从n列中拿出k行,剩余n-k+1行。k行则与 n=k 时的排列时一样的,即A(n,k),将剩余的n-k+1行插入k行中,为C(n,k)。所以总的摆放数为:A(n,k)*C(n,k).
     
    #include <iostream>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int main()
    {
      int n,k;
      while(cin>>n>>k)
      {
         if(k > n)
           cout<<0<<endl;
        else
        {
           int sum = 1;
            for(int i = k; i>= 1; i--)
                sum *= i;
            int cnk = 1;
            for(int i = n; i>= n-k+1; i--)
            {
                cnk *= i;
            }
            for(int i = k ; i>= 1; i--)
            {
                cnk /= i;
            }
            sum = sum*cnk*cnk;
              cout<<sum<<endl;
        }
      }
       return 0;
    }
  • 相关阅读:
    13.4 对锁和字段风格的事件的微小改变
    JavaWeb-session相关常用的方法
    JavaWeb-UUID
    JavaWeb-seession原理
    JavaWeb-HttpSession入门
    JavaWeb-Cookie的路径
    JavaWeb-Cookie的生命
    JavaWeb-Cookie介绍
    JavaWeb-JSP原理
    JSP文件生成的java文件和class文件所在的路径(eclipse和tomcat)
  • 原文地址:https://www.cnblogs.com/T8023Y/p/3234777.html
Copyright © 2011-2022 走看看