CodeForces - 1541C - Great Graphs ( 贪心 + 前缀和 )

一文带你看懂SAP-HANA的基本架构与原理 创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥。 阅读详情
题目链接:点击进入
题目

在这里插入图片描述
在这里插入图片描述

题意

n 个点的有向图,边权可正可负,给你一个 d 数组,d [ i ] 表示从 1 到 i 的最短距离。让你求整个图最小的总边权和。

思路

看看样例,我们大约可以想到,相邻两个点的贡献为 0 ,只有间隔点才会产生贡献。
我们对 d 数组排序,我们观察产生贡献都是哪些,d [ 3 ] - d [ 1 ], d [ 4 ] - d [ 1 ] ,d [ 4 ] - d [ 2 ] ,…
,总结一下,就是对于每个 i ( i >= 3 ) ,对答案的贡献就是 ( i - 2 ) * a [ i ] - sum [ i - 2 ] ( sum 维护前缀和 ),最后得到的答案取负,就是题目要求的答案;

代码
// Problem: C. Great Graphs
// Contest: Codeforces - Codeforces Round #728 (Div. 2)
// URL: https://codeforces.com/contest/1541/problem/C
// Memory Limit: 256 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define best 131 
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
#define int long long
//#define double long double
//#define rep(i,x,y) for(register int i = x; i <= y;++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=1e6+10;
const int mod=998244353;
const double eps=1e-9;
const int N=5e3+10;
/*--------------------------------------------*/
inline int read()
{
    int k = 0, f = 1 ;
    char c = getchar() ;
    while(!isdigit(c)){if(c == '-') f = -1 ;c = getchar() ;}
    while(isdigit(c)) k = (k << 1) + (k << 3) + c - 48 ,c = getchar() ;
    return k * f ;
}
/*--------------------------------------------*/

int t,n,a[maxn],sum[maxn];

signed main()
{
	scanf("%lld",&t);
	while(t--)
	{
		scanf("%lld",&n);
	    for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
	    sort(a+1,a+n+1);
	    for(int i=1;i<=n;i++) sum[i]=sum[i-1]+a[i];
	    int ans=0;
    	for(int i=3;i<=n;i++)
    		ans+=(i-2)*a[i]-sum[i-2];
	    printf("%lld\n",-ans);
	}
    return 0;
}
2026.4.15:超详细自动安装Ubuntu-Server的保姆级教程 这篇教程详细介绍了如何创建无人值守的Ubuntu Server 26.04自动安装镜像。主要内容包括:从安装镜像中提取autoinstall-user-data文件并修改为user-data配置文件;使用mkpasswd生成加密密码;通过软碟通工具修改ISO镜像,添加自动安装所需的user-data和meta-data文件;编辑grub.cfg引导文件以启用自动安装模式。教程提供了完整的yaml配置示例,包含网络、存储、用户等设置,并演示了最终制作完成的自动安装镜像效果。 阅读详情

相关推荐

企业微信消息推送(一)接收消息服务器URL

企业微信限制过多,公司域名所有权检验不通过。采用接收消息服务器URL的方式。使用vscode,将UTF-8 BOM文本编码改为UTF-8。配置接收消息服务器URL。

Xiaoweidumpb 1万+

Codeforces1541 C. Great Graphs(贪心)

题意: 解法: 容易想到d[i]<0的点直接连. 对于d[i]>=0的点肯定要道路服用,使得正权边数量和权值和最小. 为了使得负权边贡献最大,容易想到这样连边(假设图中的点都满足d[i]>=0): 其中每个点向前面的点连的边,都是负权边,且i->j的边权=-dist[j][i]. 最后就是考虑每加入一个点,这个点对答案会新增的贡献即可. code: #include<bits/stdc++.h> #define int long long using names

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 695

OpenClaw 3.13 + Mac mini M4 集成 qmd 记忆存储:qmd embed 卡死 / 报错 sqlite-vec 不可用 终极解决教程

模型加速让 qmd 从国内镜像下载模型,避免网络超时;SQLite 扩展支持:修改 qmd 源码后,Bun 不再使用内置 SQLite,而是调用 Homebrew 安装的,该版本支持接口,可正常加载vec0.dylib向量扩展;OpenClaw 3.13 适配:核心逻辑与 OpenClaw 3.13 的 qmd 记忆调用逻辑完全兼容,无需额外调整;sqlite-vec 加载:qmd 自动通过sqlite-vec包获取vec0.dylib路径,调用完成向量扩展加载,实现高效向量搜索。

wuanxionglidui的博客 1304

codeforces 1541 C. Great Graphs

