首页 > 其他分享 >Inhabitant of the Deep Sea

Inhabitant of the Deep Sea

时间:2024-07-13 15:08:27浏览次数:10  
标签:arr int 攻击 Deep k2 k1 Sea Inhabitant 耐久度

题目


链接:https://www.luogu.com.cn/problem/CF1955C

题解

思路:

  1. 海妖攻击船是一前一后,但如果按照这样循环必定超时,所以换个思路,可以先算出海妖攻击前、后的次数,然后分别扣除船的耐久度。
  2. 由于海妖是先攻击前面,所以可以让攻击后面的次数为可k2=k/2(由于会舍去后面小数),再让前面为可k1=k-k/2;如果上一艘船耐久度不够就让i++,并让r=i;直到耐久度够。
  3. 如果所有的船的耐久度都不够海妖打,就直接输出船数n。(我一开始是这样写的)或者让用r计数,如果后面的船损失超过了r(也就是从n开始的i--,使i<r),就停止计数。
  4. 最最最重要的是范围(我就是因为范围问题,一直优化其他地方,结果范围小了)用int肯定是不够大(别问我怎么知道的),所以我用long long int。

代码

点击查看代码
#include<iostream>
using namespace std;
int main() {
	int t;
	cin >> t;
	while (t--) {
		int n, k;
		cin >> n >> k;
		int arr[200001] = { 0 };//船
		for (int i = 1; i <= n; i++) {
			cin >> arr[i];			
		}		
		int s = 0,r=0; //s表示沉船,r是前面沉船数量
		int k1, k2;
		k2 = k / 2;//攻击后面次数
		k1 = k - k2;//攻击前面次数
		for (int i = 1; i <= n; i++) {
			if (k1 >= arr[i]) {
				k1 -= arr[i];
				r = i;
			}
			else {
				arr[i] -= k1;
				k1 = 0;
				break;
			}
		}
		s = r;//让s计入r的数
		for (int i = n; i > r; i--) {
			if (arr[i] <= k2) {
				k2 -= arr[i];
				s++;
			}
			else
				break;
		}
		cout << s << endl;
	}
}

标签:arr,int,攻击,Deep,k2,k1,Sea,Inhabitant,耐久度
From: https://www.cnblogs.com/jumaoxiangrijui/p/18300018

相关文章

  • 麒麟V10 安装ELK详细步骤(elasticsearch + kibana + logstash)
    一、ELK介绍ELK系统是一个开源的大数据分析和搜索引擎组合,主要由以下三个部分组成:Elasticsearch:作用:一个分布式搜索和分析引擎,可以处理大规模的结构化和非结构化数据。特点:支持全文搜索、结构化搜索和分析、实时搜索和分析、分布式计算,具有高可扩展性和高可用性。Logsta......
  • SOEE5010 Research Methods
    SOEE5010ResearchMethodsSummativeAssessmentGuidelinesContentandstructureoftheresearchpaperThefinalassignmentconsistsofa3,000wordresearchpaperanda200wordabstract(3,200wordsintotal)onadaptationtofloodingintheUKthatrepo......
  • 轻松掌握useAsyncData获取异步数据
    title:轻松掌握useAsyncData获取异步数据date:2024/7/12updated:2024/7/12author:cmdragonexcerpt:摘要:本文详细介绍Nuxt.js中的useAsyncData组合式函数,它用于在服务端渲染(SSR)过程中异步获取数据,确保客户端正确水合,避免重复请求。内容包括基本概念、参数说明(key,ha......
  • SeaweedFS + TiKV 部署保姆级教程
    在使用JuiceFS时,我们选择了SeaweedFS作为对象存储,以及TiKV作为元数据存储,目前在SeaweedFS上已经存储了近1.5PB的数据。关于SeaweedFS和TiKV配置的参考资料不多,本文将为社区各位用户提供我们的部署实践,并提供详细的命令示例,希望能给社区各位用户一些参考。此外,在文章......
  • 在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
    #在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)前言关键字:机器学习人工智能AIchatGPT学习实现使用搭建深度python事件远程dockermysql安全技术部署技术自动化代码文章目录-------------......
  • 在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三)
    #在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——聚合与搜索(三)前言文章目录前言-聚合和分析-执行聚合操作-1.使用JavaAPI执行聚合操作-2.使用CURL命令执行聚合操作-1.使用JavaAPI执行度量操作-2.使用CURL命令执行度量操作-使用缓存-调......
  • 使用Spring Boot集成Elasticsearch
    使用SpringBoot集成Elasticsearch大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!Elasticsearch是一个分布式搜索和分析引擎,特别适用于处理海量数据。本文将详细介绍如何在SpringBoot项目中集成Elasticsearch,包括环境配置、基本CRUD操作和常见问题的解......
  • Python实战Elasticsearch的核心技巧详解
    概要Elasticsearch是一个分布式的搜索引擎,可以用于全文搜索、结构化搜索、分析等多种场景。它基于Lucene构建,提供了强大的搜索功能和数据分析能力。本文将详细介绍如何使用Python实现与Elasticsearch的交互,包括安装、配置、基本操作和实际应用示例。安装和配置安装Elast......
  • elasticsearch: 插件安装与删除
    一,安装插件1,查看已安装的插件:[lhdop@blog~]$curl-XGET"localhost:9200/_cat/plugins?v&s=component"namecomponentversion2,从命令行安装smartcn分词插件:[lhdop@blogbin]$./elasticsearch-plugininstallanalysis-smartcnwarning:ignoringJAVA_HOME=/usr/loc......
  • elasticsearch: 安装ik中文分词(es 8.14.2)
    一,测试分词命令:1,查看已安装的插件:[lhdop@blog~]$curl-XGET"localhost:9200/_cat/plugins?v&s=component"namecomponentversion2,standard分词[lhdop@blog~]$curl-XGET"localhost:9200/_analyze?pretty"-H'Content-Type:application/json&......