[xsy3132]数表

题意:一个$n\times m$的数表,数值$\in[0,4)$,你可以任意次选择一行或一列$+1,\text{mod }4$,要最小化所有数的和

因为$n\leq10$,所以数表可以看成$m$个$n$位$4$进制数$a_{1\cdots m}$,以下使用不进位加法

定义$f(x)=\min\limits_{i=0}^3\left(x+(i\cdots i)_4\right)$,如果确定了行的方案$s$,答案就是$\sum\limits_if(a_i+s)$

记$c_x$为$x$在$a_{1\cdots m}$中的出现次数,$\text{ans}(s)=\sum\limits_xc_xf(x+s)=\sum\limits_{a+b=s}c_{-a}f(b)$,是一个高维循环卷积

高维卷积需要用到高维FFT,根据wiki,只需在每一维分别dft即可,时间复杂度$O(n4^n)$

#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
const int mod=998244353,inf=2147483647;
int mul(int a,int b){return(ll)a*b%mod;}
int ad(int a,int b){return(a+=b)>=mod?a-mod:a;}
int pow(int a,int b){int s=1;while(b){if(b&1)s=mul(s,a);a=mul(a,a);b>>=1;}return s;
}
int*w[5],iN;
void pre(){int i,j,t;for(i=2;i<=4;i<<=1){w[i]=new int[i+1];t=pow(3,(mod-1)/i);w[i][0]=1;for(j=1;j<=i;j++)w[i][j]=mul(w[i][j-1],t);}iN=pow(4,mod-2);
}
void dft4(int*a,int sh,int on){#define a(i) a[(i)<<sh]const int N=4;int i,j,k,t;swap(a(1),a(2));for(i=2;i<=N;i<<=1){for(j=0;j<N;j+=i){for(k=0;k<i>>1;k++){t=mul(a(i/2+j+k),w[i][on==1?k:i-k]);a(i/2+j+k)=ad(a(j+k),mod-t);a(j+k)=ad(a(j+k),t);}}}if(on==-1){for(i=0;i<N;i++)a(i)=mul(a(i),iN);}#undef a
}
int n,N;
void dft(int*a,int on){int i,j;for(j=0;j<n;j++){for(i=0;i<N;i++){if(!(i>>j*2&3))dft4(a+i,j*2,on);}}
}
int a[10010];
int c[1048576],f[1048576];
int t[4];
int main(){int m,i,j,x,res;scanf("%d%d",&n,&m);N=1<<n*2;for(i=1;i<=n;i++){for(j=1;j<=m;j++){scanf("%d",&x);a[j]=a[j]<<2|x;}}for(i=1;i<=m;i++)c[a[i]]++;reverse(c,c+N);for(i=0;i<N;i++){t[0]=t[1]=t[2]=t[3]=0;for(j=0;j<n;j++)t[i>>j*2&3]++;f[i]=min(min(t[1]+2*t[2]+3*t[3],t[0]+2*t[1]+3*t[2]),min(t[3]+2*t[0]+3*t[1],t[2]+2*t[3]+3*t[0]));}pre();dft(c,1);dft(f,1);for(i=0;i<N;i++)c[i]=mul(c[i],f[i]);dft(c,-1);res=inf;for(i=0;i<N;i++)res=min(res,c[i]);printf("%d",res);
}

转载于:https://www.cnblogs.com/jefflyy/p/10809114.html

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

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

相关文章

linux 下载、安装 maven

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 创建maven的文件夹并下载maven的tar包到此文件夹中 //进入一个目录 cd /usr/local//创建一个文件夹 mkdir maven//下载maven的tar包…

ELK4之进阶学习