给你数组,nums[i]表示第i个点与第一个点的距离,我们可以在点之间添加有向路,使所有边权值达到最小,例如0 2 3这情况 对于次数,我们可以找下规律 于是乎,就有规律了,我们每条边要少算一次,因为要和原来的正向边抵消了;代码如下 #include<bits/stdc++.h> #define int long long #define Endl '\n' #define endl '\n' #define x first #define y second #define pi pair.

qq_45773977的博客 382

安时积分法和开路电压法结合估算锂电池SOC

基于安时积分法和开路电压法结合的锂电池SOC估计Simulink仿真建模,利用安时积分法计算放电过程中的SOC,在搁置状态利用开路电压法进行SOC修正。

qq_39304296的博客 2552

基于 YOLOv26 的车辆违规停车检测系统:实时监控

本文提出了一种基于YOLOv26的车辆违规停车实时检测系统。系统采用多模块架构,包括视频预处理、YOLOv26目标检测、DeepSORT目标跟踪、停车区域定义、行为分析和违规判定等功能模块。关键技术包括使用YOLOv26s模型进行车辆检测,结合DeepSORT算法实现车辆跟踪,支持多种停车区域定义方式(多边形、矩形、限时区域等)。系统通过边缘计算平台部署,实现了对道路边、禁止停车区等场景的实时监控,能够准确识别长时间停车、禁止区域停车等违规行为,并触发告警机制。实验结果表明,该系统在车辆检测准确率和违规判定

一键难忘的博客 773

Codeforces Round #728 (Div. 2) C. Great Graphs

Great Graphs 题意 给你一个数组\(d\),\(d[i]\)表示从节点\(1\)到其他各个节点的最短路的长度,然后你可以对这个图进行加边(可以是负边),但不允许存在一个权值和为负数的回路。 题解 按样例的思想,大概就是将这些点按距离\(1\)的距离从小到大排个序,这样就使得所有点连成一条直线,这样总是可以保证加最多的负边,然后就开始加负边,对于每个点,将他和他前面的点全连上,这样就可...

weixin_45563175的博客 106

Apache DolphinScheduler 实现了对 OceanBase 的元数据库支持

Apache DolphinScheduler 是一款开源的分布式工作流任务调度系统,它提供了可视化的工作流设计和调度功能,支持大数据任务的自动化调度和监控。最近的更新中,Apache DolphinScheduler 引入了对 OceanBase 数据库的元数据库支持,这为用户在大数据环境中管理和调度任务提供了更多选择。用户可以通过 DolphinScheduler 提供的可视化界面进行工作流的设计和调度,也可以通过 DolphinScheduler 提供的 API 进行任务的编程调度。

VavzNvml的博客 495

Codeforces Round #728 (Div. 2) C. Great Graphs(思维)

链接 C. Great Graphs 题意 给出大小为 n 的 a 序列,a[i]表示从 1 号点出发到 i 号点的最短距离; 构造一个图,满足 a 序列,求总的边权和最小; 思路 首先可以想到答案小于等于0,我们只要构造 1 号点连向其余所有点边权为 a[i],再从所有点连回 1 号点边权为 -a[i],这样答案就为0了; 想要缩小这个答案,就要减少正权边的数量,增加负权边的数量; 本题的编号其实问题不大,我们对边权进行排序,连一条最大的正权边,然后其他点由这个点去扩展,同时在 i < j 的地方连

hz0010的博客 294

Buck电源设计常见的一些问题(五)MOS管振荡抑制方法(三)

关于开关节点振荡的产生机制和抑制问题,总结了三种抑制方法。第一种方法是利用输入端的高频去耦电容;第二种方法是设计 RC 缓冲电路;第三种方法是优化自举电路的串联电阻。以上三种方法均通过实验加以验证,对开关节点振荡具有很好的抑制作用。应该综合同步 Buck 变换器的各项指标权衡设计。

小幽余生不加糖 1633

使用MATLAB/Simulink对一个简单的智能家居温湿度监测与控制系统进行建模和仿真

目录手把手教你学Simulink——基于Simulink的智能家居温湿度监测与控制仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:构建传感器模块步骤3:添加控制器步骤4:构建执行器模块步骤5:连接各部分步骤6:设置仿真参数步骤7:添加观测器步骤8:运行仿真并分析结果四、总结 智能家居系统中的温湿度监测与控制系统是一个典型的物联网(IoT)应用场景,它通过传感器收集环境数据,并根据预设条件自动调节室内温度和湿度以提高居住舒适度。本指南将介绍如何使用MATLAB/S

xiaoheshang_123的博客 291

Codeforces1541C Great Graphs (构造)

