(Atcoder Beginner Contest 348)题解

news2024/11/26 4:38:00

前言

这是我第 4 4 4 次做出 F F F 题,庆祝上蓝!
在这里插入图片描述

正题

本题解提供 A − F A-F AF 题题解,欢迎诸位大佬参考。

第 1 题 Penalty Kick

照例很水,模拟即可。

#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
	int n; cin>>n;
	for (int i=1; i<=n; i++){
		if (i%3==0) cout<<"x";
		else cout<<"o";
	}
	return 0;
} 

第 2 题 Farthest Point

也是很简单,枚举即可。注意为了 不丢失精度,我们用到了显而易见的定理:
如果:
x 2 > y 2 x^2>y^2 x2>y2

那么:
x > y x>y x>y

#include <bits/stdc++.h>
using namespace std;
#define int long long
int x[110],y[110];
signed main(){
	int n; cin>>n;
	for (int i=1; i<=n; i++){
		cin>>x[i]>>y[i];
	}for (int i=1; i<=n; i++){
		int mx=0; int id;
		for (int j=1; j<=n; j++){
			int dis=(x[j]-x[i])*(x[j]-x[i])+(y[j]-y[i])*(y[j]-y[i]);
			if (dis>mx) mx=dis,id=j; 
		}cout<<id<<"\n";
	}
	return 0;
} 

第 3 题 Colorful Beans

需要使用到 m a p map map 容器,不知诸位大佬是否知道。
这里不太方便讲述,就找了一篇:map 使用方法-CSDN

#include <bits/stdc++.h>
using namespace std;
#define int long long
map <int,int> mp;
signed main(){
	int n; cin>>n;
	for (int i=1; i<=n; i++){
		int u,v; cin>>v>>u; 
		if (!mp[u]) mp[u]=v;
		else mp[u]=min(mp[u],v);
	}int mx=0;
	for (auto x:mp) mx=max(mx,x.second);
	cout<<mx;
	return 0;
} 

第 4 题 Medicines on Grid

注意,题中的药物只会让你的能量值 变为 某个值,而 不是增加

那么我们可以注意到,我们把药物也变成图,两个药物 a , b a,b a,b 有边,仅当 a a a 处吃药后可以不使用任何药物走到 b b b。我们可以在 a a a b f s bfs bfs,查看是否可以在药物作用内走到 b b b

有了这个定义,我们可以求解问题了!假设我们的起点处的药物叫 S S S,作用范围 0 0 0,终点处是 T T T,作用范围是 0 0 0,那么我们可以在图上再跑 b f s bfs bfs,查看 S S S 是否可以走到 T T T

#include <bits/stdc++.h>
using namespace std;
#define int long long
int mx[4]={0,0,-1,1};
int my[4]={-1,1,0,0};
bool vis[310][310];
string mp[310];
int id[310][310],n,m,k;
vector <int> vc[310];
int x[310],y[310],e[310],ans[310];
void dfs(int x,int y,int ma){
	queue <int> qx,qy,qz;
	qx.push(x); qy.push(y); qz.push(0);
	while (qx.size()){
		int x=qx.front(); qx.pop();
		int y=qy.front(); qy.pop();
		int z=qz.front(); qz.pop();
		if (z==ma) continue; 
		for (int i=0; i<4; i++){
			int nx=x+mx[i];
			int ny=y+my[i];
			if (nx<1||ny<1||nx>n||ny>m) continue;
			if (vis[nx][ny]||mp[nx][ny]=='#') continue;
			qx.push(nx); qy.push(ny); qz.push(z+1);
			vis[nx][ny]=1;
		} 
	}
}void solve(int x){
	for (auto u:vc[x]){
		if (!ans[u]){
			ans[u]=1; solve(u);
		}
	}
}signed main(){
	cin>>n>>m;
	for (int i=1; i<=n; i++){
		cin>>mp[i]; mp[i]=" "+mp[i];
	}cin>>k; int s,t;
	for (int i=1; i<=k; i++){
		cin>>x[i]>>y[i]>>e[i];
		id[x[i]][y[i]]=i;
	}for (int i=1; i<=n; i++){
		for (int j=1; j<=m; j++){
			if (mp[i][j]=='S') s=id[i][j];
			if (mp[i][j]=='T'){
				if (id[i][j]) t=id[i][j];
				else k++,t=k,id[i][j]=k,x[k]=i,y[k]=j,e[k]=0;
			}
		}
	}for (int i=1; i<=k; i++){
		memset(vis,0,sizeof(vis));
		vis[x[i]][y[i]]=1;
		dfs(x[i],y[i],e[i]);
		for (int j=1; j<=n; j++){
			for (int k=1; k<=m; k++){
				if (vis[j][k]&&id[j][k]){
					vc[i].push_back(id[j][k]);
				}
			}
		}
	}ans[s]=1; solve(s);
	cout<<(ans[t]?"Yes":"No");
	return 0;
} 