1.精确查找和模糊查找(term和match的区别) match经过分析(analyer)的, term是不经过分词,直接去倒排索引中查找精确的值. 2.建议器的简介(最左前缀或者自带的做) (1)直接用现成的 (2)不只是纠错,还有建议等等. (3)优点:用户体验,服务器减少请求(减少压力,太耗电了,热量太大) (4…

女人必知 教你认清6种隐性坏男人

周围不乏有女朋友喜欢历数往事、追忆曾擦肩而过的男人&#xff0c;有的说如果不是自己太苛求提早要见他家人引起反感&#xff0c;早就和心爱的人俪影双双甜蜜快乐了&#xff0c;还有的说暗恋的男生那一夜向他表露情感、她万分感动、可男生最后提出上床她拒绝了、因而错失了一段…

c# 编程学习(二)

2019独角兽企业重金招聘Python工程师标准>>> 标识符是对程序中的各个元素进行标识的名称。  只能使用字母(大写和小写)、数字和下划线  标识符必须以字母或下划线开头 变量是容纳值的存储位置。可将变量想象成容纳临时信息的容器 命名变量的建议&#xff1a; …

linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、Linux 下使用 nohup Unix/Linux下一般比如想让某个程序在后台运行&#xff0c;很多都是使用 & 在程序结尾来让程序自动运行。 …

PowerDesigner表结构和字段大小写转换

原文&#xff1a;https://www.cnblogs.com/zhzhang/p/3946609.html 【转】PowerDesigner表结构和字段大小写转换 【转自】http://blog.csdn.net/xysh1991/article/details/8016192 使用方法&#xff1a;进入PowerDesigner&#xff0c;打开一个PDM&#xff0c;在菜单栏找到&…

解决:Could not find or load main class org.apache.rocketmq.example.quickstart.Producer

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.情景描述 &#xff1a;我只是想安装运行 rocketmq&#xff0c;执行命令&#xff1a; sh bin/tools.sh org.apache.rocketmq.example.…

深入理解C++ 虚函数表

目录 深入理解C 虚函数表虚函数表概述单继承下的虚函数表派生类未覆盖基类虚函数派生类覆盖基类虚函数多继承下的虚函数表无虚函数覆盖派生类覆盖基类虚函数钻石型虚继承总结几个原则安全性问题深入理解C 虚函数表 ​ C中的虚函数的作用主要是实现了多态的机制。关于多态&#…

react-native-baidu-map使用及注意问题

使用组件&#xff1a; react-native-baidu-map 获取百度地图API_KEY 地址&#xff1a;lbsyun.baidu.com&#xff0c;在控制台成功创建应用后&#xff0c;就可以看到应用的api key了 安装 yarn add react-native-baidu-map 复制代码原生部分 Android配置 react-native link reac…

简单扫清身体垃圾

“我们的身体在被‘设计’之初&#xff0c;就拥有了自主扫除体内垃圾的功能。只不过&#xff0c;这需要我们按照正确的方法去激发它 。”美国畅销书作者乔斯卡曼和朱莉佩莱斯&#xff0c;在她们去年合著的《自我清洁》一书中强调了养成良好生活习惯可为身体排毒的重要性。 近日…

linux (阿里云 CentOS7) 中安装配置 RocketMQ

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 JDK1.8的安装&#xff1a; 1.检查系统的JDK版本 根目录下操作&#xff1a;cd java -version 2.检测JDK安装包 rpm -qa | grep ja…

Bootstrap简介

1.使用准备 1.1 Bootstrap的下载 http://www.bootcss.com&#xff0c;下载用于生产环境的Bootstrap即可。 1.2 Bootstrap包含的内容 ● 全局CSS&#xff1a;基本的 HTML 元素均可以通过 class 设置样式并得到增强效果&#xff1b;还有先进的栅格系统。 ● 组件&#xff1a;无数…

用TortoiseGit时的实用git命令

生成并获取 sshkey&#xff1a; ssh-keygen -t rsa -C "xxxxxxxxxx.com" cat ~/.ssh/id_rsa.pub 克隆仓库&#xff1a; git clone xxxxxx/xxx.git 重命名文件&#xff1a; mv file_name new_file_name git目录区分大小写&#xff1a; git config core.ignorecase fal…

有一种失败叫瞎忙

很多时候&#xff0c;我们都在不知不觉的瞎忙&#xff0c;为了避免这样的瞎忙&#xff0c;特为大家分享一个小的故事。 在一个山谷的禅房里有一位老禅师&#xff0c;他发现自己有一个徒弟非常勤奋&#xff0c;不管是去化缘&#xff0c;还是去厨房洗菜&#xff0c;这个徒弟从…

解决:org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 原因1&#xff1a;启动 broker 方式不对。 我完全是按照官方文档操作的&#xff0c;在网上看到说这一步是错误的启动 broker 方式&#…

tomcat需要设置环境变量吗

tomcat是一款轻量级web应用服务器&#xff0c;安装的时候我们都是直接解压zip包&#xff0c;然后在bin目录下双击startup.bat就可以启动了&#xff08;当然&#xff0c;前提是本地要安装jdk并配置JAVA_HOME环境变量&#xff09; 所以我一直认为tomcat是不用配置环境变量的 但是…

Intro OpenCL Tutorial

Benedict R. Gaster, AMD Architect, OpenCL™ OpenCL™ is a young technology, and, while a specification has been published (www.khronos.org/registry/cl/), there are currently few documents that provide a basic introduction with examples. This article helps…

雷林鹏分享:codeigniter框架文件上传处理

CodeIgniter 框架input表单的重新填充&#xff0c;主要是针对text、radio、checkbox、select等input表单&#xff0c;那么对于文件上传表单file该如何处理呢? 自己的处理方式&#xff1a; //设置文件上传属性 $webroot $_SERVER[DOCUMENT_ROOT]; $time time(); $year date(…

jQuery基本使用

一.what 1&#xff09;.一个优秀的JS函数库&#xff1b; 2&#xff09;.中大型WEB项目开发的首选&#xff1b; 3&#xff09;.使用了jQuery的网站超过90%&#xff1b; 4&#xff09;.http://jquery.com/; 二.why(即jq的好处) html元素选取&#xff08;选择器&#xff09;&#…

解决:-bash: telnet: command not found

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题 -bash: telnet: command not found只是因为没有安装这个命令&#xff0c;不识别。 安装命令&#xff1a; yum install telne…