Educational Codeforces Round 138 (Rated for Div. 2)

news2025/7/21 4:22:28

A:思维

题意:给一定的N*N的板子,里面放有一些乌鸦,这些乌鸦会攻击自己的所在行与所在列,问给定一个数量的乌鸦,问是否能够移动某只乌鸦,使得形成和平局面?

方法:我们发现,N*N的板子,因为乌鸦会攻击所在行与所在列,所以要形成和平局面,则最多只能放N只乌鸦,如果多余了N只,那么肯定不会形成和平局面。所以,这题只跟板子的大小和乌鸦的数量有关。

代码: 

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;

inline void solve(){
	    int n,m;cin>>n>>m;
	    for(int i=1;i<=m;i++){
	    	int x,y;cin>>x>>y;
		}
		if(m<n)cout<<"YES\n";
		else cout<<"NO\n";
}

signed main(){
	int T;cin>>T;
	while(T--) solve();
}

B:贪心

 题意:给定N个具有一定顺序排列的怪物,这个怪物本身有血量,还有一个技能,就是在这个怪物死后,发动这个技能会使他左右两边的怪物加上一定的血量。定义怪物的血量为HP的话,那么杀死这个怪物所用的时间就需要HP秒,这一个怪物死后,就消失了。他左右的邻居就相邻了。

 问如何一个一个的杀完所有的怪物使得用的时间最短?

方法:因为杀死一个怪物,它的左右邻居都会加上一定血量,那么要想所有怪物的血量加的最少,则应该从第一个或者最后一个怪物开始杀起,因为他们的邻居只有1个,这样尽可能少的给怪物加血量。我们知道,杀完所有怪物(若所有怪物的加血技能都加0滴血),那么所需要的时间,就是所有怪物的血量和:SUM。若所有怪物的加血技能都加不为0的血量时,则所需要的最少时间一定是SUM+(N-1)个怪物的加血量。因为最后一个怪物死后,它的加血技能没有用,所以我们最优的方案一定是将加血量最多的怪物放在最后一个消灭。

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;

inline void solve(){
	    int res=0,maxx=0;
	    int n;cin>>n;
	    for(int i=1;i<=n;i++){
	    	int x;cin>>x;
	    	res+=x;
		}
		for(int i=1;i<=n;i++){
			int x;cin>>x;
			res+=x;
			maxx=max(maxx,x);
		}
		cout<<res-maxx<<"\n";
}

signed main(){
	int T;cin>>T;
	while(T--) solve();
}

C:暴力+贪心 or(二分+贪心)

题意:有n个数,Alice和Bob玩游戏。游戏进行k轮,每一轮Alice必须消除一个小于等于 k−i+1 的数,在消除之后,如果数组还有元素的话Bob需要对一个数增加 k−i+1 ,求Alice在保证自己在k轮内都能消除数的前提下,最多进行的轮次。

分析:Alice每消除一个数,Bob就会在剩余数组中选择一个数加k-i+1。随着轮次的增加,Alice消除的数是越来越小的。这里考虑一下贪心策略。

设想如果Bob选择的是数组中最大的数,那么Alice就肯定不会消除完所有的数,那么要想使得轮次更多,Bob选择数组中最小的数进行操作即可。

这里解释一下Bob的选择操作:为什么每次选最小数会使轮次增加?

选择最大的数进行操作是肯定不行的,那么选择次大数呢?这里不妨反演一遍,如果Bob每次都操作最小的数,那么最小数每次都在增大,则就一定会使轮次增大。

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[101];

inline bool pd(int k){
	int l=1,r=n;
	for(int i=1;i<=k;i++){
		while(a[r]>k-i+1) r--;
//如果一开始就是小于最大值的话,我们就减减,为的是让这个k不满足pd
		if(l>r) return false;//说明Bob的操作次数比Alice多,则就不可能满足pd
		l++,r--;//Alice从右往左操作,Bob从左往右操作
	}
	return true;
}

