考虑暴力状压 DP。

按行 DP,记录列哪些被选过,可以做到 \(O(2^kk^2)\)。

注意到某一列扫完了之后这一列选没选过不重要,可以减少这里的状态。

简单优化一下,每次选择最少的一列,使这一列一定被减少一。

然后就可以过了,卡不满。

Code
const int N=1e5+5,mod=1e9+7;
int x[60],y[60],a[60],b[60],v[60],val[60][60],fac[N];
int ca[60],cb[60];
unordered_map<ll,int> f[60],g[60];
int main() {
int n=read(),k=read();
FOR(i,1,k) a[i]=x[i]=read(),b[i]=y[i]=read(),v[i]=(0ll+mod+read()-1)%mod;
fac[0]=1;
FOR(i,1,n) fac[i]=1ll*fac[i-1]*i%mod;
sort(a+1,a+k+1),sort(b+1,b+k+1);
int al=unique(a+1,a+k+1)-a-1,bl=unique(b+1,b+k+1)-b-1;
FOR(i,1,al) FOR(j,1,bl) val[i][j]=-1;
FOR(i,1,k) {
x[i]=lower_bound(a+1,a+al+1,x[i])-a;
y[i]=lower_bound(b+1,b+bl+1,y[i])-b;
val[x[i]][y[i]]=v[i],ca[x[i]]++,cb[y[i]]++;
}
f[0][0]=1;
while(1) {
int id=0;
FOR(i,1,bl) if(cb[i]&&(id==0||cb[i]<cb[id])) id=i;
if(id==0) break;
FOR(i,1,al) if(val[i][id]!=-1&&ca[i]) {
ca[i]=0;
vi S;
ll all=((1ll<<k)-1)<<1;
FOR(j,1,bl) if(val[i][j]!=-1) {
S.pb(j),cb[j]--;
if(cb[j]==0) all^=(1ll<<j);
}
FOR(j,0,k) for(auto u:f[j]) {
g[j][u.fi&all]=(g[j][u.fi&all]+u.se)%mod;
for(int l:S) if(!(u.fi&(1ll<<l)))
g[j+1][(u.fi|(1ll<<l))&all]=(g[j+1][(u.fi|(1ll<<l))&all]+
1ll*u.se*val[i][l]%mod)%mod;
}
FOR(j,0,k) swap(f[j],g[j]),g[j].clear();
}
}
int ans=0;
FOR(i,0,k) for(auto u:f[i]) ans=(ans+1ll*fac[n-i]*u.se%mod)%mod;
printf("%d\n",ans);
}

CF468E Permanent 题解的更多相关文章

  1. [题解] Codeforces 468 E Permanent 折半,DP,图论

    题目 建立一个二分图,左右各n个点,在左边的第x个点和右边的第y个点之间连一条权值为\(a_{x,y}\)的边.根据"积和式"的定义,我们是要在矩阵中选择n个位置,满足任意两个位置 ...

  2. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  3. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  4. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  5. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  6. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  7. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  9. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  10. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. [C++标准模板库:自修教程与参考手册]关于vector

    什么是vector 可以这样认为,vector就是一个动态的数组,其中的元素必须具备assignable(可赋值)和copyable(可拷贝)两个性质. vector的一些重要的性质 vector支持 ...

  2. maven打包出现Failed to execute goal xxx.plugins:maven-compiler-plugin:3.7.0:compile.......:Fatal error compiling解决方法

    起初在给项目打包时出现了这个错: 网上查了很多资料,都说JDK配置不对,我检查了一下,发现明明都一样. 为了获取更详细的报错信息,我决定用命令行的打包方式来编译: cd进去要打包的这个目录,用命令行的 ...

  3. 前端向后端发送请求(FormData),你们不要吐槽我,有的时候我也不想写注释

    JSON对象转成formData对象,formData对象转成JSON 在向后端请求时,如果上传的数据里存在file文件对象,需要用到表单提交,这时候我们需要将JSON对象,转成formData对象, ...

  4. 如何解决github下载很慢的问题?(已经解决)

    目的是为了解决GitHub致命的下载速度慢的问题 方法 通过码云来导入github,通过码云下载 1.在github上面找到自己想要的项目 这一步略过 2.复制github项目上面的网页链接 3.打开 ...

  5. 不止ChatGPT,谷歌云 AI 方案早已厉兵秣马!

    近日 ChatGPT 爆火,掀起热议,能聊天能写代码,还能写策划稿,AI 似乎已逐渐变得无所不能. 不过在 AI 对话上,谷歌早在17年就提出了 Dialogflow 这一AI对话平台.相比起 Cha ...

  6. JS基础简介

    JS基础简介 一.JS简介 JavaScript(简称'js')是一种具有函数优先的轻量级.解释型或及时编译型的编程语言.虽然它是作为开发web页面的脚本语言而出名,但是它也被用到了很多的非浏览器环境 ...

  7. Quartz.Net 官方教程 Best Practices

    最佳实践 JobDataMap 建议只存储基本数据(含String),避免序列化问题 作业执行期间,JobDetail和Trgger的底层共用一个JobDataMap 实例,因此Trigger的数据会 ...

  8. Linux 安装 CentOS7

    1.linux 下载 http://mirrors.aliyun.com/centos/7/isos/x86_64/ centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 (aliy ...

  9. Vue18 过滤器

    1 简介 过滤器(filter)是输送介质管道上不可缺少的一种装置,大白话,就是把一些不必要的东西过滤掉,过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理,我们也可以理 ...

  10. Google_MapReduce中文版

    笔者最近在看MIT6.824的lab1,实验内容是实现一个简易的MapReduce.本篇文章是MapReduce论文的中文翻译. @Author:Akai-yuan @更新时间:2023/2/13 摘 ...