传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4972

题意:

  给一个方格纸,每一个格子有一个数val,q个询问,每次询问一个x,y,k,求(x,y),(x-k+1,y),(x,y-k+1)三个格子构成的三角形边上以及内部的所有格子的val的和。答案输出sigma((233)^(q-i)*fi)%(2^32),fi为第i次询问的答案。

题解:

   

    图做的太丑了。。。。。凑合着看吧。。。

   根据题意其实就是求上图黑色部分,黑色部分可以看成图一的灰加黑的正方形(画的一点不像正方形。。。)减去灰的部分,灰的部分其实是图二那个土黄色的部分减去图一剩下的那块有点黄又有点红的部分。

   这样就分析完后可以不看图了,维护三个前缀和a,b,c。。a用来求某一块的矩形的总和,c用来求图二那个土黄色的部分,b用来求某一行的前缀和(方便求a,c),前缀和造出来了后,每次询问xjb写写就O(1)出答案啦。。

最后那个对2^32取模,其实开成unsigned int自然溢出就行了。。。

 1 #include <bits/stdc++.h>
 2 #define INF 0x3f3f3f3f
 3 using namespace std;
 4 typedef long long ll;
 5 const int mod=1e9+7;
 6 const int maxn=3e3+100;
 7 const double eps=1e-10;
 8 unsigned int A,B,C;
 9 int n,m,q,x,y,k;
10 unsigned int a[maxn][maxn],b[maxn][maxn],c[maxn][maxn],d[3000000+100];
11 inline unsigned int rng61(){
12     A ^= A << 16;
13     A ^= A >> 5;
14     A ^= A << 1;
15     unsigned int t = A;
16     A = B;
17     B = C;
18     C ^= t ^ A;
19     return C;
20 }
21 int main() {
22 #ifdef ac
23     freopen("in.txt" , "r" , stdin);
24 //    freopen("out.txt" , "w" , stdout);
25 #endif
26     d[0]=1;
27     for(int i=1;i<=3000000;++i)d[i]=d[i-1]*233;
28     scanf("%d%d%d%u%u%u", &n, &m, &q, &A, &B, &C);
29     for(int i = 1; i <= n; i++){
30         for(int j = 1; j <= m; j++){
31             a[i][j] = rng61();b[i][j]+=b[i][j-1]+a[i][j];
32             c[i][j]=b[i][j]+c[i-1][j+1]; a[i][j]=b[i][j]+a[i-1][j];
33         }
34         c[i][0]=c[i-1][1];
35     }
36
37     unsigned int ans=0;
38     for(int i = 1; i <= q; i++){
39         x = rng61() % n + 1;
40         y = rng61() % m + 1;
41         k = rng61() % min(x, y) + 1;
42         int x1=x-k,y1=y-k;
43         if(x1<0)x1=0;if(y1<0)y1=0;
44         unsigned tmp1=c[x][y1]-c[x1][y],tmp2=a[x][y1]-a[x1][y1],tmp3=tmp1-tmp2;
45         unsigned tmp4=a[x][y]-a[x1][y]-a[x][y1]+a[x1][y1],tmp5=tmp4-tmp3;
46         ans+=d[q-i]*tmp5;
47     }
48     printf("%u\n",ans);
49     return 0;
50 }

View Code

  

转载于:https://www.cnblogs.com/saltyfishes/p/7403247.html

