首页 > 其他分享 >代码源:互不侵犯(SCOI,状压DP)

代码源:互不侵犯(SCOI,状压DP)

时间:2023-10-07 11:12:00浏览次数:36  
标签:int 状压 long init SCOI DP

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
long long f[10][1024][100];
int v[1024];
void init()
{
	for(int i=1;i<1<<n;++i)
	{
		int c=0;
		for(int j=i;j;j=j&(j-1)) c++;
		v[i]=c;  
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>m;
	init();
	f[0][0][0]=1;
	
	for(int i=1;i<=n;++i)
	 for(int j=0;j<1<<n;++j)
	  for(int k=0;k<=m;++k)
	  if(f[i-1][j][k])
	  for(int l=0;l<1<<n;++l)
	  if(!(l&j)&&!(l<<1&j)&&!(l>>1&j)&&!(l<<1&l))
	  f[i][l][k+v[l]]+=f[i-1][j][k];
	long long res=0;
	for(int i=0;i<1<<n;++i) res+=f[n][i][m];
	cout<<res<<'\n';
}

标签:int,状压,long,init,SCOI,DP
From: https://www.cnblogs.com/ruoye123456/p/17745824.html

相关文章

  • UDP协议
    一、UDP协议UDP的特点:无连接,不可靠传输,面向数据报,全双工。无连接,在传输数据的过程中,只需要知道对方的IP地址和端口号,不需要建立双发的连接才能传输数据。不可靠传输,UDP只负责将数据传出去,至于对方有没有收到数据UDP是不理会的。面向数据报,应用层给UDP多长的报文,UDP就发送多长......
  • AC自动机与dp详解
    AC自动机与dp前言:本篇题解隶属于https://www.cnblogs.com/linghusama/p/17742870.html部分首先一定要理解fail跳的原理,不然很难理解第二维为什么要设置。首先给出大致的雏形,dp_i_j表示目前拼凑出长度为i的字符串,且ac自动机上的指针在j位置时的字符串方案数。适用题型:对于求......
  • 树形DP
    目录树形DP例题洛谷P1352没有上司的舞会树形DP在树上跑DP例题洛谷P1352没有上司的舞会......
  • 一些转移细节还不太清楚的线性dp
    D.RoundSubset老早写过了,但是边界考虑不太清楚https://codeforces.com/problemset/problem/837/D#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=205,M=30*200;intn,k,ans,t2[N],t5[N],f[2][N][M];//f[i][j]:选了i个,5......
  • 背包DP
    题目背景:你有一个容量为M的背包,有N个物品,每个物品的重量和价值分别为w[i]和c[i],现在选一些物品放入这个背包使装入的价值最大1.01背包(每件物品只有1件):倒序枚举重量,O(N^2) E(i,n){ cin>>w>>c; for(intj=m;j>=w;--j)f[j]=max(f[j],f[j-w]+c); }2.完全背包(每件物品......
  • Python使用socket的UDP协议实现FTP文件服务
    简介本示例主要是用Python的socket,使用UDP协议实现一个FTP服务端、FTP客户端,用来实现文件的传输。在公司内网下,可以不适用U盘的情况下,纯粹使用网络,来实现文件服务器的搭建,进而实现文件的网络传输。同时用来理解Python的socket使用。服务端运行起来后,会把服务器上面的指......
  • 算法之动态规划(DP)求解完全背包问题(状态转移式方程推导)
    完全背包是01背包的进阶版。在这里补充一下代码随想录的完全背包状态转移式的推导。有兴趣的可以先看一看原版。状态转移方程状态:dp[i][j]选择前i个物品,容量为j的背包时所选物品价值总和最大。状态转移:dp[i][j]=max(dp[i-1][j-k*v[i]]+k*w[i])(k=0,1,2,3...)(j-k*v......
  • 10.5 认识XEDParse汇编引擎
    XEDParse是一款开源的x86指令编码库,该库用于将MASM语法的汇编指令级转换为对等的机器码,并以XED格式输出,目前该库支持x86、x64平台下的汇编编码,XEDParse的特点是高效、准确、易于使用,它可以良好地处理各种类型的指令,从而更容易地确定一段程序的指令集。XEDParse库可以集成到许多不......
  • DP提高专项3
    本场比赛难度吧不大,建议开题顺序为\(T2-T1-T3\)。\(T2\)题目描述有\(n\)个高楼排成一行,每个楼有一个高度\(h_i\)。称可以从楼\(i\)跳到楼\(j\),当\(i\),\(j\)(\(i<j\))满足以下三个条件之一:\(i+1=j\)\(\max(h_{i+1},h_{i+2},\cdots,h_{j-1})<\min(h_i,h_j......
  • 【DP】ABC273F Hammer 2 题解
    ABC273F一道比较板的区间\(\text{dp}\)。先对坐标离散化,令离散化数组为\(v\)。令\(f_{i,j}\)表示能走到区间\([v_i,v_j]\)的最短路程,显然\(f\)数组初始为\(inf\)。但发现这样无法转移,可以再增加一维\(k\in\{0,1\}\),表示此时在\([v_i,v_j]\)的\(v_i/v_j\)处。......