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 异或之积的更多相关文章
- 洛谷——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_ ...
- 洛谷 P3909 异或之积 题解
原题链接 本人看了其它解法,发现本人的解法还是 首创 ! 而且我的解法好像和 \(\times 6\) 没什么关系 -- (如果没 \(\times 6\),我没还不用算逆元) 别人的思路呢,大都是从 ...
- 【洛谷P3909】异或之积
题目大意:给定一个 N 个数字组成的序列,求 \[ \left(6 \times \sum_{i=1}^{N} \sum_{j=i+1}^{N} \sum_{k=j+1}^{N} A_{i} \tim ...
- 题解:luogu P3909
这个题拖了快三个月了,只因缺个快速乘(气愤.jpg). 题目链接:P3909 异或之积 你确定没人用前缀和,后缀和吗? 蒟蒻想法与众不同! 我们实验\(A[]={1,2,3,4}\). 这里计不乘6时 ...
- bzoj4561: [JLoi2016]圆的异或并
Description 在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个 ...
- 计数方法(扫描线):JLOI 2016 圆的异或并
Description 在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个 ...
- bzoj4561: [JLoi2016]圆的异或并 圆的扫描线
地址:http://www.lydsy.com/JudgeOnline/problem.php?id=4561 题目: 4561: [JLoi2016]圆的异或并 Time Limit: 30 Sec ...
- bzoj 4561: [JLoi2016]圆的异或并
Description 在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个 ...
- BZOJ4561:圆的异或并(扫描线+set||splay||线段树)
在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个圆内则不考虑. I ...
随机推荐
- 【CAD】自定义实体的步骤(转)
本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h"," ...
- java中创建User Libray
第一步:右键项目==>Build Path ==>Configure Build Path... 第二步:选择Libraries==>点击 Add Library.. 第三步:选择U ...
- HDU 4460 Friend Chains
Problem Description For a group of people, there is an idea that everyone is equals to or less than ...
- 获取全球dns统计信息
# -*- coding:UTF-8 -*- import requests, time import json from bs4 import BeautifulSoup as bp t3 = ti ...
- 1个示例 学会 mvc 常用标签
HtmlHelper用法大全3:Html.LabelFor.Html.EditorFor.Html.RadioButtonFor.Html.CheckBoxFor @Html.***For:为由指定 ...
- flutter Failed to setup Skia Gr context导致白屏
添加 --enable-software-rendering参数运行 G:\soft\flutter\project\hello_world> flutter run --enable-soft ...
- 05.while循环的练习
练习1: namespace _05.while循环练习01 { class Program { static void Main(string[] args) { //打印100次"努力学 ...
- 2017 年 9 月 27 日 js(文本框内容添加到select)
写法 <!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- java常用API之字符串缓冲区
StringBuffer类: StringBuffer是个字符串的缓冲区,是可变的字符串数组,即就是它是一个容器,容器中可以装很多字符串.并且能够对其中的字符串进行各种操作 StringBuffer的 ...
- <form> 标签的 enctype 属性
值 描述 application/x-www-form-urlencoded 在发送前编码所有字符(默认) multipart/form-data 不对字符编码.在使用包含文件上传控件的表单时,必须使 ...