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

好题推荐-剑指S10

题面

在这里插入图片描述

样例输入

2 1 3 1000 1000
0 0
1 1
1
2000
2215
4396

样例输出

0
2
-1

在这里插入图片描述

题解

那我问你,Xiaohu是什么生物?

思路

题目要求一个最小的非负整数 rrr,容易想到二分。可以二分答案 rrr,考虑 checkcheckcheck :可以先预处理出来 dpijdp_{i j}dpij表示点iii到点jjj的欧几里得距离,对每个dpidp_{i}dpi的第二维从小到大排序。设当前二分的答案为midmidmid,对于点aia_{i}ai,显然可以二分出第一个dpbires≤middp_{b_{i} res}≤middpbiresmid,可以求出总伤害。综合复杂度:O(kmlog⁡2dlog⁡2n+nmlog⁡2n)O(km\log_{2}{d} \log_{2}{n}+nm\log_{2}{n})O(kmlog2dlog2n+nmlog2n)

赛时代码

#include<bits/stdc++.h>
using namespace std;
int n,m,k,e,q;
struct js
{int x,y;
}a[1005];
int b[1005];
vector<long long> dp[1005];
long long qiu(js a,js b)
{long double t=sqrt(1ll*abs(a.x-b.x)*abs(a.x-b.x)+1ll*abs(a.y-b.y)*abs(a.y-b.y));if(t!=(long double)((long long) (t))) return (long long )(t)+1;//笨拙的向上取整,不要学!else return t;
}
bool check(int x,int cha)
{long long sum=0;for(int i=1;i<=m;i++){int l=0,r=dp[b[i]].size()-1,res=0;while(l<=r){int mid=(l+r)>>1;if(dp[b[i]][mid]<=x){res=mid,l=mid+1;}else r=mid-1;}sum+=1ll*(res+1)*q+e;}return sum>=cha;
}
int main()
{freopen("wait4s10.in","r",stdin);freopen("wait4s10.out","w",stdout);cin>>n>>m>>k>>e>>q;for(int i=1;i<=n;i++){scanf("%d%d",&a[i].x,&a[i].y);}for(int i=1;i<=m;i++){scanf("%d",&b[i]);if(dp[b[i]].size()==0){for(int j=1;j<=n;j++){dp[b[i]].push_back(qiu(a[b[i]],a[j]));}sort(dp[b[i]].begin(),dp[b[i]].end());}}while(k--){int d;scanf("%d",&d);long long l=0,r=3e9,ans=3e9;while(l<=r){long long mid=(l+r)>>1;if(check(mid,d)){ans=mid,r=mid-1;}else l=mid+1;}if(ans==3e9)cout<<-1<<"\n";else cout<<ans<<"\n";}return 0;
}
http://www.dtcms.com/a/391386.html

相关文章:

  • Python 中的魔术方法(Magic Methods)
  • JavaScript事件循环机制----event loop
  • C++编程学习(第33天)
  • 伺服上位机展示
  • Class62 优化算法
  • 电气专业科研怎么入门?电气仿真入门秘籍
  • 软考-系统架构设计师 基于构件的软件工程详细讲解
  • MCP 项目标准管理工具 v1.1.0 发布:新增 API 调试功能,助力 AI 辅助开发标准化
  • Linear Algebra in Competitive Programming
  • Decision Trees vs Neural Networks|决策树 vs 神经网络
  • FreeRTOS——任务管理
  • MSXML4.0是什么?下载安装+常见错误修复一网打尽
  • Claude Code生态
  • Node v22.19 Nest.js 安装 better-sqlite3
  • Android compose Room Sqlite 应用 (注入式)
  • 缓存穿透+缓存雪崩+缓存击穿(解决方法+实战)
  • Docker技术相对于虚拟机技术的优劣势对比!
  • MyBatis框架与参数详解
  • Confluent-Kafka-go 发布超过 1M 消息失败问题解决
  • 数字图像处理-函数矩阵
  • 基于 ST-Link 和 MDK-Keil 的 STM32 程序下载实验
  • 安防监控系统的架构与组成原理
  • 【前端】【threeJs】前端事件偏移问题完整总结
  • web:ts的类型兼容性
  • 黑盒测试:测试用例设计之场景法(流程图法)(模拟用户实际使用软件的场景来设计测试用例,适用于业务流程复杂的系统测试)基本流、备选流
  • Django + Vue3 前后端分离技术实现自动化测试平台从零到有系列 <第二章> 之 平台功能架构整理
  • 神经网络学习笔记14——高效卷积神经网络架构EfficientNet
  • Flutter实现滑动页面停留吸附
  • 【Linux】基本指令介绍
  • 爬虫逆向--Day22Day23--核心实战案例【荔枝网】【WASM学习】----待完成