inline void solve(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+1+n);
	int ans=0;
	for(int i=1;i<=n;i++){//为什么要在1-n范围找呢?因为k-i+1的最小值只能为1而不能为0
		if(pd(i)) ans=i;
	}
	cout<<ans<<"\n";
}

signed main(){
	int T;cin>>T;
	while(T--) solve();
}

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

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

相关文章

股票涨跌量化怎样进行策略分析?

股票涨跌量化其实是通过Python调用Tushare库计算深证成指实时&#xff0c;对股票的成交量涨跌幅&#xff0c;主要是通过相关分析选择合适的成交量涨跌幅来计算的一种量化策略分析方法&#xff0c;也可以根据绘制股票的成交量涨跌幅度与当日股价的涨跌幅描绘出来。如果我们想快速…

目标检测论文解读复现之八:基于YOLOv5s的滑雪人员检测研究

前言 此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

Unity使用NaveMesh实现第一人称视角移动

系列文章目录 Navemesh寻路系列文章 文章目录 目录 系列文章目录 文章目录 前言 一、NavMeshPath是什么&#xff1f; 二、使用步骤 1.引入库 2.读入数据 总结 前言 navemesh已经大量使用到游戏中&#xff0c;但大部分寻路都是使用SetDestination函数&#xff0c;给予一个目标…

SpringBoot+Vue项目大学校园防疫与服务系统的设计与实现

文末获取源码 开发语言&#xff1a;Java 使用框架&#xff1a;spring boot 前端技术&#xff1a;JavaScript、Vue 、css3 开发工具&#xff1a;IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库&#xff1a;MySQL 5.7/8.0 数据库管理工具&#xff1a;phpstudy/Navicat JDK版…

C++初阶 Vector模拟实现

q. > 作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步 本篇博客介绍&#xff1a;本篇博客会模拟Vector实现 学习目标 模拟默认函数实现模拟迭代器实现模拟容器大小相关函数模拟修改内容相关函数模拟访问容器相关函数 我…

xss挑战之旅11-19关

文章目录前言第11关&#xff1a;referer第12关&#xff1a;User-Agent第13关&#xff1a;cookie第14关&#xff1a;exif xss第15关&#xff1a;ng-include第16关第17关第18关第19关&#xff1a;flash xss前言 靶场&#xff1a;XSS挑战之旅 1-10关 11-20关 第11关&#xff1a;r…

『LeetCode|每日一题』---->颜色填充

目录 1.每日一句 2.作者简介 『LeetCode|每日一题』颜色填充 1.每日一题 2.解题思路 2.1 思路分析&#xff08;DFS&#xff09; 2.2 核心代码 2.3 完整代码 2.4 运行结果 1.每日一句 我的宇宙为你藏着无数个星球 2.作者简介 &#x1f3e1;个人主页&#xff1a;XiaoXiaoChe…

Git之路

文章目录指南介绍实战任务一&#xff1a;sb项目任务二&#xff1a;idea实战任务三&#xff1a;分支实战(待续)指南 如果你想在简历上写“会常用的Git的命令“&#xff0c;那么这篇文章值得你要看&#xff0c;那我们需要掌握什么呢&#xff1f;其实会简单的操作就行&#xff0c…

Matplotlib绘图-快速上手可视化工具

Matplotlib快速上手一、初识Matplotlib1.1 认识Matplotlib的图像结构1.2 绘制一个折线图二、给图像添加修饰2.1 自定义x的刻度2.2一图多线2.3一图绘制多个坐标系子图三、主流图形的绘制3.1绘制柱状图一、初识Matplotlib 是Python最常见的可视化工具之一 1.1 认识Matplotlib的…

csrf跨站请求伪造

