[BZOJ 2560]串珠子
传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=2560
Sol
正难则反 直接统计可行的状态不好统计 就反过来统计不可行的状态 再用所有状态减去不可行的状态
在算不可行状态的时候 固定一个定点 与这个定点联通的点为集合$st1$ 与这个定点不连通的点为集合$st2$
引入$f,g$ $g$表示随意连边可产生的方案数 $f$为连边联通的方案数
这样产生的不合法方案数$g_{st2}*f_{st1}$
而由于固定了一个定点 所以可以保证算出来的方案数不重不漏
题目同时涉及了一个枚举子集的方法=v=
Code
#include <bits/stdc++.h> using namespace std; const int fish=1000000007; int N; long long a[1000][1000],f[65550],g[65550]; int main() {scanf("%d",&N);for (int i=1;i<=N;i++)for (int j=1;j<=N;j++)scanf("%d",&a[i][j]);int ST=(1<<N)-1;for (int i=1;i<=ST;i++){g[i]=1;for (int j=1;j<=N;j++)if (i&(1<<(j-1)))for (int k=j+1;k<=N;k++)if (i&(1<<k-1))g[i]=g[i]*(a[j][k]+1)%fish;f[i]=g[i];int zt=0;for (int j=N;j>=0;j--)if (i&(1<<j-1)){zt=j;break;}zt=i^(1<<zt-1);for (int j=zt;j;j=zt&(j-1))//枚举所有子集的方法 f[i]=(f[i]-g[j]*f[i^j]*1ll%fish+fish)%fish;}printf("%lld",f[ST]%fish);return 0; }
转载于:https://www.cnblogs.com/si--nian/p/11368720.html
[BZOJ 2560]串珠子相关推荐
- BZOJ 2560: 串珠子 (状压DP+枚举子集补集+容斥)
(Noip提高组及以下),有意者请联系Lydsy2012@163.com,仅限教师及家长用户. 2560: 串珠子 Time Limit: 10 Sec Memory Limit: 128 MB Su ...
- bzoj 2560: 串珠子
题意: 铭铭有n个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体. 现在已知所有珠子互不相同,用整数1到n编号.对于第i个珠子和第j个珠子,可以选择不用绳子连接,或者 ...
- bzoj 2560: 串珠子【状压dp】
正难则反,设g[s]为集合s不一定联通的方案数,这个很好求,把边数+1乘起来即可,f[s]为s一定联通的方案数 f考虑容斥,就是g[s]-Σf[nw]*g[s^nw],nw是s的子集,这样就减掉了不联 ...
- bzoj 2560 串珠子
大意: n个点, $i$和$j$之间可以连$c_{ij}$种无向边, 求连成连通图的方案数. 设$f_i$为状态$i$时连通图方案, $g_i$为状态$i$时所有方案. 有$f[i]=g[i]-\su ...
- bzoj P2560 串珠子
传送门 第一道子集dp.(感觉很像状压dp.. 好弱啊我看了好多大神的博客才勉强看懂 g[s]表示s状态下的所有情况,即s状态下的点两两之间任意连边(包括不连边),f[s]表示s状态下的合法情况(所有 ...
- bzoj2560串珠子 状压dp+容斥(?)
2560: 串珠子 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 515 Solved: 348 [Submit][Status][Discuss ...
- BZOJ 2560(子集DP+容斥原理)
2560: 串珠子 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 757 Solved: 497 [Submit][Status][Discuss ...
- BZOJ2560 串珠子
2560: 串珠子 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 469 Solved: 313 [ Submit][ Status][ Di ...
- [tsinsen_A1278]串珠子
[tsinsen_A1278]串珠子 试题描述 铭铭有 \(n\) 个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体. 现在已知所有珠子互不相同,用整数 \(1\) ...
最新文章
- 在python中调用js或者nodejs要使用PyExecJs第三方包。
- 紧急提醒!售价3980,成本价80,你被坑过吗?
- Flutter开发之布局-4-container(18)
- Keil的HTM 文件分析
- Maven类包冲突终极解决小技若干
- C/C++之数据类型
- 有关Spring注解@xxx的零碎知识
- 互斥锁属性PTHREAD_MUTEX_RECURSIVE
- lu分解 百度百科
- php换行符sql,如何在PHP和MySQL的textarea中给换行符的同时避免SQL注入?
- 六问阿里云计算安全,全面解析阿里云ECS服务器的计算安全进化之路
- rust投递箱连接箱子_海门市围板箱定制围板箱内衬
- ESP8266串口转wifi/wifi转串口模块
- 仿网易评论盖楼的留言板插件demo
- STM32初始化产生低电平引起的问题
- 【JVM】JVM系列
- WebView调用微信H5支付
- Cisco Packet Tracer 6.0下载安装及汉化包使用方法
- Camunda入门(四) - 流程应用(支付流程)入门示例
- zipkin学习--01--理论
热门文章
- 第09课:精进的4个习惯
- Android otapackage流程分析三
- 安卓图片自适应高度时图片长度过大的解决方案
- JavaScript函数录入成绩
- java 漏洞扫描 开源_有哪些开源web应用漏洞扫描工具?
- Java实现 LeetCode 658 找到 K 个最接近的元素(暴力)
- Unity_用脚本控制Spine动画播放和切换皮肤
- win10系统崩溃怎么修复_小编调解 win10系统wifi保护器防蹭网的修复教程 -win10使用教程...
- 每日总结2022.12.27
- sprintf %02x