CF Round988 题解报告

/***实力还是要努力

D

赛时我过了,就不讲了,毕竟我过的也大概是简单题;

代码:

#include<iostream>
#include<queue>
using namespace std;
#define int long long int t;
int n,m,l;
struct hurdle{int l,r,len;
}hur[500010];
struct power_ups{int x,w;
}pu[500010];void solve(int n,int m,int l){for(int i=1;i<=n;i++){cin>>hur[i].l>>hur[i].r;hur[i].len=hur[i].r-hur[i].l+2;}for(int i=1;i<=m;i++){cin>>pu[i].x>>pu[i].w;}priority_queue<int>q;int ans=0,t=1,cnt=1;for(int i=1;i<=n;i++){if(hur[i].l-1>=l)break;int pos=hur[i].l-1,need=hur[i].len;for(;pu[t].x<=pos&&t<=m;t++){q.push(pu[t].w);}while(!q.empty()&&cnt<need){int u=q.top();cnt+=u;q.pop();ans++;}if(cnt<need){ans=-1;break;}}cout<<ans<<endl;
}signed main()
{cin>>t;while(t--){cin>>n>>m>>l;solve(n,m,l);}return 0;
}

E***

题目大意交互题!!!这种题我还是很不熟,到现在为止就写过一道。大意就是:有一个长度为n的字符串,可以问一个格式为(l,r)的问题,会得到区间l~r里面有多少01子序列(可不连续)。问能否确定这个字符串?

大致思路:对于交互题不用害怕,可以把它当成“构造题”来思考。如何通过01字串个数确定每一位是0还是1?首先,既然要确定“每一位”,那么我们可以“猜一下”可能每一位都要询问一下。那么我们的思路就是不停问(1,2)(1,3)(1,4)...(1,n)。如果 cnt(1,i+1)==cnt(1,i),那么a[i]=1;否则a[i]=0(前提:i之前已经出现过0)。如果cnt(1,i)是第一个不为0的位置,那么i前面的数是可以确定的,就是i-cnt(1,i)个1,cnt(1,i)个0。如果cnt全是0,那么则不确定。

代码

#include<iostream>
using namespace std;int t;
int n,a[1000010];int ask(int i){cout<<'?'<<" "<<1<<" "<<i<<endl;int t;cin>>t;return t;
}void solve(int n){int now=0,k1=0,k2=0,flag=0;//第1个非零数前面k1个1,k2个0;for(int i=2;i<=n;i++){int cnt=ask(i);if(cnt>now){a[i]=1;if(now==0){k2=cnt;k1=i-cnt-1;flag=1;}now=cnt;}else{a[i]=0;}}if(flag==0){cout<<"! IMPOSSIBLE\n";}else{cout<<"! ";for(int i=1;i<=k1;i++){cout<<1;}for(int i=1;i<=k2;i++){cout<<0;}for(int i=k1+k2+1;i<=n;i++){cout<<a[i];}cout<<"\n";}
}int main()
{cin>>t;while(t--){cin>>n;solve(n);}return 0;
}

F

题目大意:这题只要会转换就不难,但关键是要想出这么转化。题目大意是,有n个位置,位置x[i]有生命值h[i]。我们可以选择一个位置p,初始攻击值是m,每次攻击距离p l的点会受到攻击m-l。现在要杀掉cnt个位置的生命(生命值<0),最少要进行多少次攻击?(每次攻击选的点p是不变的)

题目思路:用 二分。我们二分攻击次数k。如果一个点x[i]被攻击k次要被杀掉,那么一次就要受到【h[i]/k】(上取整)的攻击值。那么攻击点的位置p就要取在(g-m+x[i],m-g+x[i])的位置。那么其实问题就转化成一个区间覆盖问题。能否找到一个点至少被cnt个区间覆盖。注意要用离散化(或者像我这里用的pair)。

还要注意一下vector排序的问题。vector排序的bool数组里面要用const &,与结构体区分(结构体的话函数会自动赋值)。

代码

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#define int long long
typedef pair<int,int> PII;int t;
int n,m,cnt;
int h[500010],x[500010];
vector<PII>q;
bool sorrt(const PII a,const PII b){return a.first<b.first;
}bool check(int k){//攻击k次可行否?q.clear();for(int i=1;i<=n;i++){int g=h[i]/k;if(h[i]%k){g++;}if(g>m)continue;q.push_back({g-m+x[i],1});q.push_back({m-g+x[i]+1,-1});}sort(q.begin(),q.end());int u=0;for(int i=0;i<q.size();i++){u+=q[i].second;if(u>=cnt)return true;}return false;
}int ef(int l,int r){int mid,ans=-1;while(l<=r){mid=l+r>>1;if(check(mid)){ans=mid;r=mid-1;}else{l=mid+1;}}return ans;
}void solve(int n,int m,int cnt){for(int i=1;i<=n;i++){cin>>h[i];//life length}for(int i=1;i<=n;i++){cin>>x[i];//position}cout<<ef(1,1e9)<<endl;
}signed main()
{cin>>t;while(t--){cin>>n>>m>>cnt;solve(n,m,cnt);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Python的猎聘网招聘数据采集与可视化分析

1.1项目简介 在现代社会&#xff0c;招聘市场的竞争日趋激烈&#xff0c;企业和求职者都希望能够更有效地找到合适的机会与人才。猎聘网作为国内领先的人力资源服务平台&#xff0c;汇聚了大量的招聘信息和求职者数据&#xff0c;为研究招聘市场趋势提供了丰富的素材。基于Pyt…

HTML 常用标签属性汇总一<input> 标签

1.可选的属性 DTD 指示此属性允许在哪种 DTD 中使用.SStrict, TTransitional, FFrameset。 属性 值 描述 DTD accept mime_type 规定通过文件上传来提交的文件的类型。 STF align ​​​​​​​ left center right middle bottom 不赞成使用。规定图像输入的对齐方式…

基于Java Springboot高校社团微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

springboot(20)(删除文章分类。获取、更新、删除文章详细)(Validation分组校验)

目录 一、删除文章分类功能。 &#xff08;1&#xff09;接口文档。 1、请求路径、请求参数。 2、请求参数。 3、响应数据。 &#xff08;2&#xff09;实现思路与代码书写。 1、controller层。 2、service接口业务层。 3、serviceImpl实现类。 4、mapper层。 5、后端接口测试。…

vim 显示行数和删除内容操作

在 Vim 中&#xff0c;显示行数和删除内容是两个常见的操作&#xff0c;结合使用可以帮助你更加高效地编辑文件。以下是关于如何在 Vim 中显示行数和删除内容的详细说明&#xff1a; 1. 显示行数 显示绝对行号 绝对行号会显示每一行的实际行号&#xff0c;适合你查看文件的大…

【前端】特殊案例分析深入理解 JavaScript 中的词法作用域

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;案例代码&#x1f4af;词法作用域&#xff08;Lexical Scope&#xff09;与静态作用域什么是词法作用域&#xff1f;代码执行的详细分析 &#x1f4af;函数定义与调用的…

Node.js 实战: 爬取百度新闻并序列化 - 完整教程

很多时候我们需要爬取一些公开的网页内容来做一些数据分析和统计。而多数时候&#xff0c;大家会用到python &#xff0c;因为实现起来很方便。但是其实Node.js 用来爬取网络内容&#xff0c;也是非常强大的。 今天我向大家介绍一下我自己写的一个百度新闻的爬虫&#xff0c;可…

三分钟快速掌握——Linux【vim】的使用及操作方法

一、vim的使用 vim是一个文本编辑器 非常小巧轻便 1.1如何进入vim编辑器 方法一&#xff1a; 首先使用touch 1.c 创建一个源文件 然后使用vim 1.c进入 方法二&#xff1a; 直接使用指令 vim 2.c 会直接创建一个2.c的源文件 退出时记得保存&#xff08;使用wq或者x&am…

(简单5步实现)部署本地AI大语言模型聊天系统:Chatbox AI + grok2.0大模型

摘要&#xff1a; 本文将指导您如何部署一个本地AI大语言模型聊天系统&#xff0c;使用Chatbox AI客户端应用和grok-beta大模型&#xff0c;以实现高效、智能的聊天体验。 引言&#xff1a; 由马斯克X-AI发布的Grok 2大模型以其卓越的性能超越了GPT4.0。Grok模型支持超长文本…

docker安装hadoop环境

一、使用docker搭建基础镜像 1、拉取centos系统镜像 # 我这里使用centos7为例子 docker pull centos:7 2、创建一个dockerfiler文件&#xff0c;用来构建自定义一个有ssh功能的centos镜像 # 基础镜像 FROM centos:7 # 作者 #MAINTAINER hadoop ADD Centos-7.repo /etc/yum.re…

中国电信张宝玉:城市数据基础设施建设运营探索与实践

11月28日&#xff0c;2024新型智慧城市发展创新大会在山东青岛召开&#xff0c;中国电信数字政府研究院院长张宝玉在大会发表主旨演讲《城市数据基础设施运营探索与实践》。报告内容包括城市数据基础设施的概述、各地典型做法及发展趋势建议三个方面展开。 篇幅限制&#xff0…

Linux内核4.14版本——ccf时钟子系统(6)——DTS相关的API

目录 1. of_clk_add_provider 2. of_clk_get_from_provider 2.1 __of_clk_get_hw_from_provider 2.2 __clk_create_clk 3. of_clk_set_defaults 3.1 __set_clk_parents 3.2 __set_clk_rates 再回到第2章DTS相关的介绍&#xff0c;clock driver使用一个DTS node描述一个c…

2024年度桌面便签软件电脑版推荐

随着2024年的尾声渐近&#xff0c;这一年中涌现出了许多优秀的软件&#xff0c;其中便签软件因其便捷性和高效性成为了备受欢迎的工具。这类软件无论是在工作还是日常生活中&#xff0c;都极大地提升了我们的效率和生活质量。 在众多桌面便签中&#xff0c;敬业签是一款值得推…

WPS for Mac免登录使用工具栏

一、mac下载国际版https://www.wps.com 下载下来是在线安装包&#xff0c;对了&#xff0c;不再需要汉化&#xff01;&#xff01;&#xff01; 二、干掉登录 进入目录/Applications/wpsoffice.app/Contents/Frameworks/office6&#xff08;访达、应用程序、wpsoffice.app右…

【计算机网络】实验3:集线器和交换器的区别及交换器的自学习算法

实验 3&#xff1a;集线器和交换器的区别及交换器的自学习算法 一、 实验目的 加深对集线器和交换器的区别的理解。 了解交换器的自学习算法。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、熟悉集线器和交换器的区别 (1) 第一步&#xff1a;构建网络…

【技巧】Mac上如何显示键盘和鼠标操作

在制作视频教程时&#xff0c;将键盘和鼠标的操作在屏幕上显示出来&#xff0c;会帮助观众更容易地理解。 推荐Mac上两款开源的小软件。 1. KeyCastr 这款工具从2009年至今一直在更新中。 https://github.com/keycastr/keycastr 安装的话&#xff0c;可以从Github上下载最…

洛谷P1075

[NOIP2012 普及组] 质因数分解 - 洛谷 [NOIP2012 普及组] 质因数分解 题目描述 已知正整数 n 是两个不同的质数的乘积&#xff0c;试求出两者中较大的那个质数。 输入格式 输入一个正整数 n。 输出格式 输出一个正整数p&#xff0c;即较大的那个质数。 样例 #1 样例输…

Docker:在 ubuntu 系统上生成和加载 Docker 镜像

本文将介绍在 ubuntu系统上进行 Docker 镜像的生成和加载方法和代码。 文章目录 一、下载和安装 docker二、加载 docker 文件三、保存你的镜像四、将镜像上传到云端并通过连接下载和加载 Docker 镜像五、Docker 容器和本地的文件交互5.1 从容器复制文件到本地宿主机5.1.1 单个文…

PHP爬虫性能优化:从多线程到连接池的实现

背景介绍 随着网络数据的爆炸式增长&#xff0c;爬虫技术成为数据获取的重要工具。从市场调研到用户行为分析&#xff0c;爬虫的应用无处不在。然而&#xff0c;在实际应用中&#xff0c;我们常常遇到爬虫性能不足的问题&#xff1a;单线程处理效率低下、请求超时、数据采集量…

《现代网络技术》读书笔记:网络虚拟化

本文部分内容来源于《现代网络技术&#xff1a;SDN,NFV,QoE、物联网和云计算&#xff1a;SDN,NFV,QoE,IoT,andcloud》 虚拟局域网 图9-1显示了一个比较常见的层次化局域网场景&#xff0c;在这个例子中&#xff0c;局域网中的设备分为四个部分&#xff0c;每个部分都通过以太网…