Description

Link.

给定一个 \(N \times N\) 的矩阵,她希望求出:

  1. 该矩阵的所有子矩阵的 \(\texttt{AND}\) 值之和(所有子矩阵 \(\texttt{AND}\) 值相加的结果)。
  2. 该矩阵的所有子矩阵的 \(\texttt{OR}\) 值之和(所有子矩阵 \(\texttt{OR}\) 值相加的结果)。

Solution

对于每一个数的每一位,我们单独拉出来构成 \(\log\) 个矩阵。

对于 \(\texttt{AND}\),显然只有全为 \(1\) 的子矩阵能产生贡献。

对于 \(\texttt{OR}\),只有存在 \(1\) 的子矩阵才能产生贡献。

那么枚举右下角,单调栈统计。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MOD=1e9+7;
int n,pre[1010][1010],stk[1010],top,a[1010][1010],b[1010][1010],ans,exans,mx;
void work(int k,int t)
{
for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) b[i][j]=((a[i][j]>>k)&1);
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
if(b[i][j]==t) pre[i][j]=pre[i-1][j]+1;
else pre[i][j]=0;
}
}
int siz=0;
for(int i=1;i<=n;++i)
{
siz=top=0,stk[1]=stk[0]=0;
for(int j=1;j<=n;++j)
{
while(top&&pre[i][stk[top]]>=pre[i][j]) siz=(siz-LL(pre[i][stk[top]])*(stk[top]-stk[top-1])%MOD+MOD)%MOD,--top;
// siz=(siz+LL(pre[i][j])*(j-stk[top])%MOD)%MOD,stk[++top]=j;
siz+=LL(pre[i][j])*(j-stk[top]),stk[++top]=j;
if(t) ans=(ans+LL(siz)*(1<<k)%MOD)%MOD;
else exans=(exans+(LL(i)*j%MOD-LL(siz))*(1<<k)%MOD+MOD)%MOD;
}
}
}
inline char fgc()
{
static char buf[1<<17],*p=buf,*q=buf;
return p==q&&(q=buf+fread(p=buf,1,1<<17,stdin),p==q)?EOF:*p++;
}
void read(int &hhh)
{
int x=0;
char c=fgc();
while(!isdigit(c)) c=fgc();
while(isdigit(c)) x=(x<<3)+(x<<1)+(c^'0'),c=fgc();
hhh=x;
}
void write(int x,char las='\n')
{
static int stk[100],top=0;
do stk[++top]=x%10,x/=10; while(x);
while(top) putchar(stk[top--]^'0');
putchar(las);
}
int main()
{
read(n);
for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) read(a[i][j]),mx=max(mx,a[i][j]);
for(int k=0;(1ll<<k)<=mx;++k) work(k,0),work(k,1);
write(ans,' '),write(exans);
return 0;
}

