D. A Simple Task

news2024/11/24 2:24:59

Problem - D - Codeforces

思路:这个题就是求环的数量,通过数据范围的大小,我们可以想到用状压dp来做,因为只有19个点,我们可以将环的路径进行状态压缩,用一个二进制数表示环,当某一位为1时表示这个点在环上,那么我们可以用f[i][j]表示当前的路径状态为i,当前所在的点为j的情况,为了让环不重复统计,那么我们可以将路径中最小的点作为起点,可以保证不重复,那么我们只需要将状态从小到大枚举,这样一定会枚举到所有的情况,因为i一定是变大的不会变小,然后再枚举现在再哪个位置了,再枚举接下来要走到哪个点,那么如果当前的位置或者要到的位置比起点的编号小了,那么就跳过,并且如果从当前位置不能够走到下一个位置也跳过,并且我们再更新i的过程中要保证路径i没有环,因为如果存在环会重复统计。       

// Problem: D. A Simple Task
// Contest: Codeforces - Codeforces Beta Round 11
// URL: https://codeforces.com/contest/11/problem/D
// Memory Limit: 256 MB
// Time Limit: 2000 ms

#include<bits/stdc++.h>
#include<sstream>
#include<cassert>
#define fi first
#define se second
#define i128 __int128
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> PII;
const double eps=1e-7;
const int N=5e5+7 ,M=5e5+7, INF=0x3f3f3f3f,mod=1e9+7,mod1=998244353;
const long long int llINF=0x3f3f3f3f3f3f3f3f;
inline ll read() {ll x=0,f=1;char c=getchar();while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {x=(ll)x*10+c-'0';c=getchar();} return x*f;}
inline void write(ll x) {if(x < 0) {putchar('-'); x = -x;}if(x >= 10) write(x / 10);putchar(x % 10 + '0');}
inline void write(ll x,char ch) {write(x);putchar(ch);}
void stin() {freopen("in_put.txt","r",stdin);freopen("my_out_put.txt","w",stdout);}
bool cmp0(int a,int b) {return a>b;}
template<typename T> T gcd(T a,T b) {return b==0?a:gcd(b,a%b);}
template<typename T> T lcm(T a,T b) {return a*b/gcd(a,b);}
void hack() {printf("\n----------------------------------\n");}

int T,hackT;
int n,m,k;
bool st[30][30];
ll f[1<<20][20];

int lowbit(int x) {
	return x&-x;
}

void solve() {
	n=read(),m=read();
	
	for(int i=1;i<=m;i++) {
		int a=read(),b=read();
		st[a-1][b-1]=st[b-1][a-1]=true;
	}	

	for(int i=0;i<n;i++) f[1<<i][i]=1;
	
	ll res=0;
	for(int i=0;i<(1<<n);i++) {
		int start=lowbit(i);
		for(int j=0;j<n;j++) {
			if((1<<j)<start) continue;
			for(int k=0;k<n;k++) {
				if((1<<k)<start) continue;
				if(!st[j][k]) continue;
				
				if(start==(1<<k)) {
					res+=f[i][j];
				}else if(!((i>>k)&1)){
					f[i|(1<<k)][k]+=f[i][j];
				}
			}
		}
	}
	
	res=(res-m)/2;
	
	printf("%lld\n",res);
}

int main() {
    // init();
    // stin();
	// ios::sync_with_stdio(false); 

    // scanf("%d",&T);
    T=1; 
    while(T--) hackT++,solve();
    
    return 0;       
}          

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1045614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

同创永益CNBR平台——云原生时代下的系统稳定器

随着各行业数字化的快速发展&#xff0c;企业的业务运作、经营管理越来越依赖于云原生系统的可靠运行。信息系统服务的连续性, 业务数据的完整性、正确性、有效性会直接关系到企业的生产、经营与决策活动。一旦因自然灾害、设备故障或人为因素等引起信息数据丢失和云原生业务处…

【QT】使用toBase64方法将.txt文件的明文变为非明文(类似加密)

目录 0.环境 1.背景 2.详细代码 2.1 .h主要代码 2.2 .cpp主要代码&#xff0c;主要实现上述的四个方法 0.环境 windows 11 64位 Qt Creator 4.13.1 1.背景 项目需求&#xff1a;我们项目中有配置文件&#xff08;类似.txt&#xff0c;但不是这个格式&#xff0c;本文以…

SQLyog 连接 MySQL8.0+ 报错2058

问题如下&#xff1a; 解决方案&#xff1a; 1.首先用命令窗口进入user表 2.使用有mysql.user表权限的用户连接mysql并执行如下命令&#xff1a; ALTER USER sqlyoglocalhost IDENTIFIED WITH mysql_native_password BY root23456; 注&#xff1a;使用mysql_native_password…

Sui流动性质押黑客松入围项目公布

经过40多天积极的报名以及精心的选拔&#xff0c;Sui流动性质押黑客松现已完成对所有报名项目的筛选&#xff0c;最终入围名单也在众人的期待中新鲜出炉。两个赛道各六支队伍成功晋级黑客松的Demo Day&#xff0c;让我们来认识一下他们&#xff1a; 入围名单 流动性质押协议 …

git使用过程中出现乱码的解决办法

