cf 662C Binary Table

【学习小结】FWT 快速瓦尔时变换和子集反演 FWT 快速瓦尔时变换 yyb的总结还是很到位! or和and运算非常好理解,可以用子集反演直观的证明。当然也可以用yyb博客中的归纳法证明。 不过抑或是怎么构造的,还不知道。只知道证明是对的。 对于IFWT,直接考虑怎么把多的贡献减掉,或者解个方程变换回原来的值 对于and和or的IFWT,还可以从子集反演的角度想: 因为FWT不是多项式卷积的形式,所以它的点值具有特殊意义,总之要相乘后恰好等... 阅读详情

大意:
给出一个n*m的01矩阵,你可以进行任意多次操作,每次操作可以选择一行或者一列将其取反,求最后矩阵中最多能有多少个1。



ling老师说,这叫子集反演,好像是后i位跟k异或了然后怎么样的一类题。

比如说这个就是dp[i][j][k]表示有多少个数,其低i位异或k后恰有j个1,并且高位完全与k相同。

dp[i][j][k] = dp[i-1][j][k] + dp[i-1][j-1][k^(1 << i)]

因为前面跟k相同的异或出来肯定是0,跟k^(1<< i)相同的肯定是1,所以就这样转移。

统计答案的时候,如果一列可以有i个1那么也可以有n-i个1,取个min即可。

//QWsin
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=20+2;
const int maxm=100000+10;
const int maxS=(1<<21)+10;

int dp[maxn][maxS];
char s[maxn][maxm];

int n,m;
inline int getnum(int pos)
{
    int ret=0;
    for(int i=n;i>=1;--i) ret=ret*2+s[i][pos]-'0';
    return ret;
}

int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;++i) scanf("%s",s[i]+1);

    for(int i=1;i<=m;++i) ++dp[0][getnum(i)];
    for(int i=1;i<=n;++i)
        for(int j=i;j>=1;--j)
            for(int k=0;k<1<<n;++k)
                dp[j][k]+=dp[j-1][k^(1<<(i-1))];

    int ans=n*m;
    for(int k=0;k<1<<n;++k)
    {
        int cnt=0;
        for(int i=1;i<n;++i) cnt+=dp[i][k]*min(i,n-i);
        ans=min(cnt,ans);
    }
    cout<<ans;
    return 0;
}
Axure RP 10表单数据提交制作 本文介绍了如何使用Axure RP 10实现表单数据提交。 阅读详情

相关推荐

mipi deskew原理理解

何为skew, 从字面意思看是倾斜了,不对齐了;放在mipi的传输中意思就是clock lane和data lane 及data lane与data lane间出现了相位差;一旦出现相位差,大家采样数据时就可能不在同一个节拍上,会出现传输错误。所以就要做deskew,通过做deskew来使得大家重新对齐,在同一个节奏下传输数据. 一般当data rate高于1.5G时建议开启deskew。

lx123010的专栏 8105

子集反演 & 高维前缀和 & sos dp 学习笔记

设gS表示集合S的答案,fS为S的子集的答案和。fST∈S∑​gTgST∈S∑​−1∣S∣−∣T∣fT本质上就是容斥原理,可感性理解,证明略(给你你也记不住)。于是便可以通过求f得到g。

deng_cheng_yu的博客 1520

自动驾驶仿真(六)—— SIL软件在环仿真测试

自动驾驶仿真六—— SIL软件在环仿真测试1. 在环仿真测试2. SIL软件在环仿真测试2.1 模型配置参数2.2 S function生成实现2.3 结果对比3. 参考学习的书目教材 博主前面的博文已经简要介绍了Carsim、Prescan 与 Simulink 在 “V”型开发流程的一些应用,现今成熟的汽车控制系统软件都是以(Model Based Design,MBD)来开发,它以图形化的方式表达复杂的逻辑、代码可读性、可移植性、开发调试便利程度都大大增强,同时利用成熟的代码生成工具链,也避免了手工代

zhudj08的博客 8655

【WC2019】数树【子集反演】【结论】【树形dp】【生成函数】【函数求导】【多项式全家桶】

这人怎么了?

Lstdo的博客 421

信创环境下,软件测试如何破局?

毕竟,在自主可控的道路上,每一行通过测试的代码,都在为信创产业的未来添砖加瓦。未来,测试工程师不仅要验证软件在信创环境的可用性,更要基于国产软硬件的特性,推动软件进行 “原生设计”—— 例如,针对国产 CPU 的多核架构优化代码,基于国产数据库的索引机制提升查询效率。某政务云平台的测试数据显示,在 “飞腾芯片 + 麒麟操作系统” 环境下,系统的并发处理能力较传统环境下降约 15%,测试团队通过优化软件的线程调度逻辑,最终将性能损失控制在 5% 以内 —— 这正是信创性能测试的价值所在。

weixin_45608163的博客 886

华为昇腾910B3显卡实战:手把手教你部署DeepSeek 32B模型(含Bge-zh向量库配置)

本文详细介绍了在配备8张华为昇腾910B3显卡的服务器上,从零部署DeepSeek 32B大模型推理服务的完整实战方案。内容涵盖环境准备、模型配置、多卡负载分配,并集成了BGE中文向量模型与ChromaDB向量数据库,最终通过Open WebUI构建了可投入生产的企业级AI应用栈,为私有化大模型部署提供了具体参考。

weixin_29038345的博客 1710

SOSDP+子集容斥/子集反演

