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

Codeforces Round 1028 (Div. 2)(A-D)

题面链接:Dashboard - Codeforces Round 1028 (Div. 2) - Codeforces

A. Gellyfish and Tricolor Pansy

思路

要知道骑士如果没了那么这个人就失去了攻击手段,贪心的来说我们只需要攻击血量少的即可,那么取min比较一下即可

代码

void solve(){int a,b,c,d;cin>>a>>b>>c>>d;int x=min(a,c);int y=min(b,d);if(x>=y){cout<<"Gellyfish\n";}else{cout<<"Flower\n";}
}

B. Gellyfish and Baby's Breath

思路

根据给的公式对于每个r_{i}要求最大值,我们对于i来说其结果为max(2^{p_{0}}+2^{q_{i}},2^{p_{1}}+2^{q_{i-1}}...,2^{p_{i}}+2^{q_{0}})   注意到p和q出现的都是0-i

因此对于每个r_{i}只需要维护一下p_{i}q_{i}的最大值然后取最大即可,可以用前缀和来维护

特别注意这里对于2的次方预处理更好一些

代码

#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;int qpow(int a,int b){int ans=1;while(b){if(b&1){ans=(ans*a)%mod;}a=((a%mod)*(a%mod))%mod;b>>=1;}return ans;
}void solve(){int n;cin>>n;vi p(n);vi q(n);for(int i=0;i<n;i++){cin>>p[i];}vector<int> pp(n+10);int mx=p[0];pp[0]=0;for(int i=1;i<n;i++){pp[i]=pp[i-1];if(p[i]>mx){mx=p[i];pp[i]=i;}}for(int i=0;i<n;i++){cin>>q[i];}vector<int> pq(n+10);mx=q[0];pq[0]=0;for(int i=1;i<n;i++){pq[i]=pq[i-1];if(q[i]>mx){mx=q[i];pq[i]=i;}}vi r(n+10);for(int i=0;i<n;i++){if(p[pp[i]]>q[pq[i]]){r[i]=(qpow(2,p[pp[i]])+qpow(2,q[i-pp[i]]))%mod;}else if(p[pp[i]]<q[pq[i]]){r[i]=(qpow(2,p[i-pq[i]])+qpow(2,q[pq[i]]))%mod;}else{if(q[i-pp[i]]>p[i-pq[i]]){r[i]=(qpow(2,p[pp[i]])+qpow(2,q[i-pp[i]]))%mod;}else{r[i]=(qpow(2,p[i-pq[i]])+qpow(2,q[pq[i]]))%mod;}}}for(int i=0;i<n;i++){cout<<r[i]<<" ";}cout<<"\n";
}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}

C. Gellyfish and Flaming Peony

思路

贪心的来看我们最后要求的序列一定是全变成数列的gcd的

对于数列中存在gcd的数列我们可以直接用此gcd来改变其他数列的值

否则我们需要求出数列中最小的子集让子集的gcd=全局的gcd

对于第二部分我们可以 先将数组/gcd处理后 求所有数的gcd=1的最小子集的长度

我们用dp[i]表示gcd为i的时候的最小子集长度,需要dp[1]

代码

#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int inf = 1e18;void solve() {int n;cin>>n;vi a(n);int g=0;for (int i=0;i<n;i++){cin>>a[i];g=__gcd(g,a[i]);}int ct=0;for (int i=0;i<n;i++) {if (a[i]==g) ct++;}if (ct>0){cout<<n-ct<<"\n";return;}vi b;for (int i = 0; i < n; i++) {b.push_back(a[i] / g);}vector<int> dp(5001, inf);dp[0]=0;for (int x:b) {vector<int> tdp = dp;for (int d=0;d<=5000;d++) {if (dp[d]==inf) continue;int tg=__gcd(d,x);if (tg<=5000){if (tdp[tg]>dp[d]+1){tdp[tg]=dp[d]+1;}}}dp=tdp;}int s=dp[1];cout<<s+n-2<<"\n";
}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}

D. Gellyfish and Camellia Japonica

思路

感觉是个很有意思的题,首先我们在进行构思的时候要对操作倒着来以达到还原原数组的目的

对于所有的操作a[z]=min(a[x],a[y])我们可以试着构造一个二叉树的森林以z为父节点x,y为孩子节点

以样例2,3为例其构造出来的二叉树如下

不难发现从左到右从根节点出发遇到的第一个出现的节点的值就是已经处理完之后a[i]的值,并且很容易观察出我们要求叶子节点的值

得到此结论后可以根据此树的建树过程来表示出孩子节点的上界a[x]=max(a[x],a[z])以及a[y]=max(a[y],a[z])

