6这个数据非常小,而且hash只能用来匹配,并不能检验完全不匹配,对于处于对立面的小数据就需要使用大型暴力容斥

但这个题超级卡hash,不知道是数据的锅还是题目本身的性质,直接上双hash都过不了

首先hash是被hash的数规模越小越不容易错,所以对于枚举每个数容斥不如先容斥再枚举每个数,这样容斥的位数确定就可以单独使用hash,规模会小很多,所以就是用了hash挂表。先正常用long long自然溢出,然后再用一个模数来挂

码:

#include<iostream>
#include<cstdio>
using namespace std;
#define jz 1000003
#define P 2150527
int lin,n,k,er[9],xia[P+10],hou[100005];
long long a[100005][9],sum[P],c[9][9],daan,v[100005];
int vis[P];
long long work(int o)
{int i,j,ans=0,k,tot=0;for(i=1;i<=n;i++){long long tmp=0;for(j=0;j<6;j++)if(er[j]&o)tmp=tmp*jz+a[i][j+1];j=tmp%P;if(j<0)j+=P;else j++;if(vis[j]!=o)vis[j]=o,xia[j]=0;for(k=xia[j];k;k=hou[k]){if(v[k]==tmp){ans+=sum[k];sum[k]++;break;}}if(!k){v[++tot]=tmp;sum[tot]=1;hou[tot]=xia[j];xia[j]=tot;}}return ans;
}int main()
{int i,j;scanf("%d%d",&n,&k);c[0][0]=1;for(i=1;i<=6;i++){c[i][0]=1;for(j=1;j<=i;j++)c[i][j]=c[i-1][j-1]+c[i-1][j];}er[0]=1;for(i=1;i<=7;i++)er[i]=er[i-1]*2;for(i=1;i<=n;i++)for(j=1;j<=6;j++)scanf("%lld",&a[i][j]);for(i=0;i<er[6];i++){int lin=0;for(j=0;j<6;j++)if(i&er[j])++lin;if(lin<k)continue;long long flg=1;if((lin&1)!=(k&1))flg=-1;daan+=work(i)*c[lin][k]*flg;        }printf("%lld",daan);}

bzoj3198 [sdoi2013] spring 哈希挂表+容斥相关推荐

  1. bzoj3129 [Sdoi2013]方程 容斥+扩展lucas

    调了两天,全是低级错误和脑子问题 对于>=的,直接用m减掉 对于<=的,一开始想枚举减多少,但发现对于每个枚举的值是独立的,所以是1e9的 然后由于>=和<=是两个对立的情况, ...

  2. Leetcode 552.学生出勤记录‖ 动态规划+容斥

    题目链接:传送门 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':P ...

  3. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

  4. Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理,子集反演)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理) Problem n≤1 ...

  5. P3175 [HAOI2015]按位或(Min - Max容斥,FMT,概率期望,全网最清晰的题解!)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P3175 Prob ...

  6. hdu1695(莫比乌斯)或欧拉函数+容斥

    题意:求1-b和1-d之内各选一个数组成数对.问最大公约数为k的数对有多少个,数对是有序的.(b,d,k<=100000) 解法1: 这个能够简化成1-b/k 和1-d/k 的互质有序数对的个数 ...

  7. hdu 1796 How many integers can you find 容斥定理

    一开始看 这里 这个文章博主写得很好. 当举容斥定理的所谓 奇数为负 偶数为正的时候. 我直接就认为是 a*b 了.实际上是lcm(a,b). 由于博文中的因子都是互素的(素数之间).所以lcm(a, ...

  8. 【GDOI2016模拟3.16】幂(容斥 + 模型复杂转化)

    [GDOI2016模拟3.16]幂 \(X\in[1,A],Y\in[1,B]\),问:\(x^y\)的不用取值个数. \(A,B\)都是\(10^9\)级别. 然后我们开搞. 首先,假设一个合法的\ ...

  9. BZOJ2301:[HAOI2011]Problem b(莫比乌斯反演,容斥)

    Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

最新文章

  1. 选择之后触_如果有朋友在做选择时左右为难,我应该该给出什么样的建议
  2. Docker | makefile错误提示 *** missing separator. Stop.
  3. 使用WSW将Nginx创建为Windows系统服务
  4. Uncaught SyntaxError - unexpected end of input
  5. jquery ui仿腾讯web qq界面desktop酷炫特效
  6. linux ftp脚本
  7. 吴恩达机器学习week2
  8. 【RobotStudio学习笔记】(五)工具数据
  9. Mysql 存储类型范围
  10. 结构体typedef struct和struct
  11. Note8 android 9 root,三星Note8国行 root N9500 9.0 root
  12. java 3des解密_Java进行3DES加密解密详解
  13. 01—C语言基本语句
  14. 怎样消掉计算机桌面阴影,怎么去掉桌面阴影 电脑桌面图标出现蓝色阴影怎么办...
  15. 电信设备商进入企业网市场需适应不同渠道模式(转载)
  16. Android 仿微信小程序开屏页加载loading
  17. 第一章:python入门储备知识
  18. 正好股票杠杆大盘在这个位置只有两个重要买点
  19. 最新视频连接解析地址
  20. 空洞卷积(dilated convolution)理解

热门文章

  1. c语言基础程序设计报告,c语言程序设计基础课程设计报告.doc
  2. cmake 构建路径_基于CMake构建系统的MLIR Example扩展
  3. (组合数学笔记)Pólya计数理论_Part.3_置换群及其性质
  4. 运维学python用不上_运维工程师为什么要学python?
  5. 【python基础知识】对文本数据库的一些基本操作
  6. UnhandledPromiseRejectionWarning报错send()的处理
  7. 可以自定义公式的计算器_Excel万能个税计算器,税率对比显示,自定义增税点自动计算结果...
  8. D5000工作站服务器型号,【戴尔Precision T5820参数】戴尔Precision T5820系列工作站参数-ZOL中关村在线...
  9. android socket 代理服务器,Android 使用Socket进行服务器通信
  10. python try exception类_python——异常类型