FWT+高维前缀和:Gym - 103202M

https://vj.imken.moe/contest/597216#problem/F

考虑两个人的集合分别为 i , j i,j i,j,那么我们令 f ( i ⊗ j ) + + f(i\otimes j)++ f(ij)++,其中 f ( s ) f(s) f(s) 表示两个人不同集合恰好 s s s,显然 f ( s ) f(s) f(s) 可以FWT求。

假设 g ( t ) g(t) g(t) 表示选集合为 t t t 有多少个不同的对数,显然有 g ( t ) = ∑ s & j ≠ ∅ f ( s ) = n ( n − 1 ) 2 − ∑ s ⊆ U − t f ( s ) g(t)=\sum_{s\& j\neq \empty}f(s)=\frac {n(n-1)}2-\sum_{s\subseteq U-t}f(s) g(t)=s&j=f(s)=2n(n1)sUtf(s),因此我们对 f f f 做一遍高维前缀和即可。

#include<bits/stdc++.h>
using namespace std;
#ifdef LOCAL#define debug(...) fprintf(stdout, ##__VA_ARGS__)
#else#define debug(...) void(0)
#endif
#define int long long
inline int read(){int x=0,f=1;char ch=getchar(); while(ch<'0'||
ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
#define Z(x) (x)*(x)
#define pb push_back
#define fi first
#define se second
//srand(time(0));
#define N 2000010
//#define M
//#define mo
int n, m, i, j, k, T;
int g[N], a[N], ans; 
char str[N]; struct FWT {int f[N], n, o, i, j, k; void XOR(int x) {for(k=1, o=2; o<=n; o<<=1, k<<=1) {for(i=0; i<n; i+=o) for(j=0; j<k; ++j) {f[i+j]+=f[i+j+k]; f[i+j+k]=f[i+j]-2*f[i+j+k]; if(x==-1) f[i+j]/=2, f[i+j+k]/=2;  }}}void Mul() {for(i=0; i<n; ++i) f[i]*=f[i]; }void work(int p) {f[0]-=p; for(i=0; i<n; ++i) f[i]/=2; }
}fwt;signed main()
{#ifdef LOCALfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);#endif
//	T=read();
//	while(T--) {
//
//	}n=read(); m=read(); k=read(); fwt.n=(1<<m); for(i=1; i<=n; ++i) {scanf("%s", str+1); for(j=1; j<=m; ++j) if(str[j]=='B') a[i]|=(1<<j-1); fwt.f[a[i]]++; }fwt.XOR(1); fwt.Mul(); fwt.XOR(-1); fwt.work(n); for(i=0; i<(1<<m); ++i) g[i]=fwt.f[i]; for(i=0; i<(1<<m); ++i) debug("%lld ", g[i]); debug("\n"); for(j=0; j<m; ++j)for(i=0; i<(1<<m); ++i) if(i&(1<<j)) g[i]+=g[i-(1<<j)]; for(i=0; i<(1<<m); ++i) debug("%lld ", g[i]); debug("\n"); for(i=0; i<(1<<m); ++i) if(i<(1<<m)-i) swap(g[i], g[(1<<m)-1-i]); for(i=0; i<(1<<m); ++i) debug("%lld ", g[i]); debug("\n"); for(i=1; i<(1<<m); ++i) g[i]=n*(n-1)/2-g[i]; for(i=1; i<(1<<m); ++i) if(g[i]>=k) ++ans; printf("%lld", ans); return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/193394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT 的 18 种玩法,你还不会用吗?

你确定&#xff0c;你会使用 ChatGPT 了吗&#xff1f; 今天给大家整理了 18 种 ChatGPT 的用法&#xff0c;看看有哪些方法是你能得上的。 用之前我们可以打开R5Ai平台&#xff0c;可以免费使用目前所有的大模型 地址&#xff1a;R5Ai.com 语法更正 用途&#xff1a;文章…

Java编程强化练习(二)

表达式计算&#xff08;支持空格&#xff0c;连乘&#xff0c;连除&#xff09;&#xff08;选做题&#xff0c;不计分&#xff09; 【问题描述】 从标准输入中读入一个整数算术运算表达式&#xff0c;如5 - 1 * 2 * 3 12 / 2 / 2 。计算表达式结果&#xff0c;并输出。 …

【vue】尚硅谷vue3学习笔记

Vue3快速上手 1.Vue3简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;海贼王&#xff09;耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者github上的tags地址&#xff1a;https://github.com/vuejs/vue-next/release…

团队可能出现的问题以及应对方案

问题&#xff1a; 1、办公室政治&#xff1a;我的官比你大&#xff0c;你必须听我的&#xff0c;你的想法不重要&#xff0c;这样大家就不敢说话&#xff0c;表面和谐背地里勾心斗角。 2、信息不畅&#xff1a;正常的组织信息是流动的&#xff0c;因为有办公室政治大家就阻止…

使用tensorrt加速深度学习模型推断

使用tensorrt加速深度学习模型推断 1.import以及数据加载、构建engine函数2.导入官方模型及CIFAR100数据集3.不采用tensort的推断时间4.采用tensort加速—使用tensorrt 库4.1 导出onnx模型4.2 生成tensorrt engine 文件4.3 deserialize4.4 推断 5.采用tensort加速—使用torch2t…

mysql(八)docker版Mysql8.x设置大小写忽略

Mysql 5.7设置大小写忽略可以登录到Docker内部&#xff0c;修改/etc/my.cnf添加lower_case_table_names1&#xff0c;并重启docker使之忽略大小写。但MySQL8.0后不允许这样&#xff0c;官方文档记录&#xff1a; lower_case_table_names can only be configured when initializ…

SpringBoot集成knife4j

1&#xff09;添加knife4j的依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version> </dependency>SpringBoot的版本&#xff1a; <pa…

机器人与3D视觉 Robotics Toolbox Python 一 安装 Robotics Toolbox Python

一 安装python 库 前置条件需要 Python > 3.6&#xff0c;使用pip 安装 pip install roboticstoolbox-python测试安装是否成功 import roboticstoolbox as rtb print(rtb.__version__)输出结果 二 Robotics Toolbox Python样例程序 加载机器人模型 加载由URDF文件定义…

【python】python列表的用法记录

文章目录 序言1. 列表的创建2. 列表的访问3. 列表的更新4. 列表的删除5. 列表的元素查找6. 列表的脚本操作符7. 列表的函数/方法8. 列表的一些其他操作 序言 总结字典的常见用法&#xff0c;以备查阅 1. 列表的创建 列表是python中最常用的数据类型&#xff0c;其数据项不需要…

【算法每日一练]-图论(保姆级教程篇12 tarjan篇)#POJ3352道路建设 #POJ2553图的底部 #POJ1236校园网络 #缩点

目录 POJ3352&#xff1a;道路建设 思路&#xff1a; POJ2553&#xff1a;图的底部 思路&#xff1a; POJ1236校园网络 思路&#xff1a; 缩点&#xff1a; 思路&#xff1a; POJ3352&#xff1a;道路建设 由于道路要维修&#xff0c;维修时候来回都不能走&#xff0c;现要…

MDK提示:在多字节的目标代码中,没有此Unicode 字符可以映射到的字符

MDK警告提示在多字节的目标代码中&#xff0c;没有此Unicode 字符可以映射到的字符 警告提示&#xff1a; 在写MDK的工程代码时&#xff0c;发现代码中引入的头文件前方出现一些红色的叉叉&#xff0c;但是编译工程并不报错&#xff0c;功能也能正常执行的&#xff0c;只是提…

JS利用时间戳倒计时案例

我们在逛某宝&#xff0c;或者逛某东时&#xff0c;我们时常看到一个倒计时&#xff0c;时间一到就开抢&#xff0c;这个倒计时是如何做的呢&#xff1f;让我为大家介绍一下。 理性分析一下&#xff1a; 1.用将来时间减去现在时间就是剩余的时间 2.核心&#xff1a;使用将来的时…

工业机器视觉megauging(向光有光)使用说明书(十五,轻量级的visionpro)

程序&#xff08;软件&#xff09;的一些不足和建议&#xff1a;&#xff08;后续会跟进&#xff09; 不足&#xff1a;&#xff08;如果你发现了&#xff0c;谢谢及时提出来&#xff09; 1&#xff0c;找线工具有噪点抑制功能&#xff1b;blob跟随工具&#xff0c;匹配跟随工…

C指针介绍(1)

文章目录 每日一言指针的简单介绍内存和地址指针在内存中的存储指针的定义和声明泛型指针 指针的关系运算算数运算关系运算 结语 每日一言 ⭐「 一声梧叶一声秋&#xff0c;一点芭蕉一点愁&#xff0c;三更归梦三更后。 」–水仙子夜雨-徐再思 指针的简单介绍 C语言指针是C语…

人工智能轨道交通行业周刊-第67期(2023.11.27-12.3)

本期关键词&#xff1a;列车巡检机器人、城轨智慧管控、制动梁、断路器、AICC大会、Qwen-72B 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro…

python调用打印机并打印

【01获取打印机列表】 要获取Python中的打印机列表&#xff0c;可以使用win32print模块&#xff08;适用于Windows系统&#xff09;或cups模块&#xff08;适用于Linux和macOS系统&#xff09;。 以下是使用这两个模块分别获取打印机列表的示例代码&#xff1a; **在Windows…

算法工程师面试八股(搜广推方向)

文章目录 机器学习线性和逻辑回归模型逻辑回归二分类和多分类的损失函数二分类为什么用交叉熵损失而不用MSE损失&#xff1f;偏差与方差Layer Normalization 和 Batch NormalizationSVM数据不均衡特征选择排序模型树模型进行特征工程的原因GBDTLR和GBDTRF和GBDTXGBoost二阶泰勒…

React使报错不再白屏

如果代码中出现问题导致报错&#xff0c;通常会使页面报错&#xff0c;导致白屏 function Head() {// 此时模拟报错导致的白屏return <div>Head --- {content}</div> } export default () > {return (<><div>下面是标题</div><Head />…

若依框架分页

文章目录 一、分页功能解析1.前端代码分析2.后端代码分析3. LIMIT含义 二、自定义MyPage,多态获取total1.定义MyPage类和对应的调用方法 一、分页功能解析 1.前端代码分析 页面代码 封装的api请求 接口请求 2.后端代码分析 controller代码 - startPage() getDataTable(…

yolo.txt格式与voc格式互转,超详细易上手

众所周知,yolo训练所需的标签文件类型是.txt的,但我们平时使用标注软件(labelimage等)标注得到的标签文件是.xml类型的,故此xml2txt之间的转换就至关重要了,这点大家不可能想不到,但是网上的文章提供的代码大多数都是冗余,或者难看,难以上手,故此作者打算提供一个相对…