Permutation (HDU - 3811,状压 DP)

LM Studio 模型加载与转换实战指南:从GGUF格式到本地部署 本文提供了使用LM Studio加载与转换GGUF格式大语言模型的完整实战指南。详细阐述了为何GGUF格式是本地部署的最佳选择,并逐步指导用户如何将非GGUF模型(如Transformers格式)转换为GGUF格式,以及在LM Studio中进行加载、配置GPU卸载等关键优化,最终实现流畅的本地离线对话体验。 阅读详情

一.题目链接:

HDU-3811

二.题目大意:

第一行两个整数 n,m.

接下来 m 行,每行两个整数 ai,bi,表示第 ai 个数为 bi.

求有多少种1~n 的排列,至少满足 m 中的一个限制.

三.分析:

最暴力的做法就是二进制枚举此次该满足的限制,利用容斥的思想计算,但这样肯定是 TLE...

考虑答案的对立事件:1~n 的排列,不满足 m 中的任何一个限制.

记 dp[i][j] 表示排列放了 i 个数,数的使用状态为 j 的不满足 m 中的任何一个限制的方案数.

详见代码.

四.代码实现:

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const int M = (int)17;
const int inf = 0x3f3f3f3f;
const ll mod = (ll)1e9 + 7;

ll fac[M + 5];
int one[1<<M];
bool ban[M][M];
ll dp[2][1<<M];

int cal(int n)
{
    int cnt = 0;
    while(n)
    {
        cnt += (n & 1);
        n >>= 1;
    }
    return cnt;
}

int main()
{
    fac[0] = 1; for(int i = 1; i <= 17; ++i)    fac[i] = fac[i - 1] * i;
    for(int i = 0; i < (1<<17); ++i)    one[i] = cal(i);
    int T; scanf("%d", &T);
    for(int ca = 1; ca <= T; ++ca)
    {
        memset(ban, 0, sizeof(ban));
        int n, m; scanf("%d %d", &n, &m);
        for(int i = 0, a, b; i < m; ++i)    scanf("%d %d", &a, &b), ban[--a][--b] = 1;
        for(int i = 0; i < n; ++i)  dp[0 & 1][1<<i] = !ban[0][i];
        for(int i = 1; i < n; ++i)
        {
            for(int j = 0; j < (1<<n); ++j)
            {
                if(one[j] != i + 1) continue;
                dp[i & 1][j] = 0;
                for(int k = 0; k < n; ++k)
                {
                    if(!(j & (1<<k)) || ban[i][k])  continue;
                    dp[i & 1][j] += dp[i - 1 & 1][j^(1<<k)];
                }
            }
        }
        printf("Case %d: %lld\n", ca, fac[n] - dp[n - 1 & 1][(1<<n) - 1]);
    }
    return 0;
}

 

Zlib1.2.11源码编译(Win10+VS2019) 下载 下载网址: zlib Home Site 得到文件: 解压缩到“D:\SourceCodes\zlib-1.2.11” 使用CMake配置、生成并打开项目 将CMakeLists.txt拖入CMake,配置(Configure): 生成(Generate) 打开项目(Open Project),CMake调用VS2019打开项目 生成debug版本 构建项目ALL_BUILD。成功生成debug版本 在“D:\Sourc... 阅读详情

相关推荐

避坑指南:微信小程序蓝牙广播在iOS上的那些‘坑’(附serviceUuids传值解决方案)

本文深入解析微信小程序蓝牙广播在iOS平台上的开发难点,特别是`serviceUuids`传值解决方案。通过对比iOS与安卓的蓝牙协议实现差异,提供实战编码策略和硬件端配合方案,帮助开发者有效规避兼容性问题,提升蓝牙外围设备开发效率。

weixin_30316097的博客 423

hdu3811

