【bzoj4563】【HAOI2016】放棋子(高精度+错排+java)
发布日期:2021-06-29 14:25:23 浏览次数:2 分类:技术文章

本文共 495 字,大约阅读时间需要 1 分钟。


题目大意

给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行只有一枚棋子,每列只有一枚棋子的限制,求有多少种方案。

题解

考虑经典的二分图做法,然后就变成求二分图完美匹配的个数了 由于障碍的特殊性,不妨把每个障碍都放到主对角线上,发现对答案没有影响 于是就变成错排计数了 用上java高精度就可以了
import java.math.BigInteger;import java.util.Scanner;public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in); BigInteger a[]=new BigInteger[205]; while(cin.hasNext()) {
int n=cin.nextInt(); int x; for(int i=0;i
学如逆水行舟,不进则退

转载地址:https://chocolate.blog.csdn.net/article/details/100189003 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:2017 CCPC 秦皇岛 G 题 & ZOJ 3987 - Numbers (高精度+贪心)
下一篇:2019年(第15届)湖南省大学生计算机程序设计竞赛之【赛前动员暨暑假集训总结】

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 22时00分33秒