全程,意思是求子集的和的dp也就是dps​表示s的所有子集的和一个显然的求法是O4n的注意这里我们实际上只需要遍历每个集合的所有子集,可以用枚举子集的技巧但这个做法还是O3n的,证明是个二项式定理,可以看这时候就需要高维前缀和的做法,也就是之所以叫高维前缀和,是因为这个过程实际上可以看成有n各个维度的超立方体的前缀和,每个维度的取值只有01。我们外层枚举维度,内层实际上就是个前缀和累加,类似二维前缀和里的sijsij−1sijsi−1j。

Maxwell_Newton的博客 1090

一、Abaqus CAE 入门操作(薄膜应力计算)

一、Abaqus CAE 入门操作(薄膜应力计算)

A20802013的博客 4370

CF662C Binary Table (快速沃尔什变换FWT)

题面 题解 我们会发现,如果单独的一列或一行,它的答案是O1确定的,如果确定了每一行是否变换,那么最后的答案也就简单了许多, 如果确定了行的变换状压下来是x(即x的i位表示第i行是否变换,理解就行),那么每列的状态就要异或x,这没问题吧 接着,其实它的行列是可以交换顺序的,对答案没有影响,状态一定的列的最终贡献都一样, 所以就把状态为 i 的列的数量记为 c[i],方便计算, 然后,提前预处理出列的状态为 i 时单独考虑的答案 f[i](即反转或不反转的最小1数量),方便计算 若枚举行的变

DD(XYX)的硫氰化氘博客 296

EMC意义下的共模(Common Mode)和差模(Differential Mode)

在电子产品中,信号或电源通过两根导线传输。对比维度差模(DM)共模(CM)电流方向一进一出,相等相反同向、相等回流路径两根导线组成的闭合回路地或外壳EMC影响较小容易辐射干扰,重点治理类型定义有用信号干扰信号抑制方法常规滤波器、电感、电容共模电感、磁环、屏蔽、接地技术等。

weixin_43199439的博客 1248

YOLOv13零基础手把手教程:在 YOLOv13 中集成 SFSConv,YOLOv13让目标检测更上一层楼

YOLOv13本教程详细介绍了如何在YOLOv13中集成SFSConv模块以提升目标检测性能。YOLOv13 SFSConv创新性地结合了分数伽柏滤波和分数傅里叶变换,通过空间处理单元(SPU)和频率处理单元(FPU)解耦处理特征。实验表明,该模块可使准确率提升5.21%,mAP提高11.45%。教程从原理分析到代码实现,系统讲解了SFSConv的数学基础、模块设计,并提供了在YOLOv13中集成该模块的详细步骤,包括配置文件修改、核心代码实现等。

FJN110的博客 2177

CF662C Binary Table

CF662C Binary Table FWT入门 好题 据说tourist都没有当场做出来 注意到nnn很小 所以这题一个朴素的暴力就是 2n2^n2n枚举行是否翻转 然后每一列对应一个整数 把这个整数和枚举翻转的数异或一下就是行翻转后的状态 然后考虑列是否翻转 即看0的个数多还是1的个数多 设f[i]f[i]f[i]表示列对应的整数位iii的列的个数 设g[i]g[i]g[i]表示min(cn...

lahlah的博客 202

AutoSAR配置与实践(基础篇)2.5 RTE对数据一致性的管理

SWC内部不同的Runnable访问共同全局变量,Runnable类似C文件中的函数,这些函数如果被放在不同Task上运行, 可能出现出现同一时刻多个函数共同运行的情况。可以通过为受影响的任务分配相同的优先级,为受影响的任务分配相同的内部操作系统资源,或者将OS的任务配置为非抢占性来实现。数据一致性:当多个操作同时读写同一个数据,由于任务的抢占,出现了数据被篡改的情况,造成非预期的数据结果。SWC内部变量保护,限定局变量的作用域在变量的作用域在SWC的不同runnable间。

nihaoljq2010的博客 2628

题解 - CF662C Binary Table

题解 - CF 662C Binary Table\mathrm{CF\ 662C\ Binary \ Table}CF 662C Binary Table 题目意思 CF662C Binary Table 有一个n×mn\times mn×m的表格,每个元素都是0/10/10/1 ,每次操作可以选择一行或一列,把 0/10/10/1翻...

wangyiyang2的博客 209

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IDEA的使用指南

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

CF662 C. Binary Table

题目传送门:CF 题目大意: 给定一个\(n\times m\)的表格\((n\leqslant 20,m\leqslant 10^5)\) 每个表格中有\(0/1\),每次可以将一行或者一列翻转,问表格中最少有多少个1 首先\(n\)很小,状压是肯定躲不掉了…… 然后我们发现,只要确定了翻转一些行,那么答案必然唯一确定(每列取\(\min\{Num_0,Num_1\}\)) 于是我们设\(f[...

weixin_30287169的博客 108

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

CF662C Binary Table——FWTXOR

好老的题了,大家居然都做过

偶耶的博客 1160

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[CF662C]Binary Table

桶排的思想发挥了重要作用吗?似乎也不对。那么这是怎么想到的呢?

七代目鸽影 269

CF 662C Binary Table

Binary Table 题目描述 照例贴传送门:http://codeforces.com/problemset/problem/662/C 题解 暴力做法 显然每一行每一列只会被修改一次或者不被修改 2^n枚举每一行是否被修改 然后O(m)扫一遍每一列,每一列初始状态为a[i],在经过状态为S的修改之后的状态为T=S^a[i] ans=min(Σmin(f(T),n-f(T...

某蒟蒻的博客 333
上一篇: cf 671D Roads in Yusland
下一篇: BZOJ1492 cash
QWsin
博客等级 码龄11年 51粉丝 209原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值