CF1416B Make Them Equal 题解

Matlab/simulink频率响应分析方法 Matlab/Simulink仿真系列问题一.电气模块与信号模块 一.电气模块与信号模块 阅读详情

CF1416B Make Them Equal

CF1416B Make Them Equal

论我脑子有点问题这一事。

发现如果 i = 1 i = 1 i=1 这个肯定是很好做的,我们考虑将每个数都放到位置 1 1 1 上,每个数最多被使用 3 3 3 次,所以复杂度是 O ( 3 ( n − 1 ) ) O(3(n - 1)) O(3(n−1))。

我们具体来说,对于一个位置 j j j,如果 j ∣ a j j | a_j j∣aj​ 显然我们直接将其放到位置 1 1 1 上即可,不然的话我们考虑将这个位置补齐即可。

我们考虑通过归纳法证明这个事情,如果前 i i i 个数是合法的,对于第 i + 1 i + 1 i+1 个数,最多需要 i i i 个单位才能变成整除。而前面位置都是合法的,所以肯定有 ≥ i \ge i ≥i 个单位在 1 1 1 上,那么肯定是合法的。

#include <bits/stdc++.h>
using namespace std;

//#define Fread
//#define Getmod

#ifdef Fread
char buf[1 << 21], *iS, *iT;
#define gc() (iS == iT ? (iT = (iS = buf) + fread (buf, 1, 1 << 21, stdin), (iS == iT ? EOF : *iS ++)) : *iS ++)
#define getchar gc
#endif // Fread

template <typename T>
void r1(T &x) {
	x = 0;
	char c(getchar());
	int f(1);
	for(; c < '0' || c > '9'; c = getchar()) if(c == '-') f = -1;
	for(; '0' <= c && c <= '9';c = getchar()) x = (x * 10) + (c ^ 48);
	x *= f;
}

template <typename T,typename... Args> inline void r1(T& t, Args&... args) {
    r1(t);  r1(args...);
}

#ifdef Getmod
const int mod  = 1e9 + 7;
template <int mod>
struct typemod {
    int z;
    typemod(int a = 0) : z(a) {}
    inline int inc(int a,int b) const {return a += b - mod, a + ((a >> 31) & mod);}
    inline int dec(int a,int b) const {return a -= b, a + ((a >> 31) & mod);}
    inline int mul(int a,int b) const {return 1ll * a * b % mod;}
    typemod<mod> operator + (const typemod<mod> &x) const {return typemod(inc(z, x.z));}
    typemod<mod> operator - (const typemod<mod> &x) const {return typemod(dec(z, x.z));}
    typemod<mod> operator * (const typemod<mod> &x) const {return typemod(mul(z, x.z));}
    typemod<mod>& operator += (const typemod<mod> &x) {*this = *this + x; return *this;}
    typemod<mod>& operator -= (const typemod<mod> &x) {*this = *this - x; return *this;}
    typemod<mod>& operator *= (const typemod<mod> &x) {*this = *this * x; return *this;}
    int operator == (const typemod<mod> &x) const {return x.z == z;}
    int operator != (const typemod<mod> &x) const {return x.z != z;}
};
typedef typemod<mod> Tm;
#endif

//#define int long long
const int maxn = 2e5 + 5;
const int maxm = maxn << 1;

void Solve() {
    int i, j, n, sum(0);
    r1(n);
    vector<int> a(n + 1, 0);
    for(i = 1; i <= n; ++ i) r1(a[i]), sum += a[i];
    if(sum % n != 0) return puts("-1"), void();
    sum /= n;
    struct Node {
        int i, j, x;
    };
    vector<Node> rs;
    for(i = 2; i <= n; ++ i) {
        int x = a[i] / i;
        if(x * i == a[i]) {
            rs.push_back((Node) {i, 1, x});
            a[i] = 0;
            continue;
        }
        rs.push_back((Node){1, i, i - a[i] % i});
        rs.push_back((Node) {i, 1, x + 1});
        a[i] = 0;
    }
    for(i = 2; i <= n; ++ i) {
        rs.push_back((Node) {1, i, sum - a[i]});
    }
    printf("%u\n", rs.size());
    for(auto v : rs) printf("%d %d %d\n", v.i, v.j, v.x);
//    for(i = 1; i <= n; ++ i) printf("%d : %d\n", i, a[i]);
 }

