题目:http://arc071.contest.atcoder.jp/tasks/arc071_b

题意:

    有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求mod)。

    例子:

      3 31 3 41 3 6

    

    构成了9个长方体。

    

    可以算出ans = 60;

题解:

        很容易就可以想到暴击枚举 i,j,k,l,对应的每个值然后求面积。

     

        但是毫无疑问n4是会TLE的。

        同样的答案等价于

    

        但是很不好意思,这样还是会TLE。

        所以我们就可以把它化简为

        

       ————————————证明————————————

        展开 ∑(xj-xi)为

        (x2-x1)+(x3-x1)+····+(xn-x1)

        (x3-x2)+(x4-x2)+···+(xn-x1

        ···

        不难发现当为第k个x的时候,在它前面有(k-1)个x要选择它,所以是 +(k-1)*x。而在k的后面有(n-k)个x。xk 要选它们,所以是 -(n-k)*xk 。

        就可以化简成∑((k-1)xk-(n-k)xk)。把复杂度从n2降到n。

        同理y也是这样。

        总的复杂度为O(n+m)。

       ——————————————————————————

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <string>
 6 #include <vector>
 7 #include <map>
 8 #include <set>
 9 #include <queue>
10 #include <sstream>
11 #include <algorithm>
12 using namespace std;
13 #define pb push_back
14 #define mp make_pair
15 #define ms(a, b)  memset((a), (b), sizeof(a))
16 //#define LOCAL
17 typedef long long LL;
18 const int inf = 0x3f3f3f3f;
19 const int maxn = 100000+10;
20 const int mod = 1e9+7;
21 LL x[maxn];
22 LL y[maxn];
23 int main()
24 {
25     #ifdef LOCAL
26         freopen("input.txt" , "r", stdin);
27     #endif // LOCAL
28     int n, m;
29     scanf("%d%d", &n, &m);
30     for(int i=1;i<=n;i++)   scanf("%lld", &x[i]);
31     for(int i=1;i<=m;i++)   scanf("%lld", &y[i]);
32     LL ans =0;
33     LL sumx = 0, sumy=0;
34     for(int i=1;i<=n;i++)
35         sumx =(sumx+ ( (i-1)*x[i] - (n-i)*x[i] )%mod)%mod;
36     for(int i=1;i<=m;i++)
37         sumy =(sumy+ ( (i-1)*y[i] - (m-i)*y[i] )%mod)%mod;
38 //    printf("%lld %lld\n", sumx, sumy);
39     printf("%lld\n", (sumx * sumy) %mod);
40     return 0;
41 }

View Code

转载于:https://www.cnblogs.com/denghaiquan/p/6691591.html

AtCoder Regular Contest 071 D - 井井井 / ###相关推荐

  1. AtCoder Regular Contest 071

    C - 怪文書 / Dubious Document 题意:定义一种无序的子序列:在原串中随意地取字符并随意打乱顺序.求多个字符串的最长公共无序子序列. #include<cstdio> ...

  2. AtCoder Regular Contest 071 C - 怪文書 / Dubious Document

    给定一堆字符串,寻找一个字典序最小的字符串,使得该字符串是每个字符串的某个一排列的子串. 感觉这么描述比较诡异,换句话来说就是把每个字符串都切成一堆字符,然后找一个字符串使得切开的字符在每一堆中个数分 ...

  3. AtCoder Regular Contest 065

    AtCoder Regular Contest 065 C - Daydream Score : 300300300 points 倒着来就行了,正着来会产生歧义匹配,dreamer,dreamdre ...

  4. AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...

  5. AtCoder Regular Contest 100 E - Or Plus Max Sos dp

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为2n2^n2n的数组,让你对于所有的1≤k≤2n−11\le k\le 2^n-11≤k≤2n−1求最大的ai+aj,0≤i<j≤2n−1 ...

  6. AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

    AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...

  7. NOMURA Programming Contest 2021(AtCoder Regular Contest 121)

    文章目录 A - 2nd Greatest Distance B - RGB Matching C - Odd Even Sort D - 1 or 2 E - Directed Tree F - L ...

  8. AtCoder题解——AtCoder Regular Contest 107——B - Quadruple

    题目相关 题目链接 AtCoder Regular Contest 107 B 题,https://atcoder.jp/contests/arc107/tasks/arc107_b. Problem ...

  9. AtCoder Regular Contest 062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer

    题目传送门:https://arc062.contest.atcoder.jp/tasks/arc062_c 题目大意: 给你\(N\)块正方形木板,每块木板四角有四种颜色(可以相同),木板中央有编号 ...

最新文章

  1. 基于mpi的奇偶排序_并行程序设计(第2版)pdf
  2. 行人重识别技术不断突破 安防企业力拔头筹
  3. php mysql返回条数据,php – MySQL两次返回数据
  4. java代码调用python_Java调用Python
  5. 区分Activity的四种加载模式(转)
  6. Martin Fowler:数字化时代,远程与本地协同工作孰优孰劣?| IDCF
  7. html排序按钮_插件分享 | 可进行排序扫描任务的Task Queue
  8. iOS MBProgressHUD 之带底板的加载提示
  9. 修改数据包欺骗服务器,Fiddler协议捕获编辑工具与Session欺骗原理详解
  10. 信用算力基于 RocketMQ 实现金融级数据服务的实践
  11. 谁说烟草公司做不好数字化转型!通过BI工具,一年节约成本79万
  12. 可用性高达五个9!支付系统高可用架构设计实战
  13. Go by Example练习
  14. Atmospheric Scattering in Unity5
  15. SSM框架下的注册验证
  16. 雨林木风YN9.9三分极速速终结版 http://www.51ylmf.cn
  17. 新的分享之路开启,感谢您的陪伴
  18. js抓取今日头条文章
  19. vs 开发 win32 程序,调出控制台那个黑乎乎的窗口,方便调试
  20. LLC环路计算与仿真分析——K因子法

热门文章

  1. nginx压力测试和并发预估
  2. PHP命名空间(Namespace)的使用详解(转)
  3. MySQL 故障集锦
  4. Windows Embedded Compact 7网络编程概述(上)
  5. Android开发之旅:环境搭建及HelloWorld
  6. sqlserver2008 R2中查找未使用过的索引
  7. windows 下搭建Web服务器
  8. 异构数据库转换工具的结构说明
  9. WICC上了全球很多家交易所,它是一种资产和流动性的代表
  10. 一文看懂BCH减半时间计算及减半影响