当我们使用git log或者git diff等git操作时&#xff0c;在终端很可能会遇到乱码&#xff0c;乱码效果如下&#xff1a; <E6><B7><BB><E5><8A><A0><E4><BA><86><E4><B8><80><E4><BA>&…

27、Flink 的SQL之SELECT (Pattern Recognition 模式检测)介绍及详细示例(7)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

【java、maven】报错: 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。

问题描述&#xff1a;导入依赖后&#xff0c;运行时发生 解决方法&#xff1a; 1.调高SDK版本 调高前&#xff1a; 调高后&#xff1a;

JavaSE11——面向对象_类和对象

一 面向对象 早期的程序设计经历了“面向问题”、“面向过程”的阶段&#xff0c;随着计算机技术的发展&#xff0c;以及所要解决问题的复杂性的提高&#xff0c;以往的程序设计方法已经不能适应这种发展的需求。于是&#xff0c;从 20 世纪 70 年代开始&#xff0c;相继出现了…

性能测试工具 — JMeter

1、jmeter介绍 Apache JMeter 应用程序是开源软件&#xff0c;是一个 100% 纯 Java 应用程序。用于测试Web应用程序、API和其他网络协议的性能。它具有以下特点&#xff1a; 1. 开源免费&#xff1a;JMeter是Apache软件基金会下的一个开源项目&#xff0c;它被称为Apache JMe…

2011年408计组真题步骤解析

12&#xff0e;下列选项中&#xff0c;描述浮点数操作速度指标的是D 。 A&#xff0e;MIPS B&#xff0e;CPI C&#xff0e;IPC D&#xff0e;MFLOPS 解析&#xff1a;浮点数&#xff1f;float&#xff1f;选有F的D 13&#xff0e;float 型数据通常用 IEEE 754 单精度浮点数格…

企业数据加密软件都有哪些?对公司能加密的软件有哪些

在当今的数字化时代&#xff0c;企业的信息安全已经成为了一个重要的议题。企业数据加密软件是一种能够保护企业敏感信息的工具&#xff0c;它通过将数据转化为无法直接理解的代码&#xff0c;从而防止未经授权的访问和泄露。本文将从企业数据加密软件的定义、种类以及一些具体…

Web自动化测试 —— capability参数配置

一、capability概述 capability是webdriver支持的标准命令之外的扩展命令&#xff08;配置信息&#xff09;配置web驱动属性&#xff0c;如浏览器名称、浏览器平台。结合selenium gird完成分布式、兼容性测试官网地址&#xff1a; https://www.selenium.dev/zh-cn/documentati…

ssm+vue的在线测试管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的在线测试管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

考完PMP,还能继续学什么?

大家好&#xff0c;我是老原。 最近有不少粉丝朋友来咨询我&#xff0c;项目经理有什么证书可以考&#xff1f;考过PMP了&#xff0c;还能学点啥来提升一下自己&#xff1f; 在我看来&#xff0c;项目管理可考的证书有很多&#xff0c;但很多项目经理也确确实实存在一些思维盲…

[学习笔记]ARXML - Data Format

参考AUTOSAR文档&#xff1a; https://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TPS_ARXMLSerializationRules.pdfhttps://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TPS_ARXMLSerializationRules.pdf 编码 arxml只允许使用UTF-8编码&#xff…

先来聊聊MySQL的binlog文件解析

先来聊聊MySQL的binlog文件解析 简介MySQL binlog的三种工作模式binlog相关参数mysqlbinlog解析工具 看腻了文章就来听听视频讲解吧&#xff1a;https://www.bilibili.com/video/BV1F94y1s7xe/ 简介 MySQL的binlog日志是用来记录MySQL对数据库有变更操作的记录&#xff0c;包…

TCP为什么是三次握手

TCP&#xff1a;Transmission Controll Protocol&#xff1a;传输控制协议&#xff1b;面向连接、可靠的、基于字节流的传输层协议 ​ 面向连接&#xff1a;客户端和服务端进行连接的协议 ​ 可靠性&#xff1a;保证信息能够从发送端到达接收端&#xff1b;这是…

四川玖璨电子商务有限公司抖音电商界的领跑者

在当今的电商市场中&#xff0c;四川玖璨电子商务有限公司以其卓越的表现和领先的地位&#xff0c;被广大消费者和业内人士所认可。作为抖音电商领跑者&#xff0c;该公司以其精湛的产品和服务&#xff0c;创新的营销策略&#xff0c;及客户至上的理念&#xff0c;成为这个充满…

Spring学习笔记12 面向切面编程AOP

Spring学习笔记11 GoF代理模式_biubiubiu0706的博客-CSDN博客 AOP(Aspect Oriented Programming):面向切面编程,面向方面编程. AOP是对OOP的补充延申.底层使用动态代理实现. Spring的AOP使用的动态代理是:JDK动态代理_CGLIB动态代理技术.Spring在这两种动态代理中灵活切换.如…

Lua多脚本执行

--全局变量 a 1 b "123"for i 1,2 doc "Holens" endprint(c) print("*************************************1")--本地变量&#xff08;局部变量&#xff09; for i 1,2 dolocal d "Holens2"print(d) end print(d)function F1( ..…