signed main() {
//    freopen("S.in", "r", stdin);
//    freopen("S.out", "w", stdout);
    int i, j, T;
    r1(T); while(T --) Solve();
	return 0;
}
微信支付PHP集成指南 完整实现建议参考微信支付官方文档,包含更多支付场景(H5支付、Native支付等)和安全性处理细节。微信支付在PHP中的集成主要涉及服务端接口的调用和支付流程的实现。 阅读详情

相关推荐

从零搭建YOLOv2硬件加速器:基于PYNQ-Z2的Vivado HLS与Jupyter Notebook实战

本文详细介绍了如何从零搭建YOLOv2硬件加速器,基于PYNQ-Z2开发板,结合Vivado HLS与Jupyter Notebook实现高效目标检测。通过硬件加速,YOLOv2推理速度提升8倍,功耗降低80%。文章涵盖硬件准备、Vivado HLS工程配置、IP核集成、PYNQ部署及常见问题解决,为开发者提供完整实战指南。

weixin_29188997的博客 1008

CF1416 C. XOR Inverse(字典树分治求逆序对)

题意:给出一个序列a,求一个x使得a中所有数异或x之后,a的逆序数最小,如果有多个x,求最小的x 题解:我们建立01字典树,将每一个数依次插入,在途径的点记录该位的0/1。我们思考,对于一个数的每一位(字典树的每一层)都有可能形成逆序对。对于p节点。我们查看途径他的0,1序列。可以O ( n ) 记录其中<0,1>对和<1, 0>对的数量。我们把每一层的01和10对的数量记录下来。如果该位10对数量大于01对,即将这一位异或1反转。否则该位就是0。 #include<bi

m0_51055929的博客 458

Spark Graphx 项目实战(航班飞行网图分析)

航班飞行网图分析一.需要的技能点二.任务描述三.数据探索1.下载数据2.数据格式四.航班飞行网图问题分析1.构建航班飞行网图2.统计航班飞行网图中机场与航线的数量3.计算最长的飞行航线4.找出最繁忙的机场5.找出最重要的飞行航线6.找出最便宜的飞行航线五.代码实现 一.需要的技能点 Spark GraphX API Spark GraphX PageRank Spark GraphX Pregel 二.任务描述 需求概述: 探索航班飞行网图数据 构建航班飞行网图 使用Spark GraphX完成下列任

May_J_Oldhu的博客 1538

CF1416D Graph and Queries (并查集 重构树 线段树)

CF1416D Graph and Queries (并查集 重构树 线段树) CF1416D Graph and Queries 给定一个 nnn 个点 mmm 条边的无向图,第 iii 个点的点权初始值为 pip_ipi​ , 所有 pip_ipi​ 互不相同。 接下来进行 qqq 次操作,分为两类: 1 v\tt 1\ v1 v 查询与 vvv 连通的点中, pup_upu​ 最大的点 uuu 并输出 pup_upu​,然后让 pu=0p_u=0pu​=0。 2 i\t

Bell的博客 308

AD9371 官方例程构建及单音信号收发

项目构建基本流程和AD9361差不多,由于官方使用的ZCU102,记录下移植遇到的一些问题最终接收到正确的正弦波Errors: 0Errors: 0Errors: 0Errors: 0AD9361。

weixin_44630490的博客 2973

晶振(晶体振荡器)测试方法详解

晶振测试方法分为无源和有源两种类型。无源晶振(两脚)需用示波器测试波形,重点关注正弦波形状、200mV-1.5Vpp幅值和频率精度;有源晶振(四脚)通电后直接输出方波。测试要点包括:示波器使用10X探头、AC耦合,带宽需5倍于晶振频率;万用表可初筛短路/开路;替换法是工程最有效方法。常见故障排查顺序:供电→复位→焊接→型号→负载电容→波形观察→更换晶振→MCU配置。负载电容需按公式计算匹配,示波器观察是核心测试手段。

jiujiujinyuxi的博客 927

CF1416B 【Make Them Equal】

这是一道数学题 首先,我们可以发现只要求出任意一种方案即可。 于是我们通过模拟样例得出,有一种保证只要 3∗(n−1)3*(n-1)3∗(n−1) 步求可以得出答案: 先让 a[i]a[i]a[i] 能被 iii 整除。 把 a[i]a[i]a[i] 转移到 a[1]a[1]a[1] 上。 再把 a[1]a[1]a[1] 分成 nnn 组 注意:当 $ \sum_{}a[i]$ 不能被 nnn 整除时,应该直接输出 −1-1−1。 代码: #include<bits/stdc++.h> us

Lukasshi的博客 270

