正题


题目大意

n∗nn*nn∗n的矩阵,要求放nnn个雕塑,要求每行每列都只有一个雕塑,且不可以放在障碍物上。求方案总数。


解题思路

首先没有障碍物答案就是n!n!n!。
之后障碍物很少,考虑容斥。

设fif_ifi​为选iii个障碍物且这些障碍物的位置必须放雕塑的方案总数。

然后答案显然
ans=∑i=0mfi∗(1−i%2∗2)ans=\sum_{i=0}^mf_i*(1-i\%2*2)ans=i=0∑m​fi​∗(1−i%2∗2)
也就是奇数加,偶数减。


codecodecode

#include<cstdio>
#include<cstring>
#define N 25
#define ll long long
using namespace std;
struct node{ll x,y;
}a[15];
ll n,m,MS,ans;
bool vx[N],vy[N];
ll count_one(ll x){ll ans=0;while(x)ans++,x-=x&-x;return ans;
}
ll P(ll n){ll ans=1;for(ll i=1;i<=n;i++)ans*=i;return ans;
}
int main()
{scanf("%lld%lld",&n,&m);for(ll i=1;i<=m;i++)scanf("%lld%lld",&a[i].x,&a[i].y);MS=1<<m;for(ll i=0;i<MS;i++){ll k=n,flag=true;memset(vx,0,sizeof(vx));memset(vy,0,sizeof(vy));for(ll j=1;j<=m;j++)if((i>>(j-1))&1){if(vx[a[j].x]||vy[a[j].y]){flag=false;break;}k--;vx[a[j].x]=1;vy[a[j].y]=1;}ans+=flag*((count_one(i)&1)?-1:1)*P(k);}printf("%lld",ans);
}

jzoj3059-雕塑【容斥,数论】相关推荐

  1. POJ 1150 The Last Non-zero Digit 数论+容斥

    POJ 1150 The Last Non-zero Digit 数论+容斥 题目地址:  POJ 1150 题意:  求排列P(n, m)后面第一个非0的数. 分析: 为了熟悉题目中的理论.我先做了 ...

  2. Educational Codeforces Round 37 G. List Of Integers (二分,容斥定律,数论)

    G. List Of Integers time limit per test 5 seconds memory limit per test 256 megabytes input standard ...

  3. 数学--数论--容斥定理完全解析(转)

    对容斥原理的描述 容斥原理是一种重要的组合数学方法,可以让你求解任意大小的集合,或者计算复合事件的概率. 描述 容斥原理可以描述如下: 要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来, ...

  4. 数论五之容斥——硬币购物,Gerald and Giant Chess,幸运数字,Sky Full of Stars,已经没有什么好害怕的了

    容斥的神 [HAOI2008]硬币购物 problem solution code CF559C Gerald and Giant Chess problem solution code [SCOI2 ...

  5. P1447-[NOI2010]能量采集【GCD,数论,容斥】

    正题 题目链接:https://www.luogu.org/problemnew/show/P1447 题目大意 求∑i=1n∑j=1mgcd(i,j)∗2−1\sum_{i=1}^n\sum_{j= ...

  6. 容斥定理与鸽巢定理(抽屉定理)

    定义 在计数时,必须注意没有重复,没有遗漏.为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时 ...

  7. 《程序设计中的组合数学》——容斥定理

    在中学阶段的数学中,有诸如"一个班有7个语文满分,6个数学满分,5个英语满分--求满分的同学有多少个"的"多面手"问题,当时老师介绍的思路是画个图自己分配一下, ...

  8. Leetcode 552.学生出勤记录‖ 动态规划+容斥

    题目链接:传送门 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':P ...

  9. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

最新文章

  1. 一文详解CMake编译工具与项目构建
  2. Generation Language GL
  3. 数据中心业务价值永续的密码——施耐德电气全生命周期服务
  4. 程序员的职业生涯像一盘棋 行棋者由谁?
  5. android背景差分法,基于android平台的视频运动目标检测系统.pdf
  6. OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置
  7. 机器学习-累计分布函数(CDF)
  8. 学习笔记(01):程序员的数学:微积分-常用导数(一):最常用到的技巧
  9. linux系统学文档pdf,Linux操作系统学习.pdf
  10. 你想要的宏基因组-微生物组知识全在这(2020.7)
  11. git push -u origin XXX 报错
  12. Modbus家族之 ASCII
  13. Windows cmd常用命令行命令
  14. maven BUILD FAILURE的解决办法
  15. 2021年vmware安装archlinux
  16. 你富不过马云,但要说比惨你也未必比的过
  17. 文本文件编码与格式转换
  18. 《教学综合管理系统》学术论文
  19. 计算机网络课程实训致谢,计算机毕业实习报告:毕业实习报告致谢语怎么写
  20. 过程装备基础(第3版朱孝钦)(思考题 答案My Answer ‘如有错误,欢迎指出’)

热门文章

  1. Java如何控制用户输入的长度,用Java Applet 进行Web编程时,如何限制输入域中可输入字符的长度!解决后马上给分!!!...
  2. gesturedetector.java_android使用gesturedetector手势识别示例分享
  3. php多进程 写入文件_PHP多进程中使用file_put_contents安全吗?
  4. netcore读取json文件_【NET Core】.NET Core中读取json配置文件
  5. pearson相关系数_Pearson(皮尔逊)相关系数
  6. Spring框架相关问题
  7. css3边框交替动画_用css3实现惊艳面试官的背景即背景动画(高级附源码)
  8. Tree Recovery(二叉树递归遍历+求后序遍历模板)
  9. python爬虫百度贴吧代码大全_零基础写python爬虫之抓取百度贴吧代码分享
  10. mysql 剔除不可见字符_不可见字符,Excel里最隐蔽的坑