以此来统计出每个节点的上界,再模拟下过程看得到的数组是否和原数组相同,不相同则输出-1

代码

#include<bits/stdc++.h>
using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 
#define int long long
#define vi vector<int>
#define vb vector<bool>
typedef pair<int,int> pll;const int N=2e5+10;
const int inf=1e18;
const int mod=998244353;void solve(){int n,q;cin>>n>>q;vi a(n+1);for(int i=1;i<=n;i++){cin>>a[i];}vi c=a;vector<array<int,3>> Q(q+1);for(int i=1;i<=q;i++){cin>>Q[i][0]>>Q[i][1]>>Q[i][2];}for(int i=q;i>=1;i--){auto [x,y,z]=Q[i];a[x]=max(a[x],a[z]);a[y]=max(a[y],a[z]);if(z!=x&&z!=y){     //特别注意此特判a[z]=0;}}vi b=a;for(int i=1;i<=q;i++){auto [x,y,z]=Q[i];b[z]=min(b[x],b[y]);}if(b!=c){cout<<"-1\n";return;}for(int i=1;i<=n;i++){cout<<a[i]<<" \n"[i==n];}}
signed main() {vcoistntcout<<fixed<<setprecision(2);int _=1;cin>>_;while(_--) solve();return 0;
}

相关文章:

Codeforces Round 1028 (Div. 2)(A-D)

题面链接&#xff1a;Dashboard - Codeforces Round 1028 (Div. 2) - Codeforces A. Gellyfish and Tricolor Pansy 思路 要知道骑士如果没了那么这个人就失去了攻击手段&#xff0c;贪心的来说我们只需要攻击血量少的即可&#xff0c;那么取min比较一下即可 代码 void so…...

记录一个梦,借助大语言模型图片生成

梦见家门口有一条大河&#xff0c;但大河和其它景物都是灰暗没有鲜艳色彩很普通的梦中场景。大河似乎是长江的支流&#xff0c;但也可能有一个响亮的名字似乎是金沙江。 突然看到一条金红色的龙在快速游动&#xff0c;不敢相信自己的眼睛&#xff0c;因为一直不相信有这种生物…...

android binder(二)应用层编程实例

一、binder驱动浅析 从上图看出&#xff0c;binder的通讯主要涉及三个步骤。 在 Binder Server 端定义好服务&#xff0c;然后向 ServiceManager 注册服务在 Binder Client 中向 ServiceManager 获取到服务发起远程调用&#xff0c;调用 Binder Server 中定义好的服务 整个流…...

HTML 等价字符引用:系统化记忆指南

HTML 等价字符引用:系统化记忆指南 在 HTML 中,字符引用(Character Entity References)用于表示保留字符或特殊符号。我将提供一个系统化的方法来记忆这些重要实体,并解释它们的实际应用。 什么是等价字符引用? HTML 字符引用有两种形式: 命名实体:&entity_name…...

【深度学习】17. 深度生成模型:DCGAN与Wasserstein GAN公式深度推导

深度生成模型:DCGAN与Wasserstein GAN公式深度推导 深度卷积生成对抗网络 DCGAN 在原始 GAN 框架中&#xff0c;生成器和判别器通常使用全连接层构建&#xff0c;这限制了模型处理图像的能力。为此&#xff0c;Radford 等人在 2016 年提出了 DCGAN&#xff08;Deep Convoluti…...

Ubuntu终端性能监视工具

目录 工具1&#xff1a;nvidia-smi 工具2&#xff1a;nvtop 工具3&#xff1a;nvitop 工具1&#xff1a;nvidia-smi nvidia-smi 如果希望自动刷新这个命令&#xff0c;可以输入如下命令&#xff1a; nvidia-smi -l 工具2&#xff1a;nvtop nvtop 安装方法&#xff1a; …...

设计模式——命令设计模式(行为型)

摘要 本文介绍了命令设计模式&#xff0c;这是一种行为型设计模式&#xff0c;用于将请求封装为对象&#xff0c;实现请求的解耦和灵活控制。它包含命令接口、具体命令、接收者、调用者和客户端等角色&#xff0c;优点是解耦请求发送者与接收者&#xff0c;支持命令的排队、记…...

鸿蒙OSUniApp智能商品展示实战:打造高性能的动态排序系统#三方框架 #Uniapp

UniApp智能商品展示实战&#xff1a;打造高性能的动态排序系统 引言 在电商应用开发中&#xff0c;商品展示和智能排序是提升用户体验的关键因素。随着HarmonyOS生态的发展&#xff0c;用户对应用的性能和交互体验要求越来越高。本文将深入探讨如何在UniApp中实现一个性能优异…...

03 APP 自动化-定位元素工具元素定位

文章目录 一、Appium常用元素定位工具1、U IAutomator View Android SDK 自带的定位工具2、Appium Desktop Inspector3、Weditor安装&#xff1a;Weditor工具的使用 4、uiautodev通过定位工具获取app页面元素有哪些属性 二、app 元素定位方法 一、Appium常用元素定位工具 1、U…...

PABD 2025:大数据与智慧城市管理的融合之道

会议简介 2025年公共管理与大数据国际会议&#xff08;ICPMBD 2025&#xff09;确实在海口举办。本次会议将围绕公共管理与大数据的深度融合、数据分析在公共管理中的应用、大数据驱动的政策制定与优化等议题展开深入研讨。参会者将有机会聆听前沿学术报告&#xff0c;分享研究…...

Golang持续集成与自动化测试和部署

概述 Golang是一门性能优异的静态类型语言&#xff0c;但因其奇快的编译速度&#xff0c;结合DevOps, 使得它也非常适合快速开发和迭代。 本文讲述如何使用Golang, 进行持续集成与自动化测试和部署。主要使用了以下相关技术&#xff1a; dep&#xff1a; 进行包的依赖管理gin…...

三套知识系统的实践比较:Notion、Confluence 与 Gitee Wiki

在过去几年中&#xff0c;我们团队先后使用过三套企业知识系统&#xff1a;Notion、Confluence 和 Gitee Wiki。每一套系统上线初期都带来一阵热情&#xff0c;但最终能真正融入研发流程、持续活跃的&#xff0c;只有最后一个。 我们不是要为某个平台背书&#xff0c;而是希望…...

mysql离线安装教程

1.下载地址: https://downloads.mysql.com/archives/community/ 2.上传安装包到系统目录,并解压 tar -xvf mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar3.检查系统中是否存在mariadb的rpm包 rpm -qa|grep mariadb存在则删除 rpm -e xxx4.解压完后执行如下命令安装 sudo rpm -iv…...

OpenGL 3D 编程

OpenGL 是一个强大的跨平台图形 API,用于渲染 2D 和 3D 图形。以下是 OpenGL 3D 编程的入门基础。 一. 环境设置 安装必要的库 GLFW: 用于创建窗口和处理输入 GLEW 或 GLAD: 用于加载 OpenGL 函数 GLM: 数学库,用于 3D 变换 // 基本 OpenGL 程序结构示例 #include <GL/g…...

基于FPGA的VGA显示文字和动态数字基础例程,进而动态显示数据,类似温湿度等

基于FPGA的VGA显示文字和数字 前言一、VGA显示参数二、字模生成三、代码分析1.vga_char顶层2.vga_ctrl驱动文件3.vga_pic数据准备文件 总结 前言 结合正点原子以及野火的基础例程&#xff0c;理解了VGA本身基本协议&#xff0c;VGA本身显示像素为640*480&#xff0c;因此注意生…...

力扣刷题Day 68:搜索插入位置(35)

1.题目描述 2.思路 方法1&#xff1a;回溯的二分查找。 方法2&#xff1a;看到了一个佬很简洁的写法&#xff0c;代码贴在下面了。 3.代码&#xff08;Python3&#xff09; 方法1&#xff1a; class Solution:def searchInsert(self, nums: List[int], target: int) ->…...

NodeJS全栈WEB3面试题——P4Node.js后端集成 服务端设计

4.1 如何在 Node.js 中管理钱包与私钥的安全性&#xff1f; 私钥管理原则&#xff1a;不暴露&#xff0c;不硬编码&#xff0c;不明文存储。 常见做法&#xff1a; 加密存储&#xff1a; 使用 crypto 或 ethers.Wallet.encrypt() 加密私钥&#xff0c;存储到数据库或文件系统…...

SQL进阶之旅 Day 12:分组聚合与HAVING高效应用

【SQL进阶之旅 Day 12】分组聚合与HAVING高效应用 在SQL的世界里&#xff0c;分组聚合&#xff08;Grouping and Aggregation&#xff09;是处理大规模数据集时最常用的技术之一。它允许我们将数据按照某些列进行分类&#xff0c;并对每个分类进行统计计算。而 HAVING 子句则是…...

深入剖析C#构造函数执行:基类调用、初始化顺序与访问控制

导言 在面向对象编程中&#xff0c;理解对象构造过程至关重要。C#的构造函数执行遵循严格的顺序规则&#xff0c;尤其是涉及继承和成员初始化时。本文将深入解析构造函数的执行流程、初始化语句的妙用以及类访问修饰符的影响&#xff0c;助你写出更健壮、可维护的代码。 构造…...

Java 大数据处理:使用 Hadoop 和 Spark 进行大规模数据处理

Java 大数据处理:使用 Hadoop 和 Spark 进行大规模数据处理 在当今数字化时代,数据呈现出爆炸式增长,如何高效地处理大规模数据成为企业面临的重要挑战。Java 作为一门广泛使用的编程语言,在大数据处理领域同样发挥着关键作用。本文将深入探讨如何利用 Hadoop 和 Spark 这…...

使用Python绘制节日祝福——以端午节和儿童节为例

端午节 端午节总算是回家了&#xff0c;感觉时间过得真快&#xff0c;马上就毕业了&#xff0c;用Python弄了一个端午节元素的界面&#xff0c;虽然有点不像&#xff0c;祝大家端午安康。端午节粽子&#xff08;python&#xff09;_python画粽子-CSDN博客https://blog.csdn.net…...

探索大语言模型(LLM):参数量背后的“黄金公式”与Scaling Law的启示

引言 过去十年&#xff0c;人工智能领域最震撼的变革之一&#xff0c;是模型参数量从百万级飙升至万亿级。从GPT-3的1750亿参数到GPT-4的神秘规模&#xff0c;再到谷歌Gemini的“多模态巨兽”&#xff0c;参数量仿佛成了AI能力的代名词。但参数真的是越多越好吗&#xff1f;这…...

Excel to JSON 插件 2.4.0 版本更新

我们很高兴地宣布 Excel to JSON 插件已升级到 2.4.0 版本&#xff01;本次更新带来了两项重要功能&#xff0c;旨在为您提供更大的灵活性和更强大的数据处理能力。 主要更新内容&#xff1a; 1. 用户可以选择从行或列中选择标题 在之前的版本中&#xff0c;插件通常默认从第…...

黑马点评后端笔记

1.基于Session实现登录流程 发送验证码: 先前端校验,后端再校验(防小人),合法生成验证码(RandomUtil生成),后端保存&#xff0c;在通过短信去发送给用户 短信验证码登录和注册: 拿到验证码和手机号后&#xff0c;后端通过session(spring mvc注入)拿到验证码,进行校验,如果用户…...

C#项目07-二维数组的随机创建

实现需求 创建二维数组&#xff0c;数组的列和宽为随机&#xff0c;数组内的数也是随机 知识点 1、Random类 Public Random rd new Random(); int Num_Int rd.Next(1, 100);2、数组上下限。 //定义数组 int[] G_Array new int[1,2,3,4];//一维数组 int[,] G_Array_T …...

光伏功率预测 | LSTM多变量单步光伏功率预测(Matlab完整源码和数据)

光伏功率预测 | MATLAB实现基于LSTM长短期记忆神经网络的光伏功率预测 目录 光伏功率预测 | MATLAB实现基于LSTM长短期记忆神经网络的光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 光伏功率预测 | LSTM多变量单步光伏功率预测&#xff08;Matlab完整源码和…...

解锁 AI 大语言模型的“知识宝藏”:知识库的奥秘与优化之道

1. 知识库在 AI 大语言模型中的作用 1.1 提供准确信息 知识库是 AI 大语言模型的重要组成部分&#xff0c;能够为模型提供准确的信息。在处理用户问题时&#xff0c;模型可以参考知识库中的数据&#xff0c;从而给出更准确的答案。例如&#xff0c;在医疗领域&#xff0c;知识…...

一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录——3. 服务器软件更新,以及常用软件安装

前言 前面&#xff0c;我们已经 安装好了 Ubuntu 服务器系统&#xff0c;并且 配置好了 ssh 免密登录服务器 &#xff0c;现在&#xff0c;我们要来进一步的设置服务器。 那么&#xff0c;本文&#xff0c;就是进行服务器的系统更新&#xff0c;以及常用软件的安装 调整 Ubu…...

第四十天打卡

知识点回顾&#xff1a; 彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中展平操作&#xff1a;除第一个维度batchsize外全部展平dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模式关闭dropout 作业&#xff1a;仔细学习下测试和训练代码…...

【请关注】ELK集群部署真实案例分享

ELK集群部署 1,准备es配置 es.yml: -------------------------------------------------------------- #集群名称 cluster.name: elasticsearch-cluster #节点名称 node.name: es-node1 #设置绑定的ip地址,可以使ipv4或者ipv6 #绑定这台机器的任何一个ip network.bind_hos…...