【NOIP2016普及组复赛】题4:魔法阵

【NOIP普及组2016】魔法阵 听闻老前辈们道这道题好像很难的样子,于是我就去做了…… 然后我就TLE了 于是偷偷瞟了一眼大老前辈们的博客,发现这道题好像,还是枚举,只是有用到【数学方法】优化罢了 完了完了,一提到数学,我脑子里顿时腾起了层层云雾,所以最后决定还是来写写东西。 来吧!进入MAGIC的世界! 阅读详情

题4:魔法阵

【题目描述】

六十年一次的魔法战争就要开始了,大魔法师准备从附近的魔法场中汲取魔法量。

大魔法师有 mmm 个魔法物品,编号分别为 1,2,...m1,2,...m1,2,...m。每个物品具有一个魔法值,我们用 xix_ixi​ 表示编号为 iii 的物品的魔法值。每个魔法值 xix_ixi​ 是不超过 nnn 的正整数,可能有多个物品的魔法值相同。

大魔法师认为,当且仅当四个编号为 a,b,c,da,b,c,da,b,c,d 的魔法物品满足 xa<xb<xc<xd,xb−xa=2(xd−xc)x_a<x_b<x_c<x_d,x_b−x_a=2(x_d−x_c)xa​<xb​<xc​<xd​,xb​−xa​=2(xd​−xc​),并且 xb−xa<(xc−xb)÷3x_b−x_a<(x_c−x_b)÷3xb​−xa​<(xc​−xb​)÷3 时,这四个魔法物品形成了一个魔法阵,他称这四个魔法物品分别为这个魔法阵的 AAA 物品,BBB 物品,CCC 物品,DDD 物品。

现在,大魔法师想要知道,对于每个魔法物品,作为某个魔法阵的 AAA 物品出现的次数,作为 BBB 物品的次数,作为 CCC 物品的次数,和作为 DDD 物品的次数。

【输入】

输入的第一行包含两个空格隔开的正整数 nnn 和 mmm;

接下来 mmm 行,每行一个正整数,第 i+1i+1i+1 行的正整数表示 xix_ixi​,即编号为 iii 的物品的魔法值。

保证 1≤n≤15000,1≤m≤40000,1≤xi≤n1≤n≤15000,1≤m≤40000,1≤x_i≤n1≤n≤15000,1≤m≤40000,1≤xi​≤n。每个 xix_ixi​ 是分别在合法范围内等概率随机生成的。

【输出】

共输出 mmm 行,每行四个整数。第 iii 行的四个整数依次表示编号为 iii 的物品作为 A,B,C,DA,B,C,DA,B,C,D 物品分别出现的次数。

保证标准输出中的每个数都不会超过 10910^9109

每行相邻的两个数之间用恰好一个空格隔开。

【输入样例1】

30 8
1
24
7
28
5
29
26
24

【输出样例1】

4 0 0 0
0 0 1 0
0 2 0 0
0 0 1 1
1 3 0 0
0 0 0 2
0 0 2 2
0 0 1 0

【样例1说明】

共有 555 个魔法阵,分别为:

物品 1,3,7,61,3,7,61,3,7,6,其魔法值分别为 1,7,26,291,7,26,291,7,26,29;

物品 1,5,2,71,5,2,71,5,2,7,其魔法值分别为 1,5,24,261,5,24,261,5,24,26;

物品 1,5,7,41,5,7,41,5,7,4,其魔法值分别为 1,5,26,281,5,26,281,5,26,28;

物品 1,5,8,71,5,8,71,5,8,7,其魔法值分别为 1,5,24,261,5,24,261,5,24,26;

物品 5,3,4,65,3,4,65,3,4,6,其魔法值分别为 5,7,28,2905,7,28,2905,7,28,290 以物品 555 为例,它作为 AAA 物品出现了 111 次,作为 BBB 物品出现了 333 次,没有作为 CCC 物品或者 DDD 物品出现,所以这一行输出的四个数依次为 1,3,0,001,3,0,001,3,0,00 此外,如果我们将输出看作一个 mmm 行 444 列的矩阵,那么每一列上的 mmm 个数之和都应等于魔法阵的总数。所以,如果你的输出不满足这个性质,那么这个输出一定不正确。你可以通过这个性质在一定程度上检查你的输出的正确性。

【样例输入2】

15 15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

【样例输出2】

5 0 0 0
4 0 0 0
3 5 0 0
2 4 0 0
1 3 0 0
0 2 0 0
0 1 0 0
0 0 0 0
0 0 0 0
0 0 1 0
0 0 2 1
0 0 3 2
0 0 4 3
0 0 5 4
0 0 0 5

