当前位置: 首页 > news >正文

题解:洛谷 P2671 [NOIP 2015 普及组] 求和

【题目来源】

洛谷:[P2671 NOIP 2015 普及组] 求和 - 洛谷

【题目描述】

一条狭长的纸带被均匀划分出了\(n\)个格子,格子编号从\(1\)\(n\)。每个格子上都染了一种颜色\(color_i\)\([1,m]\)当中的一个整数表示),并且写了一个数字\(number_i\)

image

定义一种特殊的三元组:\((x,y,z)\),其中\(x,y,z\)都代表纸带上格子的编号,这里的三元组要求满足以下两个条件:

  1. \(x,y,z\)是整数,\(x<y<z,y−x=z−y\)
  2. \(color_x=color_z\)

满足上述条件的三元组的分数规定为\((x+z)×(number_x+number_z)\)。整个纸带的分数规定为所有满足条件的三元组的分数的和。这个分数可能会很大,你只要输出整个纸带的分数除以\(10007\)所得的余数即可。

【输入】

第一行是用一个空格隔开的两个正整数\(n\)\(m\)\(n\)表纸带上格子的个数,\(m\)表纸带上颜色的种类数。

第二行有\(n\)用空格隔开的正整数,第\(i\)数字表示纸带上编号为\(i\)格子上面写的数字\(number_i\)

第三行有\(n\)用空格隔开的正整数,第\(i\)数字表示纸带上编号为\(i\)格子染的颜色\(color_i\)

【输出】

一个整数,表示所求的纸带分数除以\(10007\)所得的余数。

【输入样例】

6 2
5 5 3 2 2 2
2 2 1 1 2 1

【输出样例】

82

【算法标签】

《洛谷 P2671 求和》 #线性数据结构# #排序# #前缀和# #NOIP普及组# #2015#

【代码详解】

#include <bits/stdc++.h>
using namespace std;// 定义全局变量
long long cnt[100005][2];  // cnt[color][parity]: 统计每个颜色在奇数/偶数位置的出现次数
long long sum[100005][2];  // sum[color][parity]: 统计每个颜色在奇数/偶数位置的数值和
long long a[100005];       // 存储原始数值数组
long long col[100005];     // 存储颜色数组/*
解题思路:
1. 统计每个颜色在奇数位置和偶数位置的出现次数(cnt)和数值和(sum)
2. 对于每个元素,计算其贡献值:i * ((cnt-2)*a[i] + sum)
3. 将所有元素的贡献值累加,得到最终结果
4. 过程中需要对10007取模防止溢出
*/int main()
{// 输入数据int n, m;  // n: 元素个数, m: 颜色种类数cin >> n >> m;// 读取数值数组for (int i=1; i<=n; i++) {cin >> a[i];}// 读取颜色数组并统计cnt和sumfor (int i=1; i<=n; i++) {cin >> col[i];cnt[col[i]][i%2]++;           // 统计该颜色在奇数/偶数位置的出现次数sum[col[i]][i%2] += a[i];     // 累加该颜色在奇数/偶数位置的数值和}// 计算最终结果long long ans = 0;for (int i=1; i<=n; i++) {int c = col[i];  // 当前元素的颜色int parity = i%2; // 当前元素的奇偶位置// 计算当前元素的贡献值:// i * ((cnt-2)*a[i] + sum) mod 10007// 注意处理负数情况:(cnt-2+10007)%10007long long term1 = (cnt[c][parity] - 2 + 10007) % 10007 * a[i] % 10007;long long term2 = sum[c][parity] % 10007;ans = (ans + i * (term1 + term2) % 10007) % 10007;}// 输出结果cout << ans;return 0;
}

【运行结果】

6 2
5 5 3 2 2 2
2 2 1 1 2 1
82
http://www.jsqmd.com/news/394189/

相关文章:

  • YOLO26涨点改进 | 全网独家创新,注意力改进篇| SCI一区Top | 引入AFCA自适应细粒度通道注意力,联合建模全局与局部通道依赖关系,适合目标检测、图像去雾、关键点检测、图像分类、图像分割
  • 【一文读懂】RAG的重要组成-向量数据库
  • 告别 DNS 污染与封锁:手把手教你免费搭建独享 Cloudflare DoH 服务器,全球都可访问!使用Cloudflare Zero Trust功能。
  • 实测对比后!千笔,口碑爆棚的降AIGC工具
  • RAG系统优化指南:Chunk分块策略详解,从入门到精通,收藏这一篇就够了!!
  • 题解:洛谷 P7072 [CSP-J 2020] 直播获奖
  • 2026最新!千笔ai写作,MBA论文写作利器
  • 奥数-代数 - ace-
  • 【STFT-CNN-BiGRU的故障诊断】基于短时傅里叶变换(STFT)结合卷积神经网络(CNN)与双向门控循环单元BiGRU的故障诊断研究附Matlab代码
  • 2026年35岁程序员的5条出路:AI赛道疯狂抢人,年薪百万不是梦
  • 【无人机部署】基于k - means、网格、随机算法改变UAV的数量来观察不同放置策略对总链路比特率的影响附matlab代码
  • 【图像加密】基于维纳滤波器和运动模糊的点扩散函数的图像加密算法研究附matlab代码
  • 【AI大模型】带你解析9种提速又提效的Transformer优化方案!
  • 一文总结!2026年大模型Agent RL训练多轮planning技术,收藏这篇就够了!
  • COMSOL激光超声仿真:激光超声-3维lamb波的数值模拟 版本为6.1,低于此版本打不开此模型
  • 实测对比后!千笔,普遍认可的降AIGC工具
  • 看完就会:自考必备的AI论文软件 —— 千笔·专业论文写作工具
  • 黑河工控产品口碑揭晓:2026年口碑佳的厂商有哪些,施耐德电气/工控产品/电气自动化/中低压电气,工控产品公司口碑推荐 - 品牌推荐师
  • 污水处理软件参考:从通讯到材料准备
  • 写作小白救星!千笔,好评如潮的一键生成论文工具
  • 【SRC】SSRF (服务端请求伪造) 专项挖掘与实战笔记
  • 从“万物互联”到“万物智联”:物联网如何重塑我们的世界
  • 国内优质外墙保温装饰一体板制造厂——廊坊柏能节能科技有限公司推荐,装饰一体板,保温装饰一体板优质厂家排名 - 品牌推荐师
  • 零成本从0到1搭建个人博客
  • K8s注解的指令模式:元资料如何控制集群行为
  • 奥数中含有的概念 - ace-
  • 带爸妈看春节档电影不踩雷!口碑爆棚的《惊蛰无声》到底值不值得看? - SFMEDIA
  • 一文搞懂【动手学STM32G4】(6)STM32G431之DAC输出:核心原理+实战案例
  • 2026年,一览目前比较好的乙醇厂家排行,回收酒精/回收废乙醇/回收异丙醇/食用酒精/工业乙醇,乙醇源头厂家哪个好 - 品牌推荐师
  • 【MyBatis Exception】Public Key Retrieval is not allowed