考虑容斥,枚举哪些不存在的边选中了,剩下的不管,则可以用组合数计算方案数。

时间复杂度$O(m2^m+nm)$。

#include<cstdio>
const int N=550,B=10000,MAXL=350;
int n,m,S,i,j,e[N][2],g[N],f[N];
inline int max(int a,int b){return a>b?a:b;}
struct Num{int a[MAXL],len,fu;Num(){len=1,fu=a[1]=0;}Num operator+(const Num&b){Num c;c.len=max(len,b.len)+2;int i;for(i=1;i<=c.len;i++)c.a[i]=0;if(fu==b.fu){for(i=1;i<=len;i++)c.a[i]=a[i];for(i=1;i<=b.len;i++)c.a[i]+=b.a[i];for(i=1;i<=c.len;i++)if(c.a[i]>=B)c.a[i+1]++,c.a[i]-=B;while(c.len>1&&!c.a[c.len])c.len--;c.fu=fu;}else{bool flag=0;if(len==b.len){for(i=len;i;i--)if(a[i]!=b.a[i]){if(a[i]>b.a[i])flag=1;break;}}else{if(len>b.len)flag=1;}if(flag){for(i=1;i<=len;i++)c.a[i]=a[i];for(i=1;i<=b.len;i++)c.a[i]-=b.a[i];for(i=1;i<=c.len;i++)if(c.a[i]<0)c.a[i+1]--,c.a[i]+=B;while(c.len>1&&!c.a[c.len])c.len--;c.fu=fu;}else{for(i=1;i<=b.len;i++)c.a[i]=b.a[i];for(i=1;i<=len;i++)c.a[i]-=a[i];for(i=1;i<=c.len;i++)if(c.a[i]<0)c.a[i+1]--,c.a[i]+=B;while(c.len>1&&!c.a[c.len])c.len--;c.fu=b.fu;}}return c;}Num operator*(const Num&b){Num c;c.len=len+b.len+2;c.fu=fu^b.fu;int i,j;for(i=1;i<=c.len;i++)c.a[i]=0;for(i=1;i<=len;i++)for(j=1;j<=b.len;j++){c.a[i+j-1]+=a[i]*b.a[j];if(c.a[i+j-1]>=B){c.a[i+j]+=c.a[i+j-1]/B;c.a[i+j-1]%=B;if(c.a[i+j]>=B)c.a[i+j+1]+=c.a[i+j]/B,c.a[i+j]%=B;}}while(c.len>1&&!c.a[c.len])c.len--;return c;}void operator/=(int b){int i;for(i=len;i;i--)a[i-1]+=a[i]%b*B,a[i]/=b;while(len>1&&!a[len])len--;}bool iszero(){return len==1&&!a[1];}void write(){if(len==1&&!a[1])fu=0;if(fu)putchar('-');printf("%d",a[len]);for(int i=len-1;i;i--)printf("%04d",a[i]);puts("");}void set(int x){fu=0;if(x<0)x*=-1,fu^=1;if(x>=B){len=2;a[1]=x%B;a[2]=x/B;}else{len=1;a[1]=x;}}
}ans[N],tmp,now;
int main(){scanf("%d%d",&n,&m);for(i=0;i<m;i++)scanf("%d%d",&e[i][0],&e[i][1]);for(i=0;i<m;i++)for(j=0;j<m;j++)if(i!=j&&(e[i][0]==e[j][0]||e[i][1]==e[j][1]))g[i]|=1<<j;for(S=0;S<1<<m;S++){for(i=0;i<m;i++)if(S>>i&1)if(S&g[i])break;if(i==m)f[__builtin_popcount(S)]+=__builtin_popcount(S)&1?-1:1;}for(i=0;i<=n;i++)if(f[i]){tmp.set(f[i]);for(j=0;j<=n-i;j++){if(j){now.set((n-i-j+1)*(n-i-j+1));tmp=tmp*now;}if(j>1)tmp/=j;ans[i+j]=ans[i+j]+tmp;}}for(i=0;i<=n;i++)ans[i].write();return 0;
}

  

转载于:https://www.cnblogs.com/clrs97/p/8460483.html