【数据规模】

在这里插入图片描述

【代码如下】:

#include <bits/stdc++.h>
using namespace std;
//ifstream cin("magic.in");
//ofstream cout("magic.ans");
int n, m;
int v[40010], num[15010];
int a[15010], b[15010], c[15010], d[15010];
int main() {
	cin >> n >> m;
	for (int i = 1; i <= m; i ++) {
		cin >> v[i];
		num[v[i]]++;//桶排序
	}
	for (int t = 1; t * 9 < n; t++) { //枚举t
		int sum = 0;
		int va, vb, vc, vd;
		for (vd = t * 9 + 2; vd <= n; vd++) { //枚举 d 物品的位置
			va = vd - 9 * t - 1;//a 物品的魔法值
			vb = vd - 7 * t - 1;//b 物品的魔法值
			vc = vd - t;//c 物品的魔法值
			sum += num[vb] * num[va]; //前缀和求能组成的魔法阵的个数
			c[vc] += num[vd] * sum;
			d[vd] += num[vc] * sum;
		}
		sum = 0;
		for (va = n - t * 9 - 1; va >= 1; va--) { //枚举 a 物品的位置
			vb = va + 2 * t;
			vc = va + t * 8 + 1;
			vd = va + t * 9 + 1;
			sum += num[vc] * num[vd];
			a[va] += num[vb] * sum;
			b[vb] += num[va] * sum;
		}
	}
	for (int i = 1; i <= m; i++) {
		cout << a[v[i]] << " " << b[v[i]] << " " << c[v[i]] << " " << d[v[i]] << endl;
	}
	return 0;
}
NOIP2016普及组复赛解题报告 NOIP2016普及组解题报告 阅读详情

相关推荐

历年CSP-J(NOIP普及组)考点分析与分类汇总(纯干货)

noip/csp-j历年真题考点分类

weixin_42358969的博客 1万+

[NOIP2016 普及组] 魔法阵

NOIP普及组刷题记录

cstd_555的博客 1687

NOIP2016普及组复赛——T2回文日期

题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。 显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。 现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。 一个 8 位数字是回文的,当且仅当对于所有的 i(1≤i≤8) 从左向右数的第i个数

少儿编程乔老师 811

魔法阵——数论

魔法阵——数论

Snitro的博客 1270

NOIP2016普及组复赛——T4魔法阵

