当前位置: 首页 > article >正文

P1158

题意

就是给你机器的工作半径,每次工作要花钱,就是工作半径的平方,问你怎么花最少的钱,拦截所有导弹。

思路

每次通过我们的公式计算距离,存入并排序,最后即可得出答案。

代码

#include <bits/stdc++.h>
using namespace std;
struct s {
	int w1, v1;
	bool operator < (const s &a){//重载
		return w1< a.w1;	
	}
};
int main() {
	int x1, y1, x2, y2;
	cin >> x1 >> y1 >> x2 >> y2;//输入坐标
	int n;
	cin >> n;
	s a[100001];
	int f[100011];
	int cnt = 1<<30;//设置极大值
	for(int i=1;i<=n;i++){
		int x,y;
		cin >> x >> y;
		a[i].w1=(x-x1)*(x-x1)+(y-y1)*(y-y1);//计算距离
		a[i].v1=(x-x2)*(x-x2)+(y-y2)*(y-y2);
	}
	sort(a+1,a+n+1);
	f[n+1]=0;
	for(int i=n;i>=1;i--){
		f[i]=max(f[i+1],a[i].v1);
	}
	for(int i=0;i<=n;i++){
		cnt=min(cnt,a[i].w1+f[i+1]);
	}
	cout << cnt;
	return 0;
}

http://www.kler.cn/a/527925.html

相关文章:

  • 【二叉搜索树】
  • Baklib赋能企业实现高效数字化内容管理提升竞争力
  • I.MX6ULL 中断介绍上
  • SQL server 数据库使用整理
  • 使用where子句筛选记录
  • 最近最少使用算法(LRU最近最少使用)缓存替换算法
  • 19 压测和常用的接口优化方案
  • Python从0到100(八十六):神经网络-ShuffleNet通道混合轻量级网络的深入介绍
  • 【4Day创客实践入门教程】Day3 实战演练——桌面迷你番茄钟
  • 1/31每日
  • 事务02之锁机制
  • Linux中部署Yolov5详解
  • 嵌入式知识点总结 Linux驱动 (八)-Linux设备驱动
  • H. Mad City
  • 深度学习编译器的演进:从计算图到跨硬件部署的自动化之路
  • 《大数据时代“快刀”:Flink实时数据处理框架优势全解析》
  • 翻译: Dario Amodei 关于DeepSeek与出口管制一
  • (二)QT——按钮小程序
  • 本地运行大模型效果及配置展示
  • 牛客周赛 Round 77
  • Java 16进制 10进制 2进制数 相互的转换
  • 数据分析系列--⑦RapidMiner模型评价(基于泰坦尼克号案例含数据集)
  • 通过.yml文件创建环境
  • 反射、枚举以及lambda表达式
  • Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成
  • 想品客老师的第九天:原型和继承