遇事不决先打表。

然后会发现(个屁)大的矩形是由一个2L*2L的矩形重复出现组成的然后我们就可以这个矩形分成四个点到(0, 0)点的矩形,这样问题就变成了求四个到顶点(0, 0)的矩形的面积,然后就先去求这里面完整的块数,然后去找边缘的有一边是完整的块,然后找最右下角的没有完整的块的面积,然后加起来就可了

#include<map>
#include<set>
#include<ctime>
#include<cmath>
#include<stack>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define lowbit(x) (x & (-x))typedef unsigned long long int ull;
typedef long long int ll;
const double pi = 4.0*atan(1.0);
const int inf = 0x3f3f3f3f;
const int maxn = 1e5+10;
const int maxm = 10000007;
const int mod = 1e9+7;
using namespace std;int n, m, tol, T;
int L;
int A[15];
int M[100][100];
ll sx[30];
ll sy[30];
ll sum;void init() {sum = 0;memset(A, 0, sizeof A);memset(M, 0, sizeof M);memset(sx, 0, sizeof sx);memset(sy, 0, sizeof sy);
}ll solve(int x, int y) {ll ans = 0;int cx = x/L;int cy = y/L;ll t = 1ll * cx * cy;ans += 1ll * t * sum;int x1 = x % L;int y1 = y % L;ll s = 0;for(int i=1; i<=x1; i++)    s += sx[i];ans += s * cy;s = 0;for(int i=1; i<=y1; i++)    s += sy[i];ans += s * cx;for(int i=1; i<=x1; i++) {for(int j=1; j<=y1; j++) {ans += M[i][j];}}return ans;
}int main() {
//    freopen("in.txt", "r", stdin);
//  freopen("out.txt", "w", stdout);scanf("%d", &T);while(T--) {init();scanf("%d", &L);for(int i=0; i<L; i++)    scanf("%d", &A[i]);int cursor = 0;for(int i=1; i<=4*L; i++) {for(int j=1; j<=i; j++) {M[j][i - j + 1] = A[cursor];cursor = (cursor + 1) % L;}}L <<= 1;for(int i=1; i<=L; i++) {for(int j=1; j<=L; j++) {sy[j] += M[i][j];sx[i] += M[i][j];}sum += sx[i];}/*for(int i=1; i<=L; i++)    for(int j=1; j<=L; j++)    printf("%d%c",M[i][j], j==L ? '\n' : ' \t');for(int i=1; i<=L; i++)    printf("sx%d = %d\n", i, sx[i]);for(int i=1; i<=L; i++)    printf("sy%d = %d\n", i, sy[i]);*/int q;scanf("%d", &q);while(q--) {int x1, y1, x2, y2;scanf("%d%d%d%d", &x1, &y1, &x2, &y2);x1++, y1++, x2++, y2++;ll ans = solve(x2, y2);ans -= solve(x1-1, y2);ans -= solve(x2, y1-1);ans += solve(x1-1, y1-1);printf("%lld\n", ans);}}return 0;
}

View Code

转载于:https://www.cnblogs.com/Jiaaaaaaaqi/p/9413245.html

HDU 6336 Matrix from Arrays (杭电多校4E)相关推荐

  1. HDU 5734 Acperience (公式推导) 2016杭电多校联合第二场

    题目:传送门. #include <iostream> #include <algorithm> #include <cstdio> #include <cs ...

  2. 杭电多校第七场 1011 Kejin Player HDU(6656)

    杭电多校第七场 1011 Kejin Player 题意:给你N行,代表从i级有花费a[i]元的r[i]/s[i]的概率达到i+1级,剩下的概率中可能会到达x[i]级.然后询问从L级到R级的花费会是多 ...

  3. 2022杭电多校(四)

    2022杭电多校(四) 文章目录 2022杭电多校(四) 一.比赛小结 二.题目分析及解法(基础题) 1001.Link with Bracket Sequence II 1002.Link with ...

  4. 2019杭电多校 第七场 Kejin Player 6656(求期望值)

    2019杭电多校 第七场 Kejin Player 6656(求期望值) 题目 http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意 给你n,q.表示有n ...

  5. 2021杭电多校补题——第一场

    2021杭电多校补题--第一场 文章目录 Mod, Or and Everything Rocket land(待补) Puzzle loop(待补) Another thief in a Shop( ...

  6. 【2019杭电多校训练赛】HDU6681 / 1002-Rikka with Cake 题解(扫描线)

    [2019杭电多校训练赛]HDU6681 / 1002-Rikka with Cake 题解 题意 思路 代码 题目来自于:HDU6681 Rikka with Cake 题意 题目的大意是给定你一个 ...

  7. 2022杭电多校(十)

    2022杭电多校(十) 文章目录 2022杭电多校(十) 一.比赛小结 二.题目分析及解法(基础题) 1001.Winner Prediction 1003.Wavy Tree 1004.Averag ...

  8. 2022杭电多校(九)

    2022杭电多校(九) 文章目录 2022杭电多校(九) 一.比赛小结 二.题目分析及解法(基础题) 1001.Arithmetic Subsequence 1003.Fast Bubble Sort ...

  9. 2022杭电多校(二)

    2022杭电多校(二) 文章目录 2022杭电多校(二) 一.比赛小结 二.题目分析及解法(基础题) 1001.Static Query on Tree 1002.C++ to Python 1003 ...

最新文章

  1. Pandas 中的这些函数/属性将被 deprecated
  2. 读写配置文件app.config
  3. golang中的base64
  4. python脚本设置环境变量_详解如何设置Python环境变量?
  5. asp.net 分布式应用开发
  6. php v-for=,Vue中v-for循环节点的实现代码
  7. linux添加硬盘不重启(vmware下或者虚拟机下面)
  8. 【答阿里寒冬面试题】呵呵,大神的面试题就是好!
  9. SpringMvc-@ExceptionHandler
  10. 第四次作业:猫狗大战挑战赛
  11. VB 二进制数据读写实例
  12. PHP 入门学习教程及进阶(源于知乎网友的智慧)
  13. ##R语言生信作图之UpsetR做交集图
  14. RabbitMQ三种Exchange
  15. paip.项目文件同步-分支和合并总结V2012.9.23
  16. Window 消息大全使用详解
  17. 常用接口文档模板(markdown版)
  18. 电量分析 —— 优化耗电
  19. Linq的where语句中如果有两个条件以上的写法
  20. love2d教程10--粒子效果

热门文章

  1. PHP留言并展示_留言页面展示功能
  2. 华军java_Java SE Runtime Environment 8
  3. python打印对象地址_Python打印对象的全部属性
  4. 单片机的单个IO口可以发送数据吗_5分钟了解单片机数据、地址、控制总线结构...
  5. 试题14 回文数(详解)
  6. UnityShader9:光照基础回顾
  7. Unity3D之UGUI基础1:UGUI插件介绍
  8. hihocoder 1449 : 后缀自动机三·重复旋律6(后缀自动机)
  9. bzoj 3238: [Ahoi2013]差异(后缀数组+单调栈)
  10. js排序算法详解-归并排序