题目描述 六十年一次的魔法战争就要开始了,大魔法师准备从附近的魔法场中汲取魔法能量。 大魔法师有m个魔法物品,编号分别为1,2,…,m。 每个物品具有一个魔法值,我们用xix_ixi​表示编号为i的物品的魔法值。 每个魔法值xix_ixi​是不超过n的正整数,可能有多个物品的魔法值相同。 大魔法师认为,当且仅当四个编号为a,b,c,d的魔法物品满足xa<xb<xc<xdx_a<x_b<x_c<x_dxa​<xb​<xc​<xd​,xb−xa=2(xd−x

少儿编程乔老师 497

题解:洛谷 P2119 [NOIP 2016 普及组] 魔法阵

等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。时,这四个魔法物品形成了一个魔法阵,他称这四个魔法物品分别为这个魔法阵的。六十年一次的魔法战争就要开始了,大魔法师准备从附近的魔法场中汲取魔法能量。现在,大魔法师想要知道,对于每个魔法物品,作为某个魔法阵的。的正整数,可能有多个物品的魔法值相同。物品出现的次数,作为。物品分别出现的次数。#普及+# #前缀和#

团爸讲算法 806

[NOIP2016]魔法阵 T4

Description 六十年一次的魔法战争就要开始了,大魔法师准备从附近的魔法场中汲取魔法能量。 大魔法师有m个魔法物品,编号分别为1,2,...,m。每个物品具有一个魔法值,我们用Xi表示编号为i的物品的魔法值。每个魔法值Xi是不超过n的正整数,可能有多个物品的魔法值相同。 大魔法师认为,当且仅当四个编号为a,b,c,d的魔法物品满足xa 现在,大魔法师想要知道,对于每个魔法物品,

jmh20021118的博客 608

NOIP2016普及组与提高组试题:NOIP2016复赛普及组试题&NOIP2016复赛提高组试题

NOIP2016普及组与提高组试题:NOIP2016复赛普及组试题&NOIP2016复赛提高组试题

noip2016普及组复赛第四题 T4魔法阵

题目大意: 给定一个数轴,但有些点上有数,有些点上没数,现在,让你在数轴里求出四个点(a,b,c,d)满足如下条件: b-a=2(d-c) b-a的方案数! 如下分析讨论:

Hello,I'm Proking. 1205

NOIP2016普及组复赛试题讲解(c++版本)--23页.pdf

NOIP2016普及组复赛试题讲解(c++版本)--23页.pdf

NOIP2016普及组第四题——魔法阵

点开看看,想要标程吗?

这是一个很懒(handsome)的人,所以什么也没有留下 976

Camera Sensor接口协议全解析(六)聚焦onsemi HiSPi接口的技术突破与应用实践

摘要: Onsemi HiSPi是一种高速并行接口协议,专为高分辨率图像传感器设计,具备1600 Mbps传输速率、低功耗和高兼容性特点。通过对比DVP、MIPI CSI-2等主流协议,HiSPi在工业/医疗领域表现突出,支持动态功耗控制、多ROI和CRC校验。其创新架构包含多PHY设计,提供分组SP、流SP等多种工作模式,满足灵活传输需求。实际应用中,HiSPi在PCB缺陷检测(5μm精度)和液晶面板检测(0.3% Mura检出率)等场景展现卓越性能,成为高速成像领域的关键技术。

GateWorld的博客 1434

2016 CSP-J/NOIP万字长文复赛真题题解——秒杀T1 买铅笔,T2 回文日期,T3 海港,T4 魔法阵

一篇NOIP/CSP-J2016的万字精选题解,全方面地为题目进行了完全详尽、清晰明了的解析,给正在学习信息学的读者提高编程水平,在各大信息学赛事中更好地“秒杀”所有题目。

lixuean0408的博客 2016

RAGFlow API 实战指南:从数据集管理到智能对话

本文提供了RAGFlow API的实战指南,详细介绍了如何从零开始构建基于检索增强生成(RAG)的智能应用。内容涵盖环境准备、API密钥获取、核心概念理解,以及通过API进行数据集创建与管理、文档上传解析、知识块管理、检索测试,最终创建并配置智能聊天助手,实现基于私有知识库的精准对话。

weixin_29284885的博客 379

WGCNA样本量不够怎么办?5种替代方案帮你解决小样本基因共表达分析难题

本文针对WGCNA样本量不足的问题,提供了5种科学替代方案,包括CEMiTool、参数调整、多组学数据整合、机器学习特征提取和公共数据利用。这些方法帮助研究者在小样本条件下仍能进行可靠的基因共表达分析,特别适用于罕见病和珍贵临床样本研究。

weixin_42554042的博客 301

CSP-J (NOIP普及组) 历年复赛真题考察内容(1998~2021)

TZOJ题目分类 本博客原文地址:https://www.cnblogs.com/BobHuang/p/14522022.html 其中,1.较简单题25题左右;2.动态规划17题,其中9题较好做;3.模拟(阅读题目将问题抽象建模写出程序)为11题;4.搜索8题,大部分不会做的题目均可以用搜索获得步骤分;5.贪心8题,部分不好想;6.高精度5题。 1.CSP-J 2020 T1 优秀的拆分 位运算、进制转换 T2 直播获奖 桶排序 T3 表达式 栈、深搜 T4 方格取数 动态规划(高级) 2.CSP-J 2

BobHuang的博客 1万+

AI算力网络与通信领域流量分析:优化策略探讨_副本

今天的AI就像一个"超级吃货",每天要"吃"掉海量数据、“消耗"巨量算力——训练一个千亿参数的大模型,可能需要上万块GPU同时工作数周,其间产生的数据传输量足以填满数百万个1TB硬盘。这些GPU和计算节点通过网络连接形成"AI算力网络”,而数据在节点间的流动就是"通信流量"。如果把算力比作AI的"肌肉",那流量就是"血液"——血液不通畅,肌肉再强也使不上劲。

AI天才研究院 1197

2016年NOIP普及组复赛真题解析

第三艘船在第10秒到达海港,最近24小时到达的船是第一艘船、第二艘船和第 三艘船,共有4+ 2+1=7个乘客,分别是来自国家4,1,2,2,2,3,3,共来自4个不同 的国家。第二艘船在第2秒到达海港,最近24小时到达的船是第一艘船和第二艘船,共有 4 + 2 = 6个乘客,分别是来自国家4,1,2,2,2,3,共来自4个不同的国家;第二艘船在第3秒到达海港,最近24小时到达的船是第一艘船和第二艘船,共有4+2=6个乘客,分别是来自国家1,2,2,3,2,3,共来自3个不同的国家。

weixin_42358969的博客 1225

开关电源|控制方式PWM、PFM、混合调制

频率调制器根据误差放大器的输出大小来改变方波信号的频率,若负载电流突然增加,输出电压 Vout随之下降,反馈电压 VFB 减小,此时误 差放大器的输出增高,频率调制器输出方波信号的频率增大,增加电感充电次数;若负载电流突然增加,输出电压Vom随之下降,反馈电压Vr减小,此时误差放大器的输出增高,PWM比较器输出方波信号的占空比增大,增加电感充电时间:若负载电流突然下降,PWM比较器输出方波信号的占空比减小,减少电感充电时间,从而稳定输出电压。它是在固定开关频率下,通过改变脉冲宽度来调节占空比的。

weixin_46969363的博客 1万+

Voicebox本地部署:模型下载与离线模式实战指南

在本地语音处理场景中,模型下载失败和离线运行需求是开发者最常遇到的两大难题。理解语音工具的本地推理原理,关键在于掌握模型文件与程序逻辑的分离管理:模型独立下载,程序负责推理,输出留在本机。这种架构带来显著的技术价值——数据不出本地、不依赖公网、批量任务不中断。无论是语音识别转写、语音合成,还是集成到自动化脚本中,本地离线模式都能在隐私敏感或网络不稳定环境下稳定运行。对开发者而言,先解决模型文件的完整获取,再验证离线启动流程,就能绕过“无法下载模型”的常见坑。本文从环境准备、模型放置、服务启动到接口调用,提供

weixin_29048309的博客 305

NOIP 普及组 复赛 试题 目录 信奥 历年

姐妹篇详见https://blog.youkuaiyun.com/mrcrack/article/details/86620012 NOIP  普及组  复赛  试题  目录   信奥  历年 NOIP  2018 普及组  复赛  试题  目录 1.标题统计  title 2.龙虎斗  fight 3.摆渡车  bus 4.对称二叉树  tree NOIP  2017 普及组  复赛  试题 ...

mrcrack的博客 3311

RK3588 部署 YOLOv5s 实战:多线程加速从 16FPS 飙升到 120FPS(含性能优化)

因为RK3588包含了3个NPU核心,支持3个核心同时工作、双核合作、以及单核工作。我们可以使用线程池来加速。线程池是一种长街的并发编程模型,它用于管理和复用线程,以提高多线程程序的性能和效率。线程池通常包含以下主要组件:1、任务队列:任务队列用于存储待执行的任务。这些任务可以是函数、方法或其他需要多线程环境中执行的操作。2、线程池管理:线程池管理器负责创建、销毁和管理线程。它会监视任务队列中的任务,根据需要创建线程,执行任务,并在任务完成后将线程放回池中以供重用。

FJN110的博客 99

【NOIP普及组 复赛/CSP-J 第二轮真题】题解目录

1963 【13NOIP普及组】小朋友的数字:[点击这里]1940 【07NOIP普及组】守望者的逃离:[点击这里]1964 【13NOIP普及组】车站分级:[点击这里]1960 【12NOIP普及组】文化之旅:[点击这里]1951 【10NOIP普及组】导弹拦截:[点击这里]1952 【10NOIP普及组】三国游戏:[点击这里]1948 【09NOIP普及组】道路游戏:[点击这里]

君义NOIP的博客 3275

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

2105. 【NOIP2016普及组复赛】魔法阵

题目描述题目分析这一道题就是一个前缀和与后缀和的问题。 如果我们已经确定了A物品和B物品,我们该怎样知道组成ABCD四个物品的方案数呢? 我们只要求另外两个CD点对的方案数就行了。 我们假设sum[i]为从第i个点到第n个点的CD点对方案数,那公式就是: sum[j]=sum[j+1]+w[j]∗w[j+i]sum[j]=sum[j+1]+w[j]*w[j+i] 其中j是枚举1~n的点,而

fengqiyuka的博客 600

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

noip2016普及组复赛

2017.7.31 NOIP2016普及组复赛第一题:题目: 买铅笔 codevs题号:5622 时间限制: 1 s 空间限制: 256000 KB题目描述 DescriptionP老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。商店不允许将铅笔的包装

ojzha的博客 8867

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 【NOIP2016普及组复赛】题3:海港
下一篇: 【NOIP2017普及组复赛】题1:成绩
lpstudio
博客等级 码龄16年 1266粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lpstudio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值