CSP-J历届真题总结

P2671 [NOIP 2015 普及组] 求和

题目描述

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

编号 1 2 3 4 5 6
颜色和数字 \(\color{blue}{5}\) \(\color{blue}{5}\) \(\color{red}{3}\) \(\color{red}{2}\) \(\color{blue}{2}\) \(\color{red}{2}\)

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

  1. \(x,y,z\) 都是整数,\(x<y<z,y-x=z-y\)

  2. \(color_x=color_z\)

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

输入格式

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

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

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

输出格式

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

输入输出样例 #1

输入 #1

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

输出 #1

82

输入输出样例 #2

输入 #2

15 4
5 10 8 2 2 2 9 9 7 7 5 6 4 2 4
2 2 3 3 4 3 3 2 4 4 4 4 1 1 1

输出 #2

1388

说明/提示

样例 1 解释

纸带如题目描述中的图所示。

所有满足条件的三元组为:\((1, 3, 5), (4, 5, 6)\)

所以纸带的分数为 \((1 + 5) \times (5 + 2) + (4 + 6) \times (2 + 2) = 42 + 40 = 82\)

对于第 \(1\) 组至第 \(2\) 组数据, \(1 ≤ n ≤ 100, 1 ≤ m ≤ 5\)

对于第 \(3\) 组至第 \(4\) 组数据,\(1 ≤ n ≤ 3000, 1 ≤ m ≤ 100\)

对于第 \(5\) 组至第 $ 6 $ 组数据,\(1 ≤ n ≤ 100000, 1 ≤ m ≤ 100000\),且不存在出现次数超过 $ 20 $ 的颜色;

对于全部 \(10\) 组数据,\(1 ≤ n ≤ 100000, 1 ≤ m ≤ 100000, 1 ≤ color_i ≤ m,1≤number_i≤100000\)

题解

首先,我们可以观察到分数是只与\(x\)\(z\)有关。
那么我们便可以忽略掉\(y\)
那么要求就从枚举三元组变为了枚举二元组且\(z-x\)不能被\(2\)整除
那就可以发现\(x,z\)的奇偶性相同
那么朴素的方法就是枚举\(x,z\)
时间复杂度为\(O(n^2)\)
无法通过这道题的所有数据。
那让我们再把目光看回到答案式子,
\((x+z)\times(number_x+number_z)\)
可以用乘法分配律将其拆开,
\(x\times(number_x+number_z)+z\times(number_x+number_z)\)
那么显然可以维护颜色为\(i\),奇偶性为\(j\)\(number\)\(sum_{i,j}\),格子个数\(size_{i,j}\)
则那么对于每个格子\(x\),对答案的贡献就是\(i \times (sum_{i,j}-number_i) + i \times number_i \times (size_{i,j}-1)\)
化简式子,得\(i \times sum_{i,j}+i \times (size_{i, j} - 2) \times number_i\)

Code:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7, mod = 10007;
int n, m;
int color[N], number[N];
long long sum[N][2], sz[N][2], ans;
inline int read(){int sum = 0, f = 1;char c = getchar_unlocked();while(c < '0' || c > '9'){if(c == '-') f = -1;c = getchar_unlocked();}while(c >= '0' && c <= '9'){sum = (sum << 3) + (sum << 1) + (c - 48);c = getchar_unlocked();}return sum * f;
}
int main(){n = read();m = read();for(int i = 1; i <= n; i++){number[i] = read() % mod;}for(int i = 1; i <= n; i++){color[i] = read();sum[color[i]][i & 1] = (sum[color[i]][i & 1] + number[i]) % mod;sz[color[i]][i & 1]++;}for(int i = 1; i <= n; i++){int c = color[i], op = i & 1;ans = (ans + i * sum[c][op] % mod + (sz[c][op] - 2) * i * number[i] % mod ) % mod;}printf("%lld\n", ans);return 0;
}
//最优解前10ヾ(≧▽≦*)o

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/940900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你们的SpringBoot项目使用Mybatis还是Spring Data JPA?

前言 最近有球友问了我一个问题:SpringBoot项目到底该用Mybatis还是Spring Data JPA? 这个问题,我几乎在每个项目启动时都会被团队问到。 有些小伙伴在工作中,一看到数据库操作就头疼,选框架时犹豫不决,生怕选错…

免费开源!一款操作 MySQL 和 MariaDB 的 Web 界面工具!

phpMyAdmin —— 一个免费开源、基于 PHP 的 MySQL/MariaDB 数据库管理 Web 工具,通过提供一个直观的图形用户界面,来执行大多数数据库管理任务。大家好,我是 Java陈序员。 之前,给大家介绍过一款开源的 Web 数据库…

MATLAB中海洋要素计算工具箱解析

一、工具箱概述 1. 功能定位 Seawater工具箱是专为海洋学研究设计的MATLAB函数库,基于国际标准(如TEOS-10和EOS-80)实现海水物理化学参数的精确计算,支持海洋动力学建模、环境监测数据分析等场景。 2. 核心特性标准…

2025年10月豆包排名优化服务推荐排行榜单:十家服务商综合对比与评测分析