题目链接: Great Graphs 大致题意 给你一个长度为n的数组a, ai表示从1号点出发, 到达i号点的最短路长度. 让你构造出一个图, 其中所有的边都是单向边, 你可以自定义每条边是否存在, 若存在其边权的大小. 最终要求这个图满足a数组, 且最小化总的边权和. 解题思路 注: 关于下述分析我们不考虑边权为0的边, 因为这样的边存在只是保证了图的连通性, 并不会对答案产生贡献 题一读完, 我们脑海里应该飞快产生两个信息: ①答案最大是0 ②图中一定不含有负环. 为什么说答案最大值就是0呢? 我们很

Fau的博客 1067

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

1.首先,WTConv利用二维Haar小波变换对输入图像进行多级分解。低频分量 (LL):捕捉图像的低频信息,如整体形状或轮廓。水平高频分量 (LH):捕捉图像中的水平边缘信息。垂直高频分量 (HL):捕捉图像中的垂直边缘信息。对角线高频分量 (HH):捕捉图像的对角线细节。在每一级的小波变换中,图像被下采样(空间分辨率减半),但频率信息得到了更细的分解。递归地执行小波变换(称为多级分解)可以得到不同尺度下的频率分量。

qq_64693987的博客 1万+

CF1540 A. Great Graphs 图论 构造