bzoj 4972 小Q的方格纸相关推荐

  1. 前缀和--BZOJ-4972 小Q的方格纸

    小Q的方格纸有n行m列,一共n*m个方格,从上到下依次标记为第1,2,...,n行,从左到右依次标记为第1,2,...,m列,方便起见,小Q称第i行第j列的方格为(i,j).小Q在方格纸中填满了数字, ...

  2. BZOJ4972 小Q的方格纸

    每个格子记录其左下的45°直角梯形区域的和及左下矩形区域的和即可. #include<iostream> #include<cstdio> #include<cmath& ...

  3. [前缀和 乱搞]BZOJ4972 .小Q的方格纸

    发现询问是个等腰直角三角形,那么我们对于每条斜线作为斜边的等腰直角三角形,斜线上处理一下前缀和就可以了 #include <cstdio> #include <iostream> ...

  4. BZOJ4972 八月月赛 Problem B 小Q的方格纸 二维前缀和

    欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4972 八月月赛Problem B 题目概括 一个矩阵,一坨询问,问矩阵中一个特定方向的等腰直角三角 ...

  5. bzoj 4017: 小Q的无敌异或(线段树)

    4017: 小Q的无敌异或 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 694  Solved: 227 [Submit][Status][Dis ...

  6. bzoj 4017: 小Q的无敌异或

    4017: 小Q的无敌异或 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 593  Solved: 197 [Submit][Status][Dis ...

  7. 方格纸(square)

    方格纸(square) 题目描述 今天小D在他的课桌上玩方格纸,现在有一个平面直角坐标系,小D将方块纸放在这个坐系 中,并且方格纸的都与x轴.y轴平行,小D在这上面放了许多的方格纸,然后想知道对于平 ...

  8. 2020寒假【gmoj2162】【方格纸】【差分+前缀和】

    题目描述 今天小D在他的课桌上玩方格纸,现在有一个平面直角坐标系,小D将方块纸放在这个坐标系中,并且方格纸的都与x轴.y轴平行,小D在这上面放了许多的方格纸,然后想知道对于平面直角坐标系中的一个点有多 ...

  9. bzoj 3437 小p的农场

    bzoj 3437 小p的农场 思路 \(f[i]=min(f[j]+\sum\limits_{k=j+1}^{i}{b[k]*(i-k)}+a[i])\) \(f[i]=min(f[j]+\sum\ ...

最新文章

  1. python时间转换
  2. bat判断文本中是否存在一个相同内容比较_Excel中的9个逻辑函数都不掌握,还敢称Excel达人?...
  3. Hibernate依赖包简单介绍
  4. mysql分区、分表学习
  5. bootstrap清除拟态框内添加新HTML再打开时会有缓存现象
  6. 马斯克为何不惜激怒众“韭菜”?
  7. 请查收~微信春节聊天彩蛋 微信群的卖萌小神器
  8. 杭电2067小兔的棋盘
  9. flink源码分析_Flink源码分析之深度解读流式数据写入hive
  10. 清退117名博士、119名硕士!研究生“严出”成人才培养大趋势
  11. 五种常用源代码开源协议
  12. 【spring】spring源码搭建
  13. 新手用手机学黑客编程一秒变黑客
  14. ios查看帧率的软件_软件测试之性能测试(ios)——获取fps(流畅度)
  15. SEO前端篇(二)关键词
  16. 研究生如何学习与科研的几点建议——来自一枚菜博的愚见
  17. linux下虚拟安装cad,LeoCAD下载 LeoCAD(虚拟乐高模型创建工具) 32位/64位 Linux版 v18.01 官方英文安装版 下载-脚本之家...
  18. 对SE_ResNet的理解
  19. 肿瘤精准细胞免疫治疗:梦想照进现实
  20. cvCaptureFromFile一直返回NULL

热门文章

  1. 移动应用如何针对细分用户展示个性化应用内容或风格?
  2. Leetcode 452 题 用最少数量的箭引爆气球
  3. PHP后台发起GET,POST请求
  4. 审美疲劳来袭,AI 产品该何去何从
  5. 有备无患 | 黑客的常见攻击手段有哪些?
  6. java模拟多人爬山_基于爬山算法求解TSP问题(JAVA)
  7. Vue el-input 使用@keyup绑定Enter键、上下左右键、删除键
  8. 安徽大学计算机专业毕业论文格式,安徽大学本科生毕业论文撰写标准示范.doc...
  9. 【解决】application.yml 变灰色
  10. 元宇宙电商NFG是什么?