第 5 题 Minimize Sum of Distances

这道题看似很难,但这里介绍一种方法:换根 D P DP DP

假设现在有一棵树(如下图),它的根是 u u u,我们要把根换到 v v v,求权值(每个点的深度乘点权和)变化。

在这里插入图片描述

那么可以发现,它增长了黑色权值和减红色权值和。黑色好算,是 v v v 的子树,红色可以用总权值减黑色计算。

#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,a[2010][2010];
bitset <2010> s[1010],ans[2010];
vector <int> vc[1010];
signed main(){
	cin>>n>>m;
	for (int i=1; i<=n; i++){
		for (int j=1; j<=m; j++){
			cin>>a[i][j];
		}
	}for (int j=1; j<=m; j++){
		memset(s,0,sizeof(s)); 
		for (int i=1; i<1000; i++) vc[i].clear();
		for (int i=1; i<=n; i++){
			s[a[i][j]][i]=1; vc[a[i][j]].push_back(i);
		}for (int i=1; i<1000; i++){
			for (auto x:vc[i]){
				ans[x]^=s[i];
			}
		}
	}int cnt=0;
	for (int i=1; i<=n; i++){
		for (int j=i+1; j<=n; j++){
			if (ans[i][j]) cnt++;
		}
	}cout<<cnt;
	return 0;
} 

(未完待续……)

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

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

相关文章

一种新兴的身份安全理念:身份结构免疫

文章目录 前言一、从身份管理到身份结构免疫二、身份结构免疫应用实践三、典型应用场景前言 随着组织的数字身份数量激增,基于身份的网络攻击活动也在不断增长。在身份优先的安全原则下,新一代身份安全方案需要更好的统一性和控制度。而在现有的身份管理模式中,组成业务运营…

MySQL相关问题快问快答

我写这篇文章的目的只有一个&#xff1a;通过这些问题来帮助我去将我脑子里的MySQL脑图给巩固熟悉&#xff0c;通过回答这些问题&#xff0c;让我对脑子里的MySQL知识有更深的印象&#xff0c;当什么时候我的MySQL脑图不熟的时候&#xff0c;我就可以拿这篇文章来去巩固一下&am…

ctfshow web入门 php特性 web123--web139

web123 必须传CTF_SHOW&#xff0c;CTF_SHOW.COM 不能有fl0g 在php中变量名字是由数字字母和下划线组成的&#xff0c;所以不论用post还是get传入变量名的时候都将空格、、点、[转换为下划线&#xff0c;但是用一个特性是可以绕过的&#xff0c;就是当[提前出现后&#xff0c;…

【javaWeb 原理篇】底层实现原理(快速学习配置原理,Bean管理)

Spring底层 配置优先级Bean管理获取beanBean的作用域第三方Bean SpringBoot原理起步依赖自动配置自动配置的原理自定义starter 配置优先级 Spring中的配置文件如果配置了相同的内容则根据配置优先级进行配置: application.properties>application.yml>application.yaml …

90天玩转Python—08—基础知识篇:Python优秀代码的编程规范

90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装) 90天玩转Python—04—基础知识篇:Pytho…

Python技能树学习-函数

题目一&#xff1a;递归调用 函数的参数&#xff1a; def dump(index, default0, *args, **kw): print(打印函数参数) print(---) print(index:, index) print(default:, default) for i, arg in enumerate(args): print(farg[{i}]:, arg) for…

跨越网络边界:借助C++编写的下载器程序,轻松获取Amazon商品信息

背景介绍 在数字化时代&#xff0c;数据是新的石油。企业和开发者都在寻找高效的方法来收集和分析网络上的信息。亚马逊&#xff0c;作为全球最大的电子商务平台之一&#xff0c;拥有丰富的商品信息&#xff0c;这对于市场分析和竞争情报来说是一个宝贵的资源。 问题陈述 然…

ArcGIS和ArcGIS Pro快速加载ArcGIS历史影像World Imagery Wayback