思路:最优结构为:首先按距离升序对节点排序,然后依次连接第1至n个节点,再在第i个节点与前i-1个节点上添加负权的回边,回边的权值为d[j]−d[i]d[j]-d[i]d[j]−d[i],最后求所有边的权值和。 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll a[200005]; void solve(){ int n; cin>>n; for(int i=1;i&l

Ambrumf的博客 313

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

A. Great Graphs「思维 + 贪心 + 前缀和优化」

A. Great Graphs 题目描述: 这个题意读半天都没搞懂什么意思 其实就是说n个点,建个图,单向边,使的 1 到 i 点的最短距离是d[i],权值可以为负值,问所有边的权值加起来最少是多少 思路: n 个点的完全图的边的数量是n∗(n−1)/2n * (n - 1) / 2n∗(n−1)/2,要想使的权值的和尽可能的少,我们就得让正权值的边尽可能少 那如何在使的正权边尽可能少的情况下还能保证1到每个点的最短路是d[i]呢?我们可以按d[i]从低到高排个序,将第一个点和最后一个点连起来,权值是

Suryxin's blogs 841

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

1540A. Great Graphs

给原点到其他所有点的路径长度,问所有边权之和是多少,边权可以为负。 路径从小到大排序,当前位置右边乘(n-i)当前位置(i)及其左边,减去1,也即是减去那条直接相连的路。得到经过该差值的边数总和。 注意爆int,要加上1ll*。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e5 + 5; ll a[maxn]; int main() { int t,

Kyrie_10的博客 428

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

A. Great Graphs

https://codeforces.com/problemset/problem/1540/A 思路 找规律,要使总路程最小,那么就把所有的点都连在同一条线上,然后只连一条正权边,然后再把其他所有可以连的边都连成负的,然后所有的边权相加。 问题在于找到负权边的规律。也就是找到每个位置的边被计算的次数。 规律是每条边左右对称的位置 * (边数 -1),然后(边数 -1)+(边数 - 2),依次累加,见代码中的times,和cnt操作 代码 #include<bits/stdc++.h> #def

123 282

codeforces 1540A Great Graphs

链接: https://codeforces.com/problemset/problem/1540/A 题意: 给长度为n的数组a,ai表示到达i的最短距离,从1到i的权值为正,往后走的权值为负数,问怎样构造权值最低。 本题要让正权值最少,就只要构造一条正值的路即可,然后想办法多构造负权值的路。 代码如下: #include<iostream> #include<vector> #include<cmath> #include<map> #in

qq_58756335的博客 261

x Problem B

// Problem: B. Gregor and the Pawn Game // Contest: Codeforces - Codeforces Round #736 (Div. 2) // URL: https://codeforces.com/contest/1549/problem/B // Memory Limit: 256 MB // Time Limit: 1000 ms // 2022-02-15 02:38:01 // // Powered by CP Editor (https:/

qq_28409093的博客 205

cf构造题(3/50) A - Great Graphs(贪心+构造)

题目链接 题目大意: 给定从1开始到n个点之间的距离数组d,让你构造一个图使得总权重最小(可加负权边) 题目分析: 分析样例可以得知相邻点的权重对答案总贡献一定为0,即隔点才会产生贡献,举个例子,如果n为5,那么答案就会是3->1 4->1 5->1 4->2 5->2 5->3 权重和取负,这里可以发现节点编号越大出现次数越多对答案贡献越多,这里我们考虑从小到大排序从而保证结果最优,注意计算权重我们可以用前缀和数组进行计算。 代码: #include<bits/

m0_52007929的博客 325

Binary Table (Hard Version)-(思维)

题目描述:点击进入 题意 给你一个大小为n×m的二进制表,这个表由符号 0 和符号 1 组成。 你可以进行这样的操作: 选择属于一个 2 × 2 正方形的 3 个不同的单元格,并更改这些单元格中的符号(将 0 更改为1, 1 更改为 0 )。 你的任务是使表中的所有符号都等于0。您最多可以进行 nm次 操作。 你不需要最小化操作的数量。 思路 这是上一题的加强版,操作次数变为 nm 了,我上一次的代码过不去,无奈只能优化,但也只是对边界处理优化了一下,却神奇过了(神奇神奇,用xy哥的话来说那就是可蒸馏啊)

Cosmic_Tree的博客 1780

k-LCM ( easy version && hard version ) -( 思维 - 构造 )

题目链接(easy):点击进入 题目链接(hard):点击进入 题目 题意 长度为 k 的数组,整个数组的和为 n ,整个数组的最小公倍数不超过 n / 2,让你构造这样一个数组 简单版本k=3,困难版本 3 <= k <= n。 思路 简单版本: 因为明确告诉你了 k = 3 ,同时要求三个数的最小公倍数不能超过 n / 2,所以我们可以根据 n 来构造这个三个数。 首先根据 n 的奇偶性分类讨论 如果 n 是奇数,那么三个数可以变为 n / 2 , n / 2 , 1 ; 如果 n 是偶

Cosmic_Tree的博客 1189

Binary Table (Easy Version)-(思维)

题目描述:点击进入 题意 给你一个大小为n×m的二进制表,这个表由符号 0 和符号 1 组成。 你可以进行这样的操作: 选择属于一个 2 × 2 正方形的 3 个不同的单元格,并更改这些单元格中的符号(将 0 更改为1, 1 更改为 0 )。 你的任务是使表中的所有符号都等于0。您最多可以进行 3nm次 操作。 你不需要最小化操作的数量。 思路1 通过找找规律,我们可以知道一个 2*2 的矩阵 不包含0的可以通过一次操作变为包含3个0的, 包含3个0的通过一次操作可以变为包含2个0的, 包含2个0的通过一次

Cosmic_Tree的博客 840

Codeforces Beta Round #68 - B- Train ( 贪心模拟 )

题目链接:点击进入 题目 题意 偷渡者和控制者玩以下游戏。 火车由 n 节车厢表示,车厢从头到尾用 1 到 n 的正整数编号。偷渡者和控制者最初在两辆不同的货车中。火车每分钟都可能处于两种状态移动或空闲。控制者每分钟都在移动。 控制器有运动方向——火车头或火车尾。在移动期间,控制者对应于其移动方向移动到相邻的货车。如果在他的移动结束时,控制者进入第 1 辆或第 n 辆货车,那么他将移动方向更改为另一侧。换句话说,控制者在整个游戏过程中循环地从火车的头部到尾部然后再返回,在每次移动期间移动一辆车。请注意,

Cosmic_Tree的博客 747

CodeForces - 1549C - Web of Lies( 思维 )

题目链接:点击进入 题目 题意 n个人m对朋友关系( 双向 ),q次操作: 1 u v u与v成为朋友 2 u v u与v朋友关系破灭 3 计算以下过程的答案: 过程:所有易受伤害的贵族同时被杀害,他们的友谊也随之结束。这样,新贵族就有可能变得脆弱。这个过程不断重复,直到没有贵族受到伤害。可以证明,这个过程将在有限的时间内结束。完成此过程后,您需要计算剩余贵族的数量。( 如果满足以下两个条件,则贵族被定义为易受攻击:至少有一个朋友,那位贵族的所有朋友都有更高的权力。) 注意,该过程的结果不会在查询

Cosmic_Tree的博客 633

CodeForces 1267

题目:B–Balls of Buma 题意 给你一个字符串(代表不同颜色),让你插入一个字符(一种颜色)后,可以消掉整个字符串。(相同颜色、长度变长、长度>=3才会抵消) 思路 将原串变成“种类串”(例如:AABBAA—> ABA)后,“种类串”应当是回文串,且长度应该是奇数。 同时,一个可以被消去的串,根据中心对称的同类部分的长度和,应当>=3。中心部分长度应当>=2.满足以上条件,答案为中心部分答案+1; 代码 #include<iostream> #include&

Cosmic_Tree的博客 583
上一篇: CodeForces - 1541B - Pleasant Pairs( 质因子分解 )
下一篇: CodeForces - 459E - Pashmak and Graph ( dp )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值