BZOJ1439 : YY的问题相关推荐

  1. java date truncate_在Java中将dateTime转换为dd / mm / yy格式的日期

    小编典典 正如我最初所说,Date对象没有固有的格式.java.util.Date持有毫秒时间值,代表日期和时间.通过选择DateFormat,可以从字符串解析日期或将日期格式化为字符串. 可以按照规 ...

  2. 【bzoj2770】YY的Treap 权值线段树

    题目描述 志向远大的YY小朋友在学完快速排序之后决定学习平衡树,左思右想再加上SY的教唆,YY决定学习Treap.友爱教教父SY如砍瓜切菜般教会了YY小朋友Treap(一种平衡树,通过对每个节点随机分 ...

  3. 今天在YY上听课感觉不错

    以前虽说听说过YY语音,但很少真正去听过. 今天看了一下网络方面的语音教程群,感觉讲的很不错. 里面人都比较热情. 在里面有人分享学习心得和经验. 平时做事情,都是埋头做事,感觉这样进步很慢. 和大家 ...

  4. python 链表推导式 xx for xx in yy

    如下: unq_objnames = [l.strip() for l in open('labels.txt').readlines()] 这种形如  xx for  xx in yy 的形式就是链 ...

  5. 视觉计算/深度学习/人工智能 笔试面试 汇总(腾讯、网易、yy、美图等)

    对应岗位为:基础研究或图像相关岗位,题目来源自同学们的汇总.. 一部分是我自行总结的,所以也不一定正确,欢迎捉虫. 每个问题都不停止的追问自己为什么,因为在面试中面试官肯定会不停的追问的. 之所以现在 ...

  6. BZOJ 2820 YY的GCD 莫比乌斯反演

    2820: YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y) ...

  7. nyoj655光棍的yy

    光棍的yy 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊. 现在给你m个1,你可以把2个 ...

  8. NYOJ 655 光棍的yy

    光棍的yy 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊. 现在给你m个1,你可以把2个 ...

  9. YY/T 0664—2020《医疗器械软件 软件生存周期过程》 相关

    标准书:  YY/T 0664-2020 医疗器械软件 软件生存周期过程 - 道客巴巴 (doc88.com) 国家药监局关于发布34项医疗器械行业标准的公告(2020年第108号) 第10项为&qu ...

最新文章

  1. 写给程序员的 HR 面试指南,助你踢好面试的临门一脚!
  2. 重磅丨国资委下发通知,加快推进国有企业数字化转型
  3. Trie 树——搜索关键词提示
  4. 【Scala谜题】继承
  5. SAP Spartacus ProductService.get的几个调用场景
  6. oracle备份磁盘头,oracle asm 磁盘头数据以及备份与恢复基础篇(2)
  7. 信息安全官谁:逼近的挑战,你准备好了吗?
  8. linux一键启动,Linux一键启动、停止、重启Tomcat sh脚本
  9. 【LeetCode】【HOT】148. 排序链表(归并排序)
  10. typora插入代码设置_五分钟快速上手神器Typora
  11. 教你如何Mac上手动配置静态IP上网
  12. linux登录显示 Error in service module错误
  13. 荣耀继承者android,荣耀继承者后期阵容推荐,一套万金油阵容介绍给大家
  14. 简单酷炫css3动画效果,CSS3使用Animate.css制作超炫的动画效果
  15. python里的英文歌叫什么_Python告诉你:从《入海》到《消愁》毛不易的歌里都在唱些什么?...
  16. INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法
  17. 啊哈添柴挑战Java1222. 输出菱形
  18. Excel数据透视表:切片器
  19. Springboot发送邮件到腾讯企业邮箱
  20. php app 推送原理,微信公众号开发的那点事第一篇——消息推送原理

热门文章

  1. PCB的阻抗控制与前端仿真(SI9000的应用)(Z)
  2. 【python 2】python 进阶
  3. 能过好每一天的人,都不会混得太差
  4. 《城邦暴力团》:一部奇书、反书、隐书
  5. 输入序列不连续的序列检测
  6. mysql 序号_脚本搭建Nginx、Redis、MySql、Maven
  7. python全文检索引擎_Python中使用haystack实现django全文检索搜索引擎功能
  8. Mysql数据库的简单备份与还原_史上最简单的MySQL数据备份与还原教程
  9. hashmap为什么线程不安全_什么时候线程不安全?怎样做到线程安全?怎么扩展线程安全的类?...
  10. 团队行为心理学读书笔记(5)执行力背后的行为心理学