Solution -「GXOI / GZOI 2019」AND OR Sum的更多相关文章

  1. Solution -「2020.12.26」 模拟赛

    0x00 前言 一些吐槽. 考得很变态诶,看每道题平均两秒的时限就知道了... T1 降智了想到后缀懒得打. T2 口胡了假优化,结果和暴力分一样?? T3 黑题还绑点?? \(50 + 80 + 0 ...

  2. 「LOJ 3153」 「JOI Open 2019」三级跳

    题面 LOJ 3153 solution 对于任意一对\(A,B\),若区间\([A,B]\)中存在一个数权值大于\(A\)或\(B\),则用这个数来替代\(A\)或\(B\)显然更优. 故只需要考虑 ...

  3. Note/Solution -「洛谷 P5158」「模板」多项式快速插值

    \(\mathcal{Description}\)   Link.   给定 \(n\) 个点 \((x_i,y_i)\),求一个不超过 \(n-1\) 次的多项式 \(f(x)\),使得 \(f(x ...

  4. Solution -「洛谷 P4198」楼房重建

    \(\mathcal{Description}\)   Link.   给定点集 \(\{P_n\}\),\(P_i=(i,h_i)\),\(m\) 次修改,每次修改某个 \(h_i\),在每次修改后 ...

  5. Solution -「多校联训」排水系统

    \(\mathcal{Description}\)   Link.   在 NOIP 2020 A 的基础上,每条边赋权值 \(a_i\),随机恰好一条边断掉,第 \(i\) 条段的概率正比于 \(a ...

  6. Solution -「洛谷 P6577」「模板」二分图最大权完美匹配

    \(\mathcal{Description}\)   Link.   给定二分图 \(G=(V=X\cup Y,E)\),\(|X|=|Y|=n\),边 \((u,v)\in E\) 有权 \(w( ...

  7. Solution -「多校联训」I Love Random

    \(\mathcal{Description}\)   给定排列 \(\{p_n\}\),可以在其上进行若干次操作,每次选取 \([l,r]\),把其中所有元素变为原区间最小值,求能够得到的所有不同序 ...

  8. Solution -「多校联训」签到题

    \(\mathcal{Description}\)   Link.   给定二分图 \(G=(X\cup Y,E)\),求对于边的一个染色 \(f:E\rightarrow\{1,2,\dots,c\ ...

  9. Solution -「多校联训」朝鲜时蔬

    \(\mathcal{Description}\)   Link.   破案了,朝鲜时蔬 = 超现实树!(指写得像那什么一样的题面.   对于整数集 \(X\),定义其 好子集 为满足 \(Y\sub ...

  10. Solution -「多校联训」消失的运算符

    \(\mathcal{Description}\)   Link.   给定长度为 \(n\) 的合法表达式序列 \(s\),其中数字仅有一位正数,运算符仅有 - 作为占位.求将其中恰好 \(k\) ...

随机推荐

  1. Weblogic反序列化(CVE-2023-21839)漏洞复现

    前言 序列化(Serialization):将对象的状态信息转换为可以存储或传输的形式的过程,一般将对象转换为字节流.序列化时,对象的当前状态被写入到临时或持久性存储区(文件.内存.数据库等). 反序 ...

  2. 纠删码技术在vivo存储系统的演进【上篇】

    作者:vivo 互联网服务器团队- Gong Bing 本文将学术界和工业界的纠删码技术的核心研究成果进行了相应的梳理,然后针对公司线上存储系统的纠删码进行分析,结合互联网企业通用的IDC资源.服务器 ...

  3. Kubernetes——构建平台工程的利器

    作者|Loft Team 翻译|Seal软件 链接|https://loft.sh/blog/why-platform-engineering-teams-should-standardize-on- ...

  4. CSR格式如何更新? GES图计算引擎HyG揭秘之数据更新

    摘要:HyG图计算引擎采用CSR格式来存储图的拓扑信息,CSR格式可以将稀疏矩阵的存储空间压缩,进而大大降低图的存储开销,同时具备访问效率高.格式易转化等优点. 本文分享自华为云社区<CSR格式 ...

  5. 3 分钟为英语学习神器 Anki 部署一个专属同步服务器

    原文链接:https://icloudnative.io/posts/anki-sync-server/ Anki 介绍 Anki 是一个辅助记忆软件,其本质是一个卡片排序工具--即依据使用者对卡片上 ...

  6. 寻找一个好的工程师不只是看ta的刷题能力

    面试一个工程师,该考察什么能力,如果单单背诵一些概念.题目好像是在考察记忆力,最终项目里还是得解决实际问题.但解决实际问题的能力真的不易考察,导致大部分公司面试前期都只能通过试题来筛选求职者,到面试后 ...

  7. LeetCode 周赛上分之旅 #33 摩尔投票派上用场

    ️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 [BaguTree Pro] 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思 ...

  8. PhotoShop AI 爱国版保姆级安装和使用

    上篇Photoshop AI 令人惊叹的生成式填充介绍了 PhotoShop AI 的新特性功能,有人以为我收了 Adobe 公司的钱帮它们做推广~~~.别不信,事实上确有其事,某平台审核直接把它删掉 ...

  9. [Spring+SpringMVC+Mybatis]框架学习笔记(九):Mybatis主配置文件和映射文件

    第9章 Mybatis主配置文件和映射文件 9.1 用Mybatis进行开发的两种方式 在正式的开发环境中用Mybatis进行开发有两种方式: 1)原始的接口和实现类的方式 缺点: 重复代码太多,sq ...

  10. 使用DBeaver连接数据库

    下载网站:官网下载 参考链接:使用 DBeaver 连接 OceanBase