题面

大力统计题

考虑把和的平方拆开,最终就是许多对位置乘起来求和。所以考虑每对位置的贡献,对于$a_{i,j}$和$a_{k,h}(1<=i<=k<=n,1<=j<=h<=m)$,它们的贡献就是在$a_{i,j}$左上角和$a_{k,h}$右下角选两个点构成一个矩形把两个位置框起来的方案数再乘上对应系数,所以一般来说其贡献为

$2*a_{i,j}*a_{k,h}*i*j*(n-k-1)*(m-h-1)$

用前缀和维护二维乘积的和$sum[i][j]$,就可以更新答案了:

$sum[i][j]=a[i][j]*i*j-sum[i-1][j-1]+sum[i-1][j]+sum[i][j-1]$

$ans+=2*a[i][j]*sum[i][j]*(n-i+1)*(m-j+1)$

但是平方项的系数都是1,所以对于每个位置$i,j$还要扣掉一个$a[i][j]*i*j*(n-i+1)*(m-i+1)$

还没完......我们上面为了好写默认$1<=i<=k<=n,1<=j<=h<=m$,然后就成功地把$i<=k,j>h$和$i>j,j<=h$的情况给漏掉了,所以还要把每行翻过来再算一次,注意这次没有等于号了

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,mod=;
long long n,m,ans,seed,a[N][N],sum[N][N];
long long get()
{
seed=(seed*+)%;
return seed%;
}
int main()
{
scanf("%lld%lld%lld",&n,&m,&seed);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
a[i][j]=get();
sum[i][j]=(a[i][j]*i*j%mod+mod-sum[i-][j-]+sum[i-][j]+sum[i][j-])%mod;
ans+=*a[i][j]*sum[i][j]%mod*(n-i+)*(m-j+)%mod; ans%=mod;
ans+=mod-a[i][j]*a[i][j]%mod*i*j%mod*(n-i+)*(m-j+)%mod;
}
for(int i=;i<=n;i++)
for(int j=;j<=m/;j++)
swap(a[i][j],a[i][m-j+]);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
sum[i][j]=(a[i][j]*i*j%mod+mod-sum[i-][j-]+sum[i-][j]+sum[i][j-])%mod;
ans+=*a[i][j]*sum[i-][j-]%mod*(n-i+)*(m-j+)%mod; ans%=mod;
}
printf("%lld",ans);
return ;
}

解题:EXNR #1 金拱门的更多相关文章

  1. 为什么叫金拱门- golden arch

    不要再纠结为什么叫这么难理解的名字了.因为从golden arch直译过来的撒.金色的拱门.就叫金拱门咯. 关于M的商标的历史来源如下: "McDonald's logo" red ...

  2. Java网络编程基础(Netty预备知识)

    今天在家休息,闲来无事,写篇博客,陶冶下情操~~~ =================我是分割线================ 最近在重新学习Java网络编程基础,以便后续进行Netty的学习. 整 ...

  3. 一入OI深似海 3 —— 纪念我最后一次PJ(上)

    其实在比赛前一天中午上车前, 我还在机房打 I wanna, 感觉就是去杭州旅游的. 诶,还真是这样! 我和jwj在绍兴服务区买了金拱门, 拎着吃的回到车上的时候, 迎面而来羡慕的小眼神. 下午很早就 ...

  4. Python的基础语法(二)

    0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...

  5. CCPC-2017-秦皇岛站

    10月25日 听说信用卡到了好兴奋,然而没有额度是啥情况啊qwq. 晚上坐飞机出发,成都-鄂尔多斯-石家庄-秦皇岛,队友吐槽鄂尔多斯到石家庄好近啊,然后过了一会儿我们因为石家庄大雾迫降在了济南.嘤嘤嘤 ...

  6. SDOI2019Round1游记

    SDOI2019Round1游记 Day 0 报道日,早晨五点睡的觉,一觉醒来已经一点半了,收拾收拾东西报道去了.因为没吃饭,坐着出租车晕车了,我让师傅把我放到历下大润发,我去金拱门吃了点饭才去的23 ...

  7. NOIP 2018 兔纸旅游记

    今年是第一次参加tg呢... Day0    早上出发去中旅坐大巴,走有 lz 特色的OI比赛道路. 车上谈笑风生,看 jw 的 GDOI 的小本本. 到动车站取票入站,看 lmh 和 zn 的爱恨情 ...

  8. 2018GDKOI游记

    我很后悔DAY1考完就写了小结.没人看题解,却这么多人来揭我伤疤.既然明摆着摆出来就是刷访问量,下面的就别看了吧. --------------------分割线------------------- ...

  9. IUSEP研修报告

    目录 Introduction Alberta - Edmonton University of Alberta IUSEP Schoolwork and Project Principle of F ...

随机推荐

  1. C# Language Specification 5.0 (翻译)第二章 词法结构

    程序 C# 程序(program)由至少一个源文件(source files)组成,其正式称谓为编译单元(compilation units)[1].每个源文件都是有序的 Unicode 字符序列.源 ...

  2. 用C语言操作MySQL数据库,进行连接、插入、修改、删除等操作

    C/C++ code   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3 ...

  3. C# LINQ to XML示例

    static void Main(string[] args)         {    // Create the data source by using a collection initial ...

  4. http to https

    https://www.cnblogs.com/powertoolsteam/p/http2https.html

  5. SpringBoot日记——MQ消息队列整合(一)

    除了之前讲到的缓存,我们还会用到消息队列来存储一些消息,为了提升系统的异步性能等等: 消息服务有两个概念需要知道:消息代理-message broker,目的地-destination.消息发送由代理 ...

  6. kubernetes 网络故障遇见的坑

    1.记录一下自己搭建kubernetes 集群遇见的坑. 过程是我学技术以来最大的bug,处处都是坑,稍微写成一点, 就完全起不来, 起不来之后, 还找不到故障点, 郁闷之极. 后续会慢慢分享给大家. ...

  7. Scrapy框架中的CrawlSpider

    小思考:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法二: ...

  8. postman 断点

  9. linuxC/C++面试问题总结整理

    linuxC/C++面试问题总结整理 因为一些原因重新找工作了,面的linux c/c++,这里把面试中经常碰到的问题总结一下. linuxC/C++面试问题总结整理 单元测试 关键字const 关键 ...

  10. [翻译]:Artificial Intelligence for games 5.3 STATE MACHINES:状态机

    目录 Chapter 5 Decision Making 5.3 STATE MACHINES:状态机 Chapter 5 Decision Making 5.3 STATE MACHINES:状态机 ...