MATLAB 2022b 用户专属:保姆级IPOPT求解器安装配置全流程(含OPTI工具箱)

本文为MATLAB 2022b用户提供IPOPT求解器的详细安装与配置指南,涵盖OPTI工具箱的适配安装、环境变量设置及常见问题解决方案。通过实战案例演示非线性优化问题的求解过程,帮助用户高效部署这一强大的优化工具,提升工程计算效率。

weixin_29092031的博客 406

CF1416B Make Them Equal

首先观察到每次操作不会改变整个数组的和 sum,所以最终整个数组都会变成平均数 因此如果sum不是n的倍数 则无解 由于没观察到这个点导致我被卡的死死的 其次就是当选择(1, i, x)这个三元组的时候,可以对任意的 x>=a[1],a[1]-=x,a[i]+=x, 这就使每次加减的数不受是"某个除1以外的数的倍数"的限制 所以接下来的想法是把a[2]~a[n]都加到a[1]上,然后再由a[1]分配到这些位置上 由于a[i]只能减去i的倍数的数所以可分为两种情况 1.a[i]是i的倍数

ghu99999的博客 284

YOLOv11涨点改进 | 全网创新首发、主干改进篇 | CVPR 2025 | RAVLT主干让 YOLOv11 更加强大!通过增强线性注意力机制,特别在小目标和复杂背景的检测上表现突出

本文提出RAVLT主干网络,通过改进YOLOv11的空间特征建模能力,显著提升小物体和复杂背景检测性能。RAVLT采用秩增强线性注意力(RALA)机制,在保持线性计算复杂度的同时解决传统线性注意力低秩问题。RALA通过增强KV缓冲区和输出特征矩阵的秩,提高特征多样性和建模能力。实验表明,RAVLT在ImageNet-1k上达到84.4% Top-1准确率,仅需2600万参数和4.6GFLOPs,性能优于现有线性注意力模型。文章详细介绍了RAVLT模块结构、实现原理及在YOLOv11中的集成方法,包含四种主干

Ai缝合怪、助力小伙伴高效发论文 639

高比例风电电力系统储能运行及配置研究(python&Matlab实现)

目录1 概述2 案例3 Matlab实现 3.1 题目及分析3.2 Matlab代码 4 七个题全部代码(值得学习) 下面我们先以第二题为例,然后给出Matlab代码:先考虑风电装机300MW直接替代机组3的发电功率曲线,观察系统功率平衡发生的变化情况。然后在此场景下,以最小发电成本为目标函数,将负荷分配给两台火电机组1、2和风电机组,绘制机组日发电计划图。再将风电装机容量作为一个决策变量,以最小发电成本为目标函数,求取最小发电成本对应的风电装机容量,绘制机组日发电计划图。1. 风电装机300MW、直接

weixin_46039719的博客 1741

codeforces1416B Make Them Equal

https://codeforces.com/contest/1416/problem/B 花式构造写了130多行搞了2个小时没搞出来,C也没看,wtcl 这题关键是要注意到相邻两个i的模数只相差1 所以只要把每个a[i]补到能整除i的地步,再全部加到a[1],那么a[1]就永远>=0 因为一开始a[i]都是>=1的,所以你最多只需要+(i-1)能整除i,而a[i-1]至少已经给a[1]加了i-1的,因为a[i-1]>=1,每个位置都至少会给a[1]加上i 那么i=2->n

binarycopycode 354

【华为OD机试】创建二叉树(python, java, c++, js)

请按下列描达构建一颗二叉树,并返回该树的根节点: 1、先创建值为-1的根结点,根节点在第0层; 2、然后根据operations依次添加节点: operations[i] = [height, index] 表示对第 height 层的第index 个节点node, 添加值为i 的子节点: 若node 无「左子节点」。则添加左子节点; 若node 有「左子节点」但无「右子节点」,则添加右子节点: 否则不作任何处理。 height、index 均从0开始计数;index 指所在层的创建顺序。

A_D_I_D_A_S的博客 188

CF1416B Make Them Equal--题解报告

题目 题目描述 You are given an arrayaaconsisting ofnnpositive integers, numbered from11tonn. You can perform the following operation no more than3n3ntimes: choose three integersii,jjandxx(1 \le i, j \le n1≤i,j≤n;0 \le x \le 10^90≤x≤109); ...

MogulNemenis的博客 423

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

CF 1416B. Make Them Equal && F .Sandpile on Clique

