【JZOJ3059】【NOIP2012模拟10.26】雕塑【数论】【容斥】

ROG幻16Air新机避坑:Ubuntu 22.04下NVIDIA驱动、CUDA与Isaac Gym的兼容性实战 本文详细记录了在ROG幻16Air新机上安装Ubuntu 22.04,并成功配置NVIDIA驱动、CUDA与Isaac Gym强化学习开发环境的完整实战过程。针对官方文档未明确支持Ubuntu 22.04的挑战,文章提供了从驱动安装、CUDA版本选择、Python虚拟环境搭建到Isaac Gym兼容性调试的一站式解决方案,帮助开发者在新硬件上高效部署机器人仿真与训练平台。 阅读详情

题目大意:

题目链接:https://jzoj.net/senior/#main/show/3059
求 n × n n\times n n×n含 m m m个障碍网格中选择 n n n个格子,使得任意两个格子不在同一行、同一列的方案数。


思路:

由于 m m m只有 10 10 10,可以考虑用总方案数 − - −放在障碍上的方案数。
总方案数很明显是 n ! n! n!
因为第一行有 n n n个格子可以选,选择其中一个后,第二行就有 n − 1 n-1 n−1个格子可选,第三行就有 n − 2 n-2 n−2个可选,一直到最后一行只有 1 1 1个可选。总方案数就是 n × ( n − 1 ) × . . . × 1 = n ! n\times (n-1)\times ...\times 1=n! n×(n−1)×...×1=n!
然后我们会发现总方案数里面包含了选择 1 1 1个障碍的方案数。所以我们再减去选择 1 1 1个的方案数。此时我们会发现,总方案数里面包含了选择 2 2 2个方案数,减去选择一个的方案数后,减去的也包含了选择 2 2 2个障碍的方案数。相抵消,就等于没有减去选择 2 2 2个障碍的方案数。于是我们就要减去选择 2 2 2个的方案数。然后加上选择 3 3 3个,减去选择 4 4 4个。。。
用人话说,设 s i s_i si​表示在 n × n n\times n n×n网格中选择 n n n个格子,其中有 i i i个格子是障碍的情况数量。那么答案就是
{ n ! − s 1 + s 2 − s 3 + s 4 − . . . − s n − 1 + s n ( n % 2 = = 0 ) n ! − s 1 + s 2 − s 3 + s 4 − . . . + s n − 1 − s n ( n % 2 = = 1 ) \left\{\begin{matrix}n!-s_1+s_2-s_3+s_4-...-s_{n-1}+s_n(n\%2==0) \\n!-s_1+s_2-s_3+s_4-...+s_{n-1}-s_n(n\%2==1)\end{matrix}\right. {n!−s1​+s2​−s3​+s4​−...−sn−1​+sn​(n%2==0)n!−s1​+s2​−s3​+s4​−...+sn−1​−sn​(n%2==1)​
那么如何求 s i ? s_i? si​?
很明显, s i = s_i= si​=选择 i i i个障碍的方案数 × \times ×选择 m − i m-i m−i个非障碍的方案数。
选择 i i i个障碍的方案数可以用搜索求。因为 m m m只有 10 10 10,可以 2 m 2^m 2m判断是否选择则个障碍。
那么选择 m − i m-i m−i个非障碍的方案数其实就是要我们求在 ( m − i ) × ( m − i ) (m-i)\times(m-i) (m−i)×(m−i)的格子里选择 m m m个格子的方案数,自然就是 m ! m! m!了。
0 ∼ 20 0\sim 20 0∼20的阶乘要提前预处理,时间复杂度 O ( m × 2 m ) O(m\times 2^m) O(m×2m)。


代码:

#include <cstdio>
#include <iostream>
using namespace std;
typedef long long ll;

int n,m,x[15],y[15];
ll ans,num[25],s;
bool used[3][25];

void dfs(int i,int cnt,int sum)
//i表示处理到第i个障碍,cnt表示选择了多少个障碍,sum表示需要选择的总障碍数
{
    if (cnt==sum)  //选择完毕
    {
        s++;  //方案数
        return;
    }
    if (i>m) return;
    if (!used[1][x[i]]&&!used[2][y[i]])  //这一行和这一列都没有被选择
    {
        used[1][x[i]]=used[2][y[i]]=1;
        dfs(i+1,cnt+1,sum);
        used[1][x[i]]=used[2][y[i]]=0;
    }
    dfs(i+1,cnt,sum);
}

int main()
{
    scanf("%d%d",&n,&m);
    for (int i=1;i<=m;i++)
        scanf("%d%d",&x[i],&y[i]);
    num[0]=1;
    for (int i=1;i<=n;i++)  //预处理阶乘
        num[i]=i*num[i-1];
    ans=num[n];
    for (int i=1;i<=m;i++)
    {
        s=0;
        dfs(1,0,i);
        if (!s) break;
        if (i&1) ans-=s*num[n-i];
            else ans+=s*num[n-i]; 
    }
    printf("%lld\n",ans);
    return 0;
}
深入解析数据通信中的码元速率与比特率:从基础到实战应用 本文深入解析了数据通信中的核心概念码元速率与比特率,通过生动的比喻和公式(比特率=波特率×log₂(M))揭示其本质关系。文章结合BPSK、QPSK、16QAM等调制技术,剖析了从4G/5G到LoRa等实战场景中如何权衡速率、距离与可靠性,并提供了软考真题解析与系统设计建议,帮助读者从理论到应用全面掌握数据速率优化。 阅读详情

相关推荐

华为eNSP实战:手把手教你配置DHCP全局地址池(含AP固定IP分配)

本文通过华为eNSP模拟器,详细演示了如何配置DHCP全局地址池,为不同业务VLAN动态分配IP地址,并重点讲解了如何通过MAC地址绑定为接入点(AP)分配固定IP。文章涵盖了从拓扑设计、基础网络搭建到地址池精细配置、验证测试及常见故障排查的全流程,是网络工程师掌握企业级DHCP部署与AP管理的实用指南。

weixin_29235923的博客 599

16.9.10 C:3059. 【NOIP2012模拟10.26】雕塑

Description【问题描述】Wcyz为了迎接百年校庆,美化校园,请了校友笨笨将n座雕塑,准备安置在校园内,整个校园可以抽象成一个n*n的大网格,每个1*1网格最多只能安置一座雕塑,但是某些1*1的网格上恰好是一个食堂或湖泊,这些网格是不能安置雕塑的,每个雕塑的造型相同,这样同一种安置方案中交换排列都算一种。任意雕塑在同一行或同一列是不合法的方案。学校想知道有多少种安置方案,笨笨想从中选择最好的

qq_35169233的博客 425

cocos2dx中DrawNode画线锯齿和非凸多边形填充

记录一下在cocos2dx中使用DrawNode所遇到的2个问题 1.画线锯齿问题 ios版本下,在AppController.mm中设置CCEAGLView的multiSampling和numberOfSamples。如下图 CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds]

hello-world 5414

【NOIP2012模拟10.26】雕塑

Description Wcyz为了迎接百年校庆,美化校园,请了校友笨笨将n座雕塑,准备安置在校园内,整个校园可以抽象成一个n*n的大网格,每个1*1网格最多只能安置一座雕塑,但是某些1*1的网格上恰好是一个食堂或湖泊,这些网格是不能安置雕塑的,每个雕塑的造型相同,这样同一种安置方案中交换排列都算一种。任意雕塑在同一行或同一列是不合法的方案。 学校想知道有多少种安置方案,笨笨想从中选择最好的一种方案

peter_zhu01的博客 510

基于Labview2012实现的双通道信号源(课程设计)

双通道信号源,产生8种波形,能进行调制,带信号幅度与频率扫描功能,波形可存储与导入

qq_40617082的博客 1461

车载监控系统升级指南:如何用XS9950A替换TP9950实现高清视频解码(附配置代码)

本文提供了从TP9950升级至XS9950A车载视频解码芯片的完整实战指南。详细解析了硬件设计调整、PCB布局要点,并重点分享了通过I2C配置寄存器实现高清HDCCTV视频解码与同轴音频集成的软件驱动代码与调试技巧,助力工程师平滑完成系统升级。

weixin_29268637的博客 364

JZOJ 3059. 【NOIP2012模拟10.26】雕塑

...分析:代码: 分析: 总方案数显然是n!n!n! 但是题目中有障碍物,所以我们考虑用总方案数-障碍物的方案数 但随后我们发现,答案貌似不太对!——因为我们计算了重复的部分。所以我们就使用容斥原理解决 代码: #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cmath&gt; #include&lt;cstring&g...

qq_35786326的博客 324

windows系统下,如何为comfyui如何安装triton

​ 有些加速插件、模型在安装的时候,比如说sageattention的安装,就需要提前安装triton这个包,不过这个包有点特殊,windows下略微不好装,经常会装失败。 🎠如何安装 之前也有人介绍过,要到github上找个wheel文件,找到对应的版本安装下就好了。 问题是:https://github.com/woct0rdho/triton-windows/releases 这个git地址上,已经找不到wheel文件了... ​

聚梦小课堂 4498

jzoj 3059. 【NOIP2012模拟10.26】雕塑

Description Wcyz为了迎接百年校庆,美化校园,请了校友笨笨将n座雕塑,准备安置在校园内,整个校园可以抽象成一个n*n的大网格,每个1*1网格最多只能安置一座雕塑,但是某些1*1的网格上恰好是一个食堂或湖泊,这些网格是不能安置雕塑的,每个雕塑的造型相同,这样同一种安置方案中交换排列都算一种。任意雕塑在同一行或同一列是不合法的方案。 学校想知道有多少种安置方案,笨笨想从中选择最好的一...

自以为心若顽石,却终究人非草木。 260

Android P车机添加屏幕多指全局自定义手势操作

参照原生状态栏全局下拉手势拦截,实现屏幕全局多指手势响应操作,并对手势进行转换为KeyEvent,以便项目自定义手势行为或应用拦截手势行为。

shusuanly的博客 1251

手把手打通全流程:在华为昇腾310/Atlas 200DK上实现深度学习模型从移植到部署

通过以上步骤,你已成功在华为昇腾310 Atlas 200DK上完成深度学习模型的移植与推理。这一流程可复用到目标检测、语义分割等其他任务,快去尝试将自己的AI模型部署到昇腾设备上,打造属于你的边缘智能应用吧!上部署深度学习模型,这篇教程将带你走完从模型转换到推理运行的完整流程。无需担心技术壁垒,我们以通俗易懂的方式拆解每一步,让你轻松在昇腾嵌入式设备上实现AI应用。是专为边缘AI设计的高性能处理器,Atlas 200DK是其开发板形态,能高效运行图像分类、目标检测等深度学习任务。

FJN110的博客 183

【JZOJ3057】【NOIP2012模拟10.26】电影票【数论】

题目大意: 题目链接:https://jzoj.net/senior/#main/show/3057 有nnn个人买电影一的票,mmm个人买电影二的票。每次只有一个人买票,而且保证每时每刻电影一的票房都不小于电影二的票房。求买票顺序的方案数。 思路: 假设买电影一的票的人为aaa,买电影儿的票的人为bbb,那么买票顺序就构成了一个序列。例如aabbb,aababbbab,ababaaabbb,a...

stoorz 597

(八)DDR_PHY架构及功能——(PUB组成、初始化及Training流程、Clock关系)

文章目录一、DDR_PHY结构组成1.1、DDR Memory子系统1.2、DDR_PHY架构组成1.3、PUB模块功能实现流程1.3.1、DDR系统初始化流程1.3.2、PLL初始化流程 一、DDR_PHY结构组成 1.1、DDR Memory子系统   Memory子系统主要由DDR Controller和DDR_PHY(含DDR_IO)两个部分组成。DDR Controller主要承担其它子系统(如CPU)与Memory子系统进行数据交互时的传输效率及调度,DDR_PHY主要负责数据交互过程中的传输速

Mr.翟的博客 1万+

笨笨的雕塑安置

笨笨的雕塑安置     Wcyz为了迎接百年校庆,美化校园,请了校友笨笨将n座雕塑,准备安置在校园内,整个校园可以抽象成一个nxn的大网格,每个lxl网格最多只能安置一座雕塑,但是某些lxl的网格上恰好是一个食堂或湖泊,这些网格是不能安置雕塑的,每个雕塑的造型相同,这样同一种安置方案中交换排列都算一种。任意雕塑在同一行或同一列是不合法的方案。     学校想知道有多少种安置方案

clover_hxy的博客 897

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JZOJ 3051. 单元格

数学

Luckfort 418

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

笨笨小媛的博客

在微博满天飞的时候,我却开通了博客,虽然慢了点,但是还是很有用的。欢迎光临。 转载于:https://www.cnblogs.com/fannywu/articles/2012636.html

weixin_30820151的博客 164

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【校内互测】笨笨的雕塑安置(容斥原理)

【描述】 Wcyz为了迎接百年校庆,美化校园,请了校友笨笨将n座雕塑,准备安置在校园内,整个校园可以抽象成一个nxn的大网格,每个lxl网格最多只能安置一座雕塑,但是某些lxl的网格上恰好是一个食堂或湖泊,这些网格是不能安置雕塑的,每个雕塑的造型相同,这样同一种安置方案中交换排列都算一种。任意雕塑在同一行或同一列是不合法的方案。     学校想知道有多少种安置方案,笨笨想从中选择最好的一种方案

zyf2000 1787

September 10th 模拟赛C T3 雕塑 Solution

一个傻逼写的题解。

打工是不可能打工的,这辈子不可能打工的。 701

jzoj 5864. 【NOIP2018模拟9.11】很多序列 数论

Description Input Output Sample Input 2 4 7 Sample Output 17 Data Constraint 分析: n=2n=2n=2 就是noipD1T1,直接输出x∗y−x−yx∗y−x−yx*y-x-y。 考虑 n&gt;2n&gt;2n>2 怎么做,此时x1&lt;103x1&lt;103x_1k=x1k=...

liangzihao1的博客 412

父传子 笨笨的逻辑

父传子 子传父 转载于:https://www.cnblogs.com/benbenbai/p/10522399.html

weixin_30344995的博客 177

笨笨的冒泡排序

说到排序算法有很多种,我这里也不献丑了,其中最差的估计就是冒泡排序了,但是作为CPU测试程序已经够用: /* File Name : BubbleSort.c */ #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; #define SIZE 100000 main() { in...

weixin_33725722的博客 138

C笔记 10.26

VC下EOF:F6+ENTERTC下EOF:ctrl+D终于可以结束while((c=getchar())!=EOF){}明天开始数组^^

CITY WALKER - a different life 920

【NOIP2012模拟10.26】火炬手

这题表示考场没想到。。。 可以直接dfs出所有01串的东东,它不可能超出long long范围 上标: #include&amp;amp;lt;cstdio&amp;amp;gt; #include&amp;amp;lt;cstdlib&amp;amp;gt; #include&amp;amp;lt;algorithm&amp;amp;gt; #define ll long long #define mx 233333333333333333

Larry1118的博客 224

【校内互测】笨笨当火炬手

【描述】 全运会就要开始了,笨笨想成为湖南地区的火炬手,经过层层选拔,最终到了最后一关,这一关给出了一个正整数n(N≤100000),求一个最小的正整数m,使得nxm的十进制表示形式中只含l和0。   【输入格式】   一行一个数n   【输出格式】   输出一行,如果有解,输出最小的m,否则 输出“no solution”。     Sample input     12

zyf2000 1281

高中OJ3059【NOIP2012模拟10.26】雕塑

(依然毫无PS痕迹) 这题刚看起来是很吊,并卵 后来问了某刘方法,正在理解中。。。 正解: 先用深搜计算出F数组,F[i]表示放i座雕塑时的方案数。 之后计算出1~n的阶乘,记为JC[i]。            /N!  (i≥1) JC[N] |            \1    (i 之后直接计算答案:  m  ∑F[i]*JC[n-i]*(0-

某司机的黑车 583
上一篇: 【洛谷P2742】【模板】二维凸包/[USACO5.1]圈奶牛【凸包】
下一篇: 【JZOJ3057】【NOIP2012模拟10.26】电影票【数论】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值