首页 > 其他分享 >51nod 1110 距离之和最小

51nod 1110 距离之和最小

时间:2024-09-06 15:38:46浏览次数:14  
标签:ss 51nod ll 最小 1110 int sum

51nod 1110 距离之和最小

考虑贪心取中位数,因为中位数到左边的点和右边的点的个数相同,更合理,权值的话可以转化为一个单点,然后没了。

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

int n;
struct ss{
	ll x,w;
}a[100005];

bool cmp(ss g,ss h){
	return g.x<h.x;
}

int main(){
	ios::sync_with_stdio(false);
	cin>>n;
	
	ll mid,sum=0;
	
	for(int i=1;i<=n;i++){
		int x,w;
		cin>>a[i].x>>a[i].w;
		sum+=a[i].w;
	}
	
	sort(a+1,a+n+1,cmp);//排序 
	sum/=2;
	int j;
	for(j=1;a[j].w<=sum;j++){//取中位数 
		sum-=a[j].w;
	}
	ll ans=0;
	for(int i=1;i<=n;i++){
		ans+=(ll)abs(a[j].x-a[i].x)*a[i].w;//计算总值 
	} 
	cout<<ans;
    return 0;
}

标签:ss,51nod,ll,最小,1110,int,sum
From: https://www.cnblogs.com/sadlin/p/18400342

相关文章

  • 【运维自动化-配置平台】模型及模型关联最小化实践
    蓝鲸智云配置平台,以下简称配置平台我们知道主机是配置平台最常见的管控资源对象,在业务拓扑里可以通过划分模块来清晰的可视化管理;那其他资源如何通过配置平台来纳管呢,比如网络设备交换机。场景需求:如何把交换机和主机的关联关系在配置平台进行可视化的纳管一.不友好的方式通......
  • 软设每日打卡——霍夫曼编码将频繁出现的字符釆用短编码,出现频率较低的字符采用长编码
    【题目】霍夫曼编码将频繁出现的字符釆用短编码,出现频率较低的字符采用长编码。具体        的操作过程为:i)以每个字符的出现频率作为关键字构建最小优先级队列;ii)取出关键        字最小的两个结点生成子树,根节点的关键字为孩子节点关键字之和,并将根节点......
  • 51nod 1383 整数分解为2的幂
    整数分解为2的幂这题非常厉害,建议认真看下去虽然我讲的也不好。首先肯定先想到的是多重背包,可以把每个次幂当作物品,然后套板子。但是这题有\(O(n)\)复杂度的做法,我们想如果一个数\(i\)是奇数,那他只能由\((i-1)+1\)转化过来(2的幂次只有1是奇数),那方案数就是\(i-1\)的方案......
  • 51nod 2180 争渡
    争渡原题链接常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。——李清照《如梦令·常记溪亭日暮》给出线段上界和下界,要在严格递增地在区间内选数,问到最后一条线段的方案数。见上图,第\(i\)条线段\(j\)点的方案数为\(i-1\)条线段的\(j-1\)......
  • OPenCV结构分析与形状描述符(3)计算一个点集的最小外接矩形的函数boundingRect()的使用
    操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述计算一个点集的最小右上边界矩形或灰度图像中的非零像素。该函数计算并返回指定点集或灰度图像中非零像素的最小右上边界矩形。在OpenCV中,boundingRect函数用于找到一个点集的最......
  • 最小斯坦纳树 学习笔记
    最小斯坦纳树给定一张无相连通图,每条边有权值,有\(k\)个关键点,要求选择权值和最小的边使得关键点连通,求权值和。类似最小生成树,但是限定了关键点就只能用指数级的复杂度解决,这里考虑类似状压DP的方法。例题:P6192【模板】最小斯坦纳树首先最终答案显然是一个树。所以我们......
  • 代码随想录 刷题记录-26 图论 (3)最小生成树
    一、prim算法精讲53.寻宝解题思路最小生成树是所有节点的最小连通子图,即:以最小的成本(边的权值)将图中所有节点链接到一起。图中有n个节点,那么一定可以用n-1条边将所有节点连接到一起。那么如何选择这n-1条边就是最小生成树算法的任务所在。例如本题示例中的无......
  • 51nod 2842 城际旅行
    原题链接这题因为要求满足t时间内,所以用dp,不过我们的状态比较特殊,\(dp[i][j]\)表示到\(i\)点时经过\(j\)个点的最短时间,因为题目为DAG所以要用拓扑排序,每到一个点,枚举所有出边,更新出点的状态\(f[v][j+1]=min(f[v][j+1],f[u][j])\),最后的答案就是所有\(f[t][j]\let......
  • 算法练习题10:leetcode76最小覆盖子串-滑动窗口
    目录题目题目描述约束条件解决思路代码getOrDefault(c,0) 方法方法签名参数返回值示例getOrDefault 与 get 的主要区别Integer 题目题目描述给定两个字符串s和t,请你在字符串s中找到包含t中所有字符的最小子串。要求:        如果 s ......
  • 力扣209.长度最小的子数组
    classSolution{publicintminSubArrayLen(ints,int[]nums){//初始化滑动窗口的左右指针和当前窗口内元素的和intlo=0,hi=0,sum=0,min=Integer.MAX_VALUE;//遍历数组,移动右指针扩大窗口while(hi<nums.length......