题目传送门

求和

格式难调,题面就不放了。


  分析:

  $ZYYS$的一道题。

  很显然是大力推公式。我们分析一下题目,实际上限制条件就是:下标同奇偶且颜色相同的数,那么我们先拿这个公式$(x+z)*(num_x+num_z)$套三个变量$x,y,z$推一下:

  $(x+z)*(num_x+num_z)=num_x*x+num_z*z+num_x*z+num_z*x$

  $(x+y)*(num_x+num_y)=num_x*x+num_y*y+num_x*y+num_y*x$

  $(z+y)*(num_z+num_y)=num_z*z+num_y*y+num_z*y+num_y*z$

  然后求和得到:

  $tot=num_x*(x+y+z)+num_x*x+num_y*(x+y+z)+num_y*y+num_z*(x+y+z)+num_z*z$

  如果我们把它变成普适公式,就是:(其中的$cnt$表示元素个数)

  $tot=\sum_x (num_x*x*(cnt-2))+\sum_x x*\sum_x num_x$

  当然,这只是同一种颜色在同奇偶的情况下的和,在扩大到全部范围,那就是:

  $ans=\sum_{color}\sum_{i\ mod\ 2}tot$

  $=\sum_{color}\sum_{i\ mod\ 2}(\sum_x (num_x*x*(cnt-2))+\sum_x x*\sum_x num_x)$

  用前缀和优化一下,然后求和就行了。

  代码略丑。

  Code:

//It is made by HolseLee on 23rd Oct 2018
//Luogu.org P2671
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mod (10007)
using namespace std;typedef long long ll;
const ll N=1e5+7;
ll n,m,a[N],col[N],num[N][2],sum[N][2],suma[N][2],cnt[N][2],ans;
//a就是题目中的数值,num是下标和,sum是a[i]*i的和
//suma是a的和,cnt是同奇偶且颜色相同的元素个数int main()
{ios::sync_with_stdio(false);cin>>n>>m;for(ll i=1; i<=n; ++i) cin>>a[i];for(ll i=1; i<=n; ++i) cin>>col[i];for(ll i=1; i<=n; ++i) {(num[col[i]][i&1]+=i)%=mod;(suma[col[i]][i&1]+=a[i])%=mod;cnt[col[i]][i&1]++;(sum[col[i]][i&1]+=(a[i]*i%mod))%=mod;}for(ll i=1; i<=m; ++i)for(ll j=0; j<=1; ++j) {ans=(ans+(suma[i][j]*num[i][j])%mod+(sum[i][j]*(cnt[i][j]-2))%mod)%mod;}cout<<ans<<'\n';return 0;
}

转载于:https://www.cnblogs.com/cytus/p/9840151.html

洛谷P2671 求和 [数论]相关推荐

  1. 洛谷P1082 同余方程 数论

    洛谷P1082 同余方程 数论 要求 ax === 1 (mod b) 相当于求 ax + by == 1 的解 并要求 x 为最小的正整数 这样我们只要 扩展欧几里德来一发,然后最小正整数 取 mo ...

  2. YBTOJ反素数洛谷P1463(数论)

    YBTOJ反素数&&洛谷P1463() 题目传送门 打表什么的就不说了,主要讲讲正解. 对于每个反素数,有如下性质: 性质1: 1~ N中的最大的反质数,就是1~N中约数个数最多的数中 ...

  3. 洛谷 P1890 gcd区间

    P1890 gcd区间 题目提供者 洛谷OnlineJudge 标签 数论(数学相关) 难度 普及/提高- 题目描述 给定一行n个正整数a[1]..a[n]. m次询问,每次询问给定一个区间[L,R] ...

  4. 算法刷题【洛谷P1593】因子和(附等比数列求和公式推导)

    异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...

  5. 洛谷---数学---数论

    洛谷---数学---数论 http://www.luogu.org 单看 数学 数论 的书,纯理论,看不进,决定还是从做题开始,不明白的地方再看书,以上机训练,促进看书,同样 从 简单--->难 ...

  6. 洛谷 P3384 【模板】树链剖分-树链剖分(点权)(路径节点更新、路径求和、子树节点更新、子树求和)模板-备注结合一下以前写的题目,懒得写很详细的注释...

    P3384 [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节 ...

  7. 洛谷 深基 第4部分 基础数学与数论(19-21课)

    洛谷 深基 第4部分 基础数学与数论  第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...

  8. 洛谷P1414 又是毕业季II 数论

    洛谷P1414 又是毕业季II 数论 d[ i ] 表示这些数中有几个数有因数 i 对于输入的每个数 都sqrt(val) 记录下 然后问你 n个数的最大公约数是多少, 相当于是问你 有 n 个数 有 ...

  9. 数论 GCD 最大公约数 欧拉函数经典题 洛谷 CF1295D Same GCDs Codeforces1295D

    ​前言 两个月了,我终于更了-- 这两个月忙(chen)于(mi)内(xiang)卷(le),现在终于出新文章啦,(也算兑现了当初的出数论题文章的承诺)~ 不说废话了,今天给大家介绍一道CF/洛谷上的 ...

最新文章

  1. 金升阳5V开关电源LM25-23B05
  2. iOS本地化项目上传到gitHub
  3. Wireshark的入门使用
  4. Windows系统MySQL8.0的安装教程
  5. leetcode 229. Majority Element II | 229. 求众数 II(找出现次数超过n/k的元素)
  6. [2021.1.31多校省选模拟12]随机变换的子串(线段树维护分治/字符串/自动机思想)
  7. TensorFlow构建二维数据拟合模型(3)
  8. python实例 83,84
  9. java代码运行Python程序
  10. SpringCloud学习笔记026---SpringBoot中使用不同类型的数据库_MySql_PostGreSql_使用template
  11. java 五大原则_面向对象五大原则
  12. 怎么离线发布全国谷歌高清卫星影像地图瓦片
  13. 为 windows cmd 设置代理
  14. PS一分钟打造手机渐变壁纸
  15. 微信网页授权登入--laravel组件 laravel-wechat调用
  16. html鼠标悬停模糊,模糊效果鼠标悬停清晰
  17. Android必学之AsyncTask,多线程AsyncTask,详细AsyncTask使用教程
  18. 安兔兔电脑ssd测试软件,安兔兔SSD测试软件测评,威钰战国NVMe SSD
  19. 利用茉莉机器人接口开发一个简单的安卓机器人app
  20. 安卓SDK和安卓版本的对应关系

热门文章

  1. java 克隆对象工具类_关于dorado-core源码包中CloneUtils克隆工具类对对象进行克隆复制操作...
  2. Mac OS X 10.9 装gdb
  3. Parallel 并发编程实例
  4. golang函数后的 {
  5. 字符串复制中的while条件
  6. Linux日志系统-04:logrotate命令格式
  7. powershell实例第1讲:判断某个文件夹是否存在,存在则删除
  8. 开发相关手册、STM32各种库文件、相关软件、工具连接等(不断更新)
  9. 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( )?
  10. springboot:自动配置原理入门