/* 分析:     二进制DP。     第一道二进制DP,这题一段时间后要温习一下。     刚接触二进制DP,思路不是自己的,代码是看了一遍别人的思路后 凭印象和理解慢慢敲出来的。     自己感觉是二进制DP中的一道果题,有了二进制的思想,直接慢慢 推就行了-、-I。其它的就不啰嗦了: http://qianmacao.blog.163.com/blog/static/20

Ice_Crazy的专栏 904

Apifox CLI + Claude Skills:将接口自动化测试融入ai

基于 Apifox CLI、Claude Code以及Claude Skills组合,实现自然语言触发接口自动化测试。

wwz_0012的博客 598

HDU 3811 Permutation(状态压缩+记忆化搜索)

Permutation Time Limit: 6000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 559Accepted Submission(s): 259 Problem Description In combinatorics a perm...

LSD20164388的博客 411

autodl云服务器使用中的conda源报错

通过find path -name filename找到.condarc文件,在autodl服务器中,一般在/root/.condarc。为了利用jypyter打开conda虚拟环境运行,需要下载ipykenel。这个报错是源的问题,在通过源获取包元数据时出现了HTTP 429错误。通过conda换源解决。修改.condarc文件,命令: vim .condarc。但这样还不能解决问题,得把报错中有问题的源注释掉。通过以下命令添加清华镜像源。把报错的链接源注释如下。

Ty_kilig的博客 1584

VisDrone2019数据集实战:从下载到YOLO格式转换的完整指南

本文提供了一份完整的VisDrone2019数据集实战指南,详细介绍了从数据集下载、理解其独特的标注格式,到转换为YOLO模型可直接训练格式的全过程。通过清晰的代码示例和步骤讲解,帮助读者掌握处理复杂无人机视觉数据集的核心技能,为基于YOLO的目标检测模型训练做好准备。

weixin_29165725的博客 384

Hdu 3811 状态压缩 DP

题意:给定数N(N 满足m中的一个条件即正确。 算法:DP 状态压缩 分析: 首先不考虑条件的总方案数为N! 我们先算不满足条件的方案,因为m个条件之间是或者 关系,有重叠。算取反面较为简单。即将题意抽象成:       有N个排列有序的集合,每个集合中原有元素1…N,但是有一些元素不能取(即为m个条件限制),求从每个集合选出一个元素,且所有选出元素不重复的方案数。   因为N

BiuBiuBiu 665

SAP S4业务伙伴(BP)实战指南:从角色分配到数据同步的完整流程

本文详细解析了SAP S4业务伙伴(BP)功能,从基础概念到实战操作,涵盖角色分配、数据同步及常见问题排查。通过BP机制,企业可高效管理客户、供应商等多重身份,实现数据共享和动态切换,显著提升主数据管理效率。特别适合SAP实施顾问和ERP管理员参考。

y2z3a4b5c的博客 870

hdu3811 Permutation (状态压缩DP)

题目点我点我点我 题目大意:题目给出m对 a b,表示a位置放b,问你满足其中至少一对关系的总排列数。思路:表面上看似容斥定理,至于行不行我也没试过,用状态压缩DP就奇快,dp[i]记录的是第i种状态不符合a位置放b的情况的数目,dp[(1< #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm

blanKey的博客 573

把STM32MP135当单片机玩:实战SD卡脱机运行LED程序(基于MP135DK开发板)

本文详细介绍了如何在STM32MP135开发板上实现SD卡脱机运行LED程序,通过裸机开发方式(Bare Metal)利用HAL库完成GPIO控制,并解析了SD卡启动流程。内容涵盖工程创建、代码编写、SD卡烧录及常见问题排查,为开发者提供了一种高性能单片机开发方案。

weixin_33734785的博客 242

【UE5.3 Cesium for Unreal】GlobePawn编译实战:从源码修改到功能实现

本文详细介绍了在UE5.3中为Cesium for Unreal插件编译和集成非官方增强组件GlobePawn的完整实战流程。从获取源码、准备资产文件、部署项目结构,到逐行修改代码适配工程并解决典型编译错误,最终实现在三维地球上实现类似Google Earth的丝滑鼠标交互体验。

weixin_29011667的博客 307

hdu 3811 状态压缩

状态压缩

zxf654073270的专栏 707

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

孤寒者的博客 1万+

HDU3811 Permutation —— 状压DP

题目链接:https://vjudge.net/problem/HDU-3811 Permutation Time Limit: 6000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 496Accepted Submission(s): 23...

alince20008的博客 201

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Permutation(HDU-3811)(状压DP)

In combinatorics a permutation of a set S with N elements is a listing of the elements of S in some order (each element occurring exactly once). There are N! permutations of a set which has N elements...

菜鸡的博客 268

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HDU 3811 Permutation 状压dp

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3811 Permutation Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 问题描述 In combinatorics a permutation of a set S with N...

weixin_30597269的博客 113

hdu 3811 Permutation

Problem Description In combinatorics a permutation of a set S with N elements is a listing of the elements of S in some order (each element

喵呜的Blog 1253

HDU 3811 Permutation 记忆化搜索 状态压缩 DP

题意: 求1-N的排列数但是有限定条件,AI,BI,该排列要满足第AI位为Bi。 算法: 1.裸的DFS 果断TLE。。时间复杂度为N! View Code #include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> #include&...

weixin_30784945的博客 184

hdu3811 Permutation

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3811 题意:给定1~N个数,求出至少满足一个条件的排列总数 m个条件如下:Ai 个数为Bi (0<i <m) 分析:“本意是一个复杂的容斥原理,但是开场不久被秒杀,才发现又一个比较简单的状态DP方法” 这是武大预赛解题报告上的原句。 确实,用容斥原理来解决确实十分蛋疼,最直接就是满...

weixin_30326515的博客 89

HDU 3811 DP状态压缩

算法: dp[state][n]表示该状态前N位不是完美排列的个数。 步骤: 1.初始化第 0 位值 2.第i位从第i-1位推出,每一位,枚举(1<<N)种状态。 3.答案就是N!- dp[(1<<N)-1][N-1] View Code #include<stdio.h> #include<stdlib.h> #inc...

weixin_30549657的博客 146

Permutation HDU - 6235

2018TYUT暑期ACM模拟赛(6) Permutation HDU - 6235 题意&amp;思路:给你n表示n个数,给出一个派来,排列的要求是pi%(pi-pi(i-2))==0。很巧妙,只要pi-pi-2=1 也就是pi%1==0。只要隔二加一即可。 #include&lt;iostream&gt; #include&lt;cstdio&gt; using namespace s...

DeathYmz的博客 685

HDU - Permutation(构造,思维)

题目传送 题意: 给你一个排列n(也就是元素从1到n),现在让你构造一下这个数组,使得a[i] % | a[i] - a[i-2] | == 0(a[i] - a[i-2]的绝对值,i >= 3)。 思路: 如果我使得a[i] - a[i-2] == 1,那么不就万能啦?! AC代码 #include <bits/stdc++.h> inline long long read(){char c = getchar();long long x = 0,s = 1; while(c <

give it a try 222

Limited Permutation HDU - 6044 多校1

第一次接触到输入挂namespace IO //超级读入挂 { const int len=4e7;char buf[len];int sz,p; //4e7大概大小为44M,可以放得下38M的输入 void begin(){p=0;sz=fread(buf,1,le

曹讽 356

Tree and Permutation HDU - 6446

题目大意: 给你一颗树,然后让你求n!种序列中,所以得序列和,序列和定义为:A1,A2,A3……AN=A1A2+A2A3+…….An-1An 分析: 首先,对于题目给出的n-1条边,我们可以这样考虑,去掉这条边后,将树分成了两部分,一部分有M个节点,另一部分有(N-M)个节点,所以我们必须在这两块中任意选择一个节点才会进过这条边,所以,有N*M*2中选择,然后又N!个序列所以对于E这条边,一...

CURRYWANG97的博客 776

HDU 5789 Permutation

给定一棵大小为n的有根树,点的标号为1,...,n。现在要把树转化成一个序列,要求一个点的后代在序列中先出现,求所有满足条件的序列的逆序对数之和。

ShinFeb's Archieve 1911
上一篇: Lineup the Dominoes(UCF Local Programming Contest 2016 I,状压 DP)
下一篇: Hunter (HDU - 4568,SPFA + 状压 DP)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值