ArcGIS在线历史影像网站 World Imagery Wayback(网址:https://livingatlas.arcgis.com/wayback/)提供了数期历史影像在线浏览服务,之前不少自媒体作者在文中宣称其能代表Google Earth历史影像。 1、一点对比 (1)同一级别下的版本覆盖面 以下述区域为例,自2014年2月20…

面试题:ConcurrentHashMap

ConcurrentHashMap 是一种线程安全的高效Map集合 底层数据结构&#xff1a; JDK1.7底层采用分段的数组链表实现 JDK1.8 采用的数据结构跟HashMap1.8的结构一样&#xff0c;数组链表/红黑二叉树。 1. JDK1.7 数据结构 提供了一个segment数组&#xff0c;在初始化Concurre…

SQL注入利用学习-Union联合注入

联合注入的原理 在SQL语句中查询数据时&#xff0c;使用select 相关语句与where 条件子句筛选符合条件的记录。 select * from person where id 1; #在person表中&#xff0c;筛选出id1的记录如果该id1 中的1 是用户可以控制输入的部分时&#xff0c;就有可能存在SQL注入漏洞…

【学习】软件验收测试,能否选择第三方检测机构进行测试?

随着信息技术的快速发展&#xff0c;软件已经成为各行各业中不可或缺的一部分。为了保证软件的质量和稳定性&#xff0c;验收测试成为了软件开发过程中至关重要的一环。那么&#xff0c;第三方软件测试机构可以做验收测试吗&#xff1f;我们一起来看下今日的分享。 一、验收测…

目标检测——色素性皮肤病数据集

一、重要性及意义 首先&#xff0c;色素性皮肤病变是一类常见的皮肤疾病&#xff0c;其发病率有逐年增高的趋势。这些病变可能由遗传或环境因素导致黑素细胞生成异常&#xff0c;如黑色素瘤等。黑色素瘤具有极高的恶性率和致死率&#xff0c;而且恶化可能性大&#xff0c;容易…

大模型基础知识 - 语言模型及其演进

开场白 人工智能发展到现在&#xff0c;在2个重要领域取得了重大突破&#xff0c;有望达到人类水平&#xff1a; 计算机视觉 &#xff08;Computer Vision, CV&#xff09;-> 希望机器帮助人类处理图像数据自然语言处理&#xff08;Natural Language Processing, NLP&…

rsync+inotify实时同步 和 GFS分布式文件系统概述

目录 一、rsyncinotify实时同步 1.1.实时同步的优点 1.2.Linux内核的inotify机制 1.3.发起端配置rsyncInotify 1.4.配置远程登陆 1.4.1.修改rsync源服务器配置192.168.190.101 ​编辑 1.4.2.配置server 192.168.190.102 二、GFS 2.1.GlusterFS简介 2.2.GlusterFS特点…

6 个典型的Java 设计模式应用场景题

单例模式(Singleton) 场景: 在一个Web服务中,数据库连接池应当在整个应用生命周期中只创建一次,以减少资源消耗和提升性能。使用单例模式确保数据库连接池的唯一实例。 代码实现: import java.sql.Connection; import java.sql.SQLException;public class DatabaseConne…

【SCI绘图】【热力图系列2 R】多特征相关性分析热力图指定聚类 R

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【热力图系列2 R】多特征相关性分析热力图指定聚类 R 1.环境准备 library(gplots) library(RColorBrewer)2.数据读取 ###…

AI如何与健康管理相结合

AI与健康管理的结合是当今科技和医疗领域的一个重要趋势。随着人工智能技术的不断发展和完善&#xff0c;它在健康管理方面的应用越来越广泛&#xff0c;为人们提供了更加高效、精准和个性化的健康管理服务。本文将探讨AI如何与健康管理相结合&#xff0c;以及这种结合所带来的…

1.Godot引擎|场景|节点|GDS|介绍

Godot介绍 Godot是一款游戏引擎 可以通过在steam商城免费下载 初学者和编程基础稍差的推荐学习使用GDScript&#xff0c;和python有些相似 Godot节点 Godot的开发思想——围绕节点 节点的特征与优势 最常用基本的开发组件大部分都具有具体的功能&#xff0c;如图片&#xf…

JavaScript - 你知道==、===和Object.is的区别吗

难度级别:初级及以上 提问概率:75% 因为==操作符会存在数据类型的隐式转换,所以最终判断的是转换后的值是否相等,经过总结发现,除了null、undefined和NaN以外,其他的数据类型在遇到==数据转换时候,更倾向于先转为数值类型再进行比较,…

UE4_动画基础_ 使用分层动画(Using Layered Animations)

完成在移动过程中武器发射的角色制作&#xff01; 动画混合仅仅意味着在一个角色或骨架网格体上的两个或多个动画之间进行平滑过渡。在虚幻引擎4中&#xff0c;有多种方法可以应用这种混合&#xff0c;要么通过混合空间&#xff0c;或通过实际组合两个基于加权偏差或alpha值的…