博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ 1072] 排列perm
阅读量:5316 次
发布时间:2019-06-14

本文共 637 字,大约阅读时间需要 2 分钟。

Link:

 

Solution:

一道直接next_permutation纯暴力就能过的题?

难道2007年时大家都不知道next_permutation这个函数吗

 

还是用复杂度更优的状压DP吧

设$dp[i][j]$为状态为$i$且对$d$余$j$的个数,

注意$dp[(1<<len)-1][0]$最后除去$\prod_{i=0}^9 cnt[i]!$,排除重复项

 

现在对状压DP状态的选取有了些感悟,

一般来说第一项表示状态,而第二项表示的一般都是于答案相关且包含答案情况的

(EX:求整除,表示当前对$d$的余数)

 

Code:

#include 
using namespace std;int T,d,len,cnt[15],dupli[15],dp[1200][1010];char s[15];int main(){ scanf("%d",&T); while(T--) { scanf("%s %d",s,&d);len=strlen(s); for(int i=0;i<15;i++) dupli[i]=1; memset(cnt,0,sizeof(cnt));memset(dp,0,sizeof(dp)); for(int i=0;i

 

转载于:https://www.cnblogs.com/newera/p/9119428.html

你可能感兴趣的文章
java的二叉树树一层层输出,Java构造二叉树、树形结构先序遍历、中序遍历、后序遍历...
查看>>
php仿阿里巴巴,php实现的仿阿里巴巴实现同类产品翻页
查看>>
Node 中异常收集与监控
查看>>
Excel-基本操作
查看>>
面对问题,如何去分析?(分析套路)
查看>>
Excel-逻辑函数
查看>>
面对问题,如何去分析?(日报问题)
查看>>
数据分析-业务知识
查看>>
nodejs vs python
查看>>
poj-1410 Intersection
查看>>
Java多线程基础(一)
查看>>
TCP粘包拆包问题
查看>>
SQL Server中利用正则表达式替换字符串
查看>>
POJ 1015 Jury Compromise(双塔dp)
查看>>
论三星输入法的好坏
查看>>
Linux 终端连接工具 XShell v6.0.01 企业便携版
查看>>
JS写一个简单日历
查看>>
Python 发 邮件
查看>>
mysql忘记密码的解决办法
查看>>
全面分析Java的垃圾回收机制2
查看>>