题目链接:CF 1416B. Make Them Equal 附上一道 “题材” 差不多的:2022ICPC澳门站 F. Sandpile on Clique 【CF 1416B. Make Them Equa】 先把这个东西 assignai:=ai−x⋅i,aj:=aj+x⋅i.assign \quad a_i:=ai−x⋅i, aj:=aj+x⋅i.assignai​:=ai−x⋅i,aj:=aj+x⋅i. 扯清楚:选择一个下标,这个下标的值减去下标的整数倍,把减去的值加到其他位置上 看完题后很快想到

weixin_51546928的博客 424

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

CF.1416B. Make Them Equal

题目链接:http://codeforces.com/contest/1416/problem/B 描述: You are given an arrayaaconsisting ofnnpositiveintegers, numbered from11tonn. You can perform the following operation no more than3n3ntimes: choose three integersi,jandx(1≤i,j≤n;0≤x≤1...

m0_51055929的博客 2480

计算机控制技术及应用

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

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 249

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 345

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 393

跟我学c++中级篇—类型定义的方式

本文系统阐述了编程中类型定义的重要性及c++中的实现方式。重点对比了宏定义、typedef与modern using三种机制,指出using在可读性、灵活性和模板支持上的优势,推荐优先使用。同时提醒开发者注意别名滥用、类型歧义、错误信息冗长等问题,强调统一规范与合理设计。最终结论:在现代c++开发中,应以using为主,兼顾简洁性与可维护性,避免陷入命名混乱与编译困境。

fpcc的专栏 86

【C语言】字符与字符串函数

C语言中字符串为以\0结尾的字符数组,标准库函数基于此约定。本文解析字符串内存布局,详解ctype.h与string.h中字符分类、长度计算、拷贝、比较等函数的使用要点,强调长度判断与越界风险,最后通过命令行待办事项示例整合fgets、sscanf、strncpy、strcmp,展示实际应用中的关键细节。

记录在学习过程中学到的知识 355

C++ 函数模版

模板参数:● template ,T 就是类型占位符,名字可以自定义,习惯用T● 占位符可以在函数返回值、形参、函数内部当作类型使用使用要点模板代码一般写在头文件:编译器需要看到完整模板源码,才能在每个编译单元完成实例化全局函数、类内成员函数都可以写成模板实例化发生在编译阶段,不是运行时隐式实例化:调用时编译器自动推导实参类型,生成对应版本函数。

2501_94041724的博客 306

C++ 运行时多态与虚函数机制全面剖析【面试重点】

构成C++ 运行时多态必须是基类的指针或者引用调用虚函数。被调用的函数必须是虚函数,并且派生类必须对该虚函数完成重写/覆盖(Override)。只有基类的指针或引用才能既指向基类对象,又指向派生类对象(切片机制);而只有完成了虚函数重写,派生类与基类才具备不同的函数行为,达到“指向谁就调用谁”的效果。在类成员函数的前面加上virtual关键字修饰,该成员函数就成为了虚函数。public:// 成员函数前加 virtual 修饰,声明为虚函数。

Fuyo_0209的博客 446

#SQLite 数据库笔记一:(概念 / 终端指令 / SQL 语句 / C 编程 / 回调函数)

数据库 = 数据的仓库,假设数据是海量。能力说明存储数据持久化保存,程序退出数据还在统计数据、分组、排序数据管理增、删、改、查(CRUD)嵌入式设备上也会用数据库(单片机网关、路由器、工业 HMI 都常见),因为 sqlite 体积小、无需服务进程、单文件即可。数据库 = 库 > 表 > 记录(行) > 字段(列)sqlite3 = 开源、C 写的、单文件、免安装、最多 2T 的嵌入式关系型数据库。

lwq20051110的博客 220

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级 备考:莫队算法离线区间查询详解

备赛进行时:第十八届蓝桥杯软件赛报名已于 2026-10-08 10:00 开启、12-18 14:00 截止,省赛定在 2027-04-10(C/C++·Python 程序设计 9:00–13:00);中国电子学会 2026 年 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名 9/23–12/2 16:00、统考 12-12;全国青少年信息素养大赛 2026—2027 赛季算法应用主题赛也已进入复盘练兵窗口。

IT_Scratch的博客 160

【C++ 基础入门】C++继承(下):问题、底层原理与组合

C++继承(菱形继承的问题、虚继承原理、继承与组合、构造顺序)

2601_96587588的博客 797
上一篇: CF1385E Directing Edges 题解
下一篇: GCJ2015 还原集合 题解
sharp_legendgod
博客等级 码龄7年 8粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值