文章目录csrf跨站请求伪造1、前戏2、csrf校验2.1、from表单如何符合校验2.2、ajax如何符合校验3、csrf相关装饰器FBVCBVcsrf跨站请求伪造 1、前戏 """ 钓鱼网站搭建一个跟正规网站一摸一样的界面&#xff08;中国银行&#xff09;用户进入到我们的网站&#x…

HyperLynx(三十)高速串行总线仿真(二)

高速串行总线仿真&#xff08;二&#xff09; 仿真实例 1.探索多层板中的PCI-E串行通道 2.设置叠层以减小损耗 3.分析通道的不同配置对损耗的影响 4.检测驱动端规范 5.检查接收器规范 6.通过仿真得出整个通道的驱动约束限制 1.探索多层板中的PCI-E串行通道 在本节练习中&…

人工智能学习:Microsoft COCO数据集读取(7)

Microsoft COCO&#xff08;Common Objects in Context&#xff09;是微软研发维护的一个大型的数据集。包含了30多万张图片和91个目标分类。可用于目标识别&#xff08;Object Detection&#xff09;、场景感知&#xff08;Penoptic Segmentation&#xff09;、语义分割&#…

【数据结构】——单链表

目录 1.链表 1.1 链表的概念及结构 1.2 链表的分类 1. 单向或者双向 2. 带头或者不带头 3. 循环或者非循环 1.3实现一个单链表&#xff08;无头单项非循环链表增删查改的实现&#xff09; 1.链表结构的创建 2.创建一个节点 3.创建一个链表 4.打印链表 5…

解读JVM级别本地缓存Caffeine青出于蓝的要诀 —— 缘何会更强、如何去上手

大家好&#xff0c;又见面了。 在前面的几篇文章中&#xff0c;我们一起聊了下本地缓存的动手实现、本地缓存相关的规范等&#xff0c;也聊了下Google的Guava Cache的相关原理与使用方式。比较心急的小伙伴已经坐不住了&#xff0c;提到本地缓存&#xff0c;怎么能不提一下“地…

软考 - 程序语言设计

程序设计语言基本概述 程序设计语言是为了书写计算机程序而人为设计的符号语言&#xff0c;用于对计算过程进行 描述、组织和推导。 低级语言&#xff1a;机器语言&#xff08;计算机硬件只能识别0和1的指令序列&#xff09;&#xff0c;汇编语言。 高级语言&#xff1a;功能…

从http请求过程分析为何不同业务的http请求都可以使用默认的缺省端口80,8080等

问题: http上传请求时url地址中一般无显示指定端口号&#xff0c;这时会使用默认的80端口&#xff1b;但是可能不止一个业务需要用到http请求&#xff0c;技术上web服务端那边肯定无法根据业务逻辑的数据格式去分别解析区分它们&#xff1b;因为业务是事先无法预知的&#xff…

【Spring Cloud实战】Consul服务注册与发现

个人博客上有很多干货&#xff0c;欢迎访问&#xff1a;https://javaxiaobear.gitee.io/ 1、简介 https://www.consul.io/docs/intro Consul is a service mesh solution providing a full featured control plane with service discovery, configuration, and segmentation f…

Flink-经典案例WordCount快速上手以及安装部署

2 Flink快速上手 2.1 批处理api 经典案例WordCount public class BatchWordCount {public static void main(String[] args) throws Exception {//1.创建一个执行环境ExecutionEnvironment env ExecutionEnvironment.getExecutionEnvironment();//2.从文件中读取数据//得到…

[附源码]java毕业设计基于Web留学管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Linux下C++开发笔记--编译静态链接库和动态链接库

目录 1--前言 2--生成静态链接库 3--生成动态链接库 1--前言 承接上一篇Linux下C开发笔记&#xff08;g命令的使用笔记&#xff09;&#xff0c;依据教程记录学习笔记。 2--生成静态链接库 ①回顾项目结构&#xff1a; ​ ②汇编&#xff0c;生成swap.o文件 cd srcg sw…