一、引言 在人工智能技术快速发展的今天,生成式引擎优化即GEO服务已成为企业提升在豆包等AI平台可见度的重要工具。对于众多创业者、市场营销负责人及企业管理者而言,选择专业的GEO服务商直接关系到品牌曝光效果、获…

日常问题排查-Younggc突然变长 - 无毁的湖光

日常问题排查-Younggc突然变长 前言 研发突然反馈一个版本上线后线上系统younggc时间变长,而这个版本修改的代码就是非常普通的CRUD,但是younggc时间就硬生生暴涨了100%。导致天天告警,虽然问题不大,但非常想知道原…

2025年铸造与机加工自动化厂家推荐排行榜,重力铸造自动化,机加工自动化公司推荐!

2025年铸造与机加工自动化厂家推荐排行榜,重力铸造自动化,机加工自动化公司推荐!行业背景在制造业快速发展的当下,铸造与机加工自动化领域正经历着深刻的变革。随着劳动力成本的上升、生产效率要求的提高以及产品质…

ICPC2023沈阳 游记(VP)

砍下铜中,又是主包猪鼻如果罚时管理优秀又银了(没错永远都是“差点”银)。省流 砍下铜中,又是主包猪鼻如果罚时管理优秀又银了(没错永远都是“差点”银)。10.19 内含剧透,请vp后再来。 不是题解!!!!!!! …

2025年给汤机厂家推荐排行榜,优质给汤机,精准给汤,高效稳定公司推荐!

2025年给汤机厂家推荐排行榜,优质给汤机,精准给汤,高效稳定公司推荐!一、行业背景在现代工业生产中,给汤机作为压铸生产线上的关键设备,其重要性日益凸显。压铸工艺广泛应用于汽车、电子、航空航天等众多领域,而…

2025年10月豆包排名优化服务排行榜评测:十家优质服务商综合对比分析报告

一、引言 在人工智能技术快速发展的当下,生成式引擎优化即GEO,特别是针对豆包等主流AI平台的排名优化服务,已成为企业数字化转型不可或缺的一环。对于广大创业者、市场营销负责人及企业决策者而言,选择专业的GEO服…

2025?CTF(部分wp) -- week1

2025?CTF -- week1crypto Basic Number theory 题目: from Crypto.Util.number import * from secret import flagdef gift(m, prime):return pow(m, (prime + 1) // 2, prime)m = bytes_to_long(flag) p = getPrime…

2025年10月豆包排名优化服务推荐排行榜:十大服务商对比评测与选择指南

一、引言 在人工智能技术快速发展的当下,生成式引擎优化即GEO,特别是针对豆包等平台的排名优化,已成为企业提升数字化竞争力的关键环节。对于广大创业者、市场负责人及企业管理者而言,如何选择高效、可靠且成本可控…

2025?CTF(部分wp) -- week2

2025?CTF -- week2crypto AES_mode 题目: from Crypto.Cipher import AES from Crypto.Util.Padding import pad import binascii from Crypto.Util.number import bytes_to_long from secret import flag import os…

为WPF应用增加项目图标

前言 本文梳理一下怎么给WPF应用增加自己的项目图标,还是以Rouyan为例进行说明。 过程 首先想一下这个项目图标想要运用在哪些地方。在WPF中你想为你的应用增加你的项目图标主要在这三个地方。 1、应用程序图标设置 2…

完整教程:基于YOLOv8-OBB的SAR图像目标检测系统

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于STM32单片机的ECG心电滤波算法

基于STM32单片机的ECG心电滤波算法一、系统架构设计 1. 硬件组成主控芯片:STM32L476(Cortex-M4内核,1MB Flash,16KB RAM) 信号采集:ADXL345三轴加速度计(运动伪迹检测) ADC模块:ADS1292(24位分辨率,250Hz采…

《掰开揉碎讲编程-长篇》一文读懂 哈希表

博主粉丝群介绍: ① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。 ② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。 ③ 群内也有职场精英,…

CF2128E2 Submedians (Hard Version)

考虑一个很直觉的东西,可行的中位数一定是连续的。具体来说,你将一个区间左右端点扩展,中位数一定只会有 \(+1, -1\) 的变化,因此覆盖到的区间一定是连续的。 我们找出可以的最小的中位数,和最大的中位数,类似莫…

Java 网络编程详解

Java 网络编程详解Java 网络编程是指通过 Java 语言实现计算机之间的网络通信,核心是利用 Java 提供的网络类库(如 java.net 包)操作 TCP/IP 协议,实现数据的发送与接收。无论是客户端与服务器的通信、分布式系统交…

Office365破解版下载(附永久激活密钥) 及安装使用教程

Office365破解版下载(附永久激活密钥) 及安装使用教程Office 365 是一套集成了 Word、Excel、PowerPoint、Teams、OneDrive 等工具的生产力套件,通过云服务实现高效协作与智能办公。以下是实用技巧,助你提升工作效率…

【URP】Unity中Mipmap Streaming原理与实现

摘要: Unity URP的纹理流送技术通过动态加载纹理的Mipmap层级优化显存使用。传统Mipmap会预加载所有层级(占用显存为原始纹理的4/3倍),而流送技术根据物体与摄像机的距离,仅加载当前所需的层级,其他层级按需异步…