P3909 异或之积

为什么叫做异或之积?

答曰:只要不关乎Alice和Bob就行


做完这道水题,感觉自己弱爆了。

一开始就要考虑暴力\(O(n^3)\)的优化。

然后就注意到了题目中的\(6\)为什么不是⑨

然后就想到了全排列,然后根据全排列瞎搞了一波。

如下:

注意到\(A_i*A_j*A_k=A_j*A_k*A_i\),然后三个元素的全排列个数就是6

然后题意转变为从一堆数中,不重复,不遗漏的选出三个元素,求出所有三元组的积的和

怎么实现呢?

一开始就是\(O(N^3)\)的暴力

然后发现可以利用前缀和的思想,将后两个数的乘积算出来,在前缀和一下。然后在\(O(N)\)的枚举第一个数,利用前缀和计算出和

然后又可以使用类似的思想,将那个\(O(N^2)\)的预处理也变成\(O(N)\)的。

但是

我调了好久,还是没有gan出来。

然后看了看其他人的code。发现

我们只要处理出三个前缀和就行了。

代码如下

#include<cstdio>
#include<algorithm>
#include<iostream>
const int maxn=1000010;
const long long mod=1e9+7;
int s[maxn];
int S[maxn];
int main()
{
int n;
scanf("%d",&n);
long long pas;
long long ans=0;
for(int i=1;i<=n;i++)
{
scanf("%lld",&pas);
s[i]=(s[i-1]+pas)%mod;
S[i]=(S[i-1]+pas*s[i-1])%mod;
ans=(ans+pas*S[i-1])%mod;
}
pas=ans;
for(int i=1;i<=5;i++)
ans=(ans+pas)%mod;
printf("%lld",ans);
}

真的是纯真不做作。吐血emmm

发现自己口胡了一波看似正解的东西,被一波code技巧打败了。

sad

P3909 异或之积的更多相关文章

  1. 洛谷——P3909 异或之积

    P3909 异或之积 题目描述 对于A_1,A_2,A_3,\cdots,A_NA1​,A2​,A3​,⋯,AN​,求 (6\times \sum_{i=1}^N\sum_{j=i+1}^N\sum_ ...

  2. 洛谷 P3909 异或之积 题解

    原题链接 本人看了其它解法,发现本人的解法还是 首创 ! 而且我的解法好像和 \(\times 6\) 没什么关系 -- (如果没 \(\times 6\),我没还不用算逆元) 别人的思路呢,大都是从 ...

  3. 【洛谷P3909】异或之积

    题目大意:给定一个 N 个数字组成的序列,求 \[ \left(6 \times \sum_{i=1}^{N} \sum_{j=i+1}^{N} \sum_{k=j+1}^{N} A_{i} \tim ...

  4. 题解:luogu P3909

    这个题拖了快三个月了,只因缺个快速乘(气愤.jpg). 题目链接:P3909 异或之积 你确定没人用前缀和,后缀和吗? 蒟蒻想法与众不同! 我们实验\(A[]={1,2,3,4}\). 这里计不乘6时 ...

  5. bzoj4561: [JLoi2016]圆的异或并

    Description 在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个 ...

  6. 计数方法(扫描线):JLOI 2016 圆的异或并

    Description 在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个 ...

  7. bzoj4561: [JLoi2016]圆的异或并 圆的扫描线

    地址:http://www.lydsy.com/JudgeOnline/problem.php?id=4561 题目: 4561: [JLoi2016]圆的异或并 Time Limit: 30 Sec ...

  8. bzoj 4561: [JLoi2016]圆的异或并

    Description 在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个 ...

  9. BZOJ4561:圆的异或并(扫描线+set||splay||线段树)

    在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面    积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个圆内则不考虑. I ...

随机推荐

  1. TOJ 2814 Light Bulb

    Description Compared to wildleopard's wealthiness, his brother mildleopard is rather poor. His house ...

  2. Linux虚拟内存系统详解

    本文章以Linux为例,讲解一下虚拟内存系统的工作原理,windows系统的原理也是大同小异,有兴趣的读者可以自行查阅相关资料. linux内核以及它管理用户内存的机制,下面我们以应用程序gonzo的 ...

  3. 【转】使用Python的Requests库进行web接口测试

    原文地址:使用Python的Requests库进行web接口测试 1.Requests简介 Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写, ...

  4. jquery获取元素与屏幕高度距离

    a. onscroll事件 scroll是css样式中overflow的一个值,意思是显示滚动条;当一个元素的实际高度超过他的最大高度是,只要设置了overflow为scroll b. $(..).s ...

  5. 关于EF更新数据库,更新指定字段的设置

    1.关于EF跟新数据库更新指定字段的设置 在EF提交到数据库的时候或许某些字段不想更新.或者自己更新一个模型到数据库去! 1.更新数据不更新一些字段 /// <summary> /// 数 ...

  6. NodeJs异步上传multer插件报Multipart: Boundary not found错误解决方法

    NodeJs-express架构下实现文件上传两大利器: 1.前端异步插件h5uploader https://github.com/wewoor/h5uploader 2.后端处理multer ht ...

  7. 弱类型dynamic与var

    dynamic与var都可代替任何类型 var关键字是C# 3.0开始新增的特性,称为推断类型. 1.必须在定义时初始化 2.一但初始化完成就不能再给变量赋与初始化值类型不同的值 3.var要求是局部 ...

  8. PCA (主成分分析)详解——转载 古剑寒

    转载地址:http://my.oschina.net/gujianhan/blog/225241 另外可以参考相关博文:http://blog.csdn.net/neal1991/article/de ...

  9. 梁宇轩 mysql 语句学习一 对表的操作

    1.SHOW TABLES;           -- 查询库中所有的表 2 .CREATE TABLE test(id INT(20) PRIMARY KEY NOT NULL AUTO_INCRE ...

  10. 同源策略和Jsonp、CORS

    一.同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之 ...