洛谷P2671 求和 数学 前缀和
洛谷P2671 求和
数学 公式转化 前缀和
题意 设三元组 x y z 要求 x < y < z y-x = z-y
且要求 color[ x ] == color[ z ]
比如说 求当前是 z 那么之前的 x 对 这个答案的贡献
设满足条件 的有count 个 分别 为 x1 x2 x3 x4
贡献为 (x1+z)*(num1+numz)+(x2+z)*(num2+z)+(x3+z)*(num3+numz) ....
答案 = x1*num1+x1numz+znum1+znumz +...
= sigama(xi*numi) + sigama(xi)*numz + siagma(numi)*z+ count *z*numz 公式
这样就只要记录一下每一个符合条件的 前缀和
用着个前缀来更新答案就行了 不过要注意要经常取mod
求所有符合条件的三元组的 价值总和
其实我们发现只有 x z 奇偶性相同时才能累加上去
我们开一个前缀 s[ t ][ c ][ ] 表示 奇偶性为 t ,颜色 为 c 的累加上去
0 表示 这样数的个数 count
1 表示 sigama(xi)
2 表示 sigama(numi)
3 表示 sigama(xi * numi)
然后套在公式上就行了
1 #include <cstdio> 2 #include <cmath> 3 #include <cstdlib> 4 #include <cstring> 5 #include <string> 6 #include <algorithm> 7 #include <iostream> 8 #include <iomanip> 9 #define ll long long 10 using namespace std ; 11 12 const ll maxn = 100011,mod = 10007 ; 13 int n,m,ans ; 14 int number[ maxn ],color[ maxn ],s[2][maxn][4] ; 15 16 inline ll read() 17 { 18 char ch = getchar() ; 19 int x = 0,f =1 ; 20 while(ch<'0'||ch>'9') { if(ch=='-') f = -1 ; ch = getchar() ; } 21 while(ch>='0'&&ch<='9') {x = x*10 + ch - 48 ; ch = getchar() ; } 22 return x * f ; 23 } 24 25 inline void init() 26 { 27 n = read() ; m = read() ; 28 for(int i=1;i<=n;i++) number[ i ] = read(),number[ i ] %= mod ; 29 for(int i=1;i<=n;i++) color[ i ] = read() ; 30 } 31 32 inline void work() 33 { 34 ans = 0 ; 35 for(int i=1;i<=n;i++) 36 { 37 int t = i%2,c = color[ i ],z = i% mod ,numz = number[ i ] % mod ; 38 int count = s[t][c][0] ,sumx = s[t][c][1],sumnum = s[t][c][2],sumx_num = s[t][c][3] ; 39 ans = ( ans + count * z % mod *numz % mod ) % mod ; 40 ans = ( ans + sumx*numz % mod) % mod ; 41 ans = ( ans + sumnum * z % mod ) %mod ; 42 ans = ( ans + sumx_num ) % mod ; 43 s[t][c][0]++ ; s[t][c][0] %=mod ; 44 s[t][c][1]+=z ; s[t][c][1] %=mod ; 45 s[t][c][2]+=numz; s[t][c][2] %=mod ; 46 s[t][c][3]+=z*numz % mod ; s[t][c][3] %=mod ; 47 } 48 } 49 50 inline void output() 51 { 52 printf("%d\n",ans) ; 53 } 54 55 int main() 56 { 57 init() ; 58 work() ; 59 output() ; 60 return 0 ; 61 }
转载于:https://www.cnblogs.com/third2333/p/7064473.html
洛谷P2671 求和 数学 前缀和相关推荐
- 洛谷P2671 求和 [数论]
题目传送门 求和 格式难调,题面就不放了. 分析: $ZYYS$的一道题. 很显然是大力推公式.我们分析一下题目,实际上限制条件就是:下标同奇偶且颜色相同的数,那么我们先拿这个公式$(x+z)*(nu ...
- 洛谷试炼场-简单数学问题-二分查找
洛谷试炼场-简单数学问题 P1147 连续自然数和 题解: 本题给定一个数n,求连续自然数的和为n,用一个前缀数组,low_bound,upper_bound,查找是否是同一个数.O(nlog(n)) ...
- 洛谷 P3216 [HNOI2011]数学作业
PS:如果读过题了可以跳过题目描述直接到题解部分 提交链接:洛谷 P3216 [HNOI2011]数学作业 题目 题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正 ...
- 洛谷P2433 小学数学 N 合一
写完了这道题结果脑子断电把浏览器关了......打开一看 没保存 寄 传送门:[深基1-2]小学数学 N 合一 - 洛谷 第一题 第二题 第三题 这几道题没啥好说的,直接输出就彳亍了 cout < ...
- [洛谷]P1978 集合 (#数学 -1.3)(#STL -1.1)
题目描述 集合是数学中的一个概念,用通俗的话来讲就是:一大堆数在一起就构成了集合.集合有如 下的特性: •无序性:任一个集合中,每个元素的地位都是相同的,元素之间是无序的. •互异性:一个集合中,任何 ...
- 一中OJ #3509 七的倍数 [USACO Jan16,洛谷P3131] | 同余前缀和 | 解题报告
一中OJ | #3509 七的倍数 [USACO Jan16 Silver , Subsequences Summing to Sevens] 时限 1000MS/Case 内存 128MB/Case ...
- 洛谷P2699 【数学1】小浩的幂次运算
题目思路 :(这应该是普及题里面很水的存在了)暴力判断, 只不过有个小坑就是当sum*w的时候会溢出(long)的问题. 所以我们要改进一下判断条件,从sum * w > r 变为 sum &g ...
- 【数学1】基础数学问题 - 题单 - 洛谷
这里写目录标题 [[数学1]基础数学问题 - 题单 - 洛谷](https://www.luogu.com.cn/training/117) [P1143 进制转换](https://www.luog ...
- 洛谷---数学---数论
洛谷---数学---数论 http://www.luogu.org 单看 数学 数论 的书,纯理论,看不进,决定还是从做题开始,不明白的地方再看书,以上机训练,促进看书,同样 从 简单--->难 ...
- 洛谷 P3384 【模板】树链剖分-树链剖分(点权)(路径节点更新、路径求和、子树节点更新、子树求和)模板-备注结合一下以前写的题目,懒得写很详细的注释...
P3384 [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节 ...
最新文章
- Windows系统下的 vbs病毒生成器使用方法!
- 如果从Silverlight 读取本地GB2312格式的xml文件
- 【51CTO/BBS】请教: SQL里有没有字符串组合Join的函数??
- CocoaPods更新遇redefinition问题及其它问题汇总
- [zjoi2015]幻想乡战略游戏
- 删除当前文件夹下特定名称文件
- jeecg标签属性exp 用法
- 解决Sql Server服务远程过程调用失败
- 【To Do!】程序员面试金典——18.8子串判断
- DeveloperAppleHelp
- 如何保障“双11”期间亿万买家和卖家愉快地聊天
- protocol buffer生成C语言的实现
- 测试系统工程师TSE的四项基本技能
- 阿里云ECS服务器修复漏洞
- 第26课:个人高效的秘籍 OKR 工作法
- 直播性能测试工具汇总
- 英语语法总结--状语从句
- ie浏览器调用本地文件无反应_ie浏览器打不开没反应
- 提拔!知名教授,副部长级
- 修改mq服务器ip,将外部IP地址绑定到Rabbit MQ服务器
热门文章
- Single Number 只出现一次的数字 python实现 - ...
- python Tk()、Frame()、TopLevel()用法
- Deep learning-based CSI Feedback for Beamforming 2
- heeds matlab,Isight FD4-CAE优化软件 与HEEDS对比
- linux桌面系统开启wifi,8089B开启Wifi的方法(默认的红旗linux系统)
- 代码整洁之道读书笔记----第一章---综述--第二节-整洁代码和我们的孩子
- perl软件使用报错总结
- 凸优化学习笔记(五):凸优化算法、无约束优化算法、有约束优化算法
- POJ1321-Chess Problem(dfs基础题)
- python list平均数_数据分析之Python干货笔记