前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ACMSGURU 222 - Little Rooks

ACMSGURU 222 - Little Rooks

作者头像
Reck Zhang
发布2021-08-11 10:51:32
2480
发布2021-08-11 10:51:32
举报
文章被收录于专栏:Reck ZhangReck Zhang

Little Rooks

Problem 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 test(s)

Input

4 4

Output

24

Solution

代码语言:javascript
复制
#include <bits/stdc++.h>

int main() {
#define int long long
    std::ios::sync_with_stdio(false);

    int n, k;
    std::cin >> n >> k;

    auto C = [](int n, int k) {
        int res_n = 1;
        int res_k = 1;
        int res_tmp = 1;
        for(int i = 1; i <= n; i++) {
            res_n *= i;
        }
        for(int i = 1; i <= k; i++) {
            res_k *= i;
        }
        for(int i = 1; i <= n - k; i++) {
            res_tmp *= i;
        }
        return static_cast<int>(res_n / (res_k * res_tmp));
    };

    auto A = [](int n, int k) {
        int res_n = 1;
        int res_k = 1;
        for(int i = 1; i <= n; i++) {
            res_n *= i;
        }
        for(int i = 1; i <= n - k; i++) {
            res_k *= i;
        }
        return static_cast<int>(res_n / res_k);
    };

    if(k > n) {
        std::cout << 0 << std::endl;
    } else {
        std::cout << C(n, k) * A(n, k) << std::endl;
    }

    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Little Rooks
    • Problem Description
      • Input
        • Output
          • Sample test(s)
            • Input
              • Output
                • Solution
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档