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

AtCoder Beginner Contest 391(A~E题题解)

A - Lucky Direction

思路:纯模拟的一个水题

#include <bits/stdc++.h>  
using namespace std;  
#define int long long  
string s;
signed main() 
{   cin>>s;for(int i=0;i<s.size();i++){char c=s[i];if(c=='N'){cout<<"S";}else if(c=='S'){cout<<"N";}else if(c=='E'){cout<<"W";}else if(c=='W'){cout<<"E";}
}return 0;  
}

 B - Seek Grid

思路:数据很小,直接写一个n的四次方的代码即可,暴力模拟

#include <bits/stdc++.h>  
using namespace std;  
#define int long long  
char a[55][55];
char b[55][55];
signed main() 
{   int n,m;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>a[i][j];}}for(int i=1;i<=m;i++){for(int j=1;j<=m;j++){cin>>b[i][j];}}for(int i=1;i<=n-m+1;i++){for(int j=1;j<=n-m+1;j++){if(a[i][j]==b[1][1]){int flag=1;for(int k=i;k<=i+m-1;k++){for(int l=j;l<=j+m-1;l++){if(a[k][l]!=b[k-i+1][l-j+1]){flag=0;break;}}}if(flag==1){cout<<i<<" "<<j<<"\n";return 0;}}}}return 0;  
}

 C - Pigeonhole Query

 思路:我们可以用cnt数组去统计每个鸽巢的鸽子的数量,如果变成2,则大于1的鸽巢数量+1,如果减去变成1则大于1的鸽巢数量-1

最终即为结果

#include <bits/stdc++.h>  
using namespace std;  
#define int long long  
int n;
int q;
int flag;
int p,h;
int cnt[1000005];
map<int,int> mp;//鸽子~鸽巢 
signed main() 
{   cin>>n;for(int i=1;i<=n;i++){cnt[i]=1;mp[i]=i;}cin>>q;int ans=0;for(int i=1;i<=q;i++){cin>>flag;if(flag==1){cin>>p>>h;cnt[mp[p]]--;if(cnt[mp[p]]==1)ans--;mp[p]=h;cnt[h]++;if(cnt[h]==2)ans++;}else{cout<<ans<<"\n";}}return 0;  
}

 D - Gravity

 思路:我们可以将思路转变一下,先去求出每个方块的消除时间,然后去比对他问的时间,如果消除时间小于提问的时间就是已经被消除了,否则就是还在

我们可以去统计每一列都有多少方块,那么能消除的行数,也就是每一列方块的最小个数,这个应该都能理解吧

那我们同理应该能明白,每一行删除都是一个特定的时间,当前行内的方块的最高的高度,就是当前行的删除时间

一但出现某一列的方块为0,就结束循环,因此我们应当注意上面红字还有一个特判如果消除时间为0,那就证明一直没有被消除,因此也是yes

#include <bits/stdc++.h>  
using namespace std;  
#define int long long  
int n,w;
int q;
int t,a;
int x,y;
vector<pair<int,int>> col[200005];//表示每一列的每一行在什么位置 
int te[200005];//表示每个方块消失的时间 
signed main() 
{   cin>>n>>w;for(int i=1;i<=n;i++){cin>>x>>y;col[x].push_back(make_pair(y,i));}for(int i=1;i<=w;i++){sort(col[i].begin(),col[i].end());}for(int k=1;k<=n;k++)//第k次消除{int maxn=0;for(int i=1;i<=w;i++){if(col[i].size()<k){maxn=-1;break;}maxn=max(maxn,col[i][k-1].first);;}if(maxn==-1)break;for(int i=1;i<=w;i++){te[col[i][k-1].second]=maxn;}}cin>>q;for(int i=1;i<=q;i++){cin>>t>>a;if(te[a]==0||t<te[a]){cout<<"Yes\n";}else{cout<<"No\n";}}return 0;  
}

E - Hierarchical Majority Vote

思路:我们可以将这道题看做是一个树上dp的问题,每个父节点都有三个子节点,然后从根节点向下深搜,再将结果返回根节点即可

我们来看定义dp[i][j]表示i结点变换为j这个数,所需要的最小操作数 ,我们在统计父节点的时候,如果想让这个点为1只需要有两个点为1即可,如果为0,就只需要两个点为0即可,因此我们在统计当前点颜色为c的时候,只要将这几个点的颜色变为c的情况累加起来,并且减去最大的这个价值即可

ans[i]表示i点在没有经过操作的时候应当为的数字

然后最后输出dp[root][ans[root]^1]即可,root为根节点

#include <bits/stdc++.h>  
using namespace std;  
#define int long long  
int n,len;
string s;
vector<int> e[5000005];//存储每个的子节点 
int dp[5000005][2];//dp[i][j]表示将下标为i的点变为j所需的最小操作次数 
int ans[5000005];//原本应该的结果 
void dfs(int v)
{if(v<=n){if(s[v]=='1'){dp[v][0]=1;}else{dp[v][1]=1;}ans[v]=s[v]-'0';return;}int cnt=0;for(int u:e[v]){dfs(u);cnt+=ans[u];}if(cnt>=2){ans[v]=1;}else{ans[v]=0;}for(int c=0;c<=1;c++){int sum=0;int maxn=0;for(int u:e[v]){sum+=dp[u][c];maxn=max(maxn,dp[u][c]);}dp[v][c]=sum-maxn;}
}
signed main() 
{   cin>>n;cin>>s;n=s.size();len=n;s=" "+s;for(int i=1;i+2<=len;i+=3){len++;e[len].push_back(i);e[len].push_back(i+1);e[len].push_back(i+2);} dfs(len);cout<<dp[len][ans[len]^1];return 0;  
}

相关文章:

AtCoder Beginner Contest 391(A~E题题解)

A - Lucky Direction 思路&#xff1a;纯模拟的一个水题 #include <bits/stdc.h> using namespace std; #define int long long string s; signed main() { cin>>s;for(int i0;i<s.size();i){char cs[i];if(cN){cout<<"S";}else if(c…...

mysql mvcc 锁 关系

多版本并发控制&#xff08;MVCC&#xff09;是一种用于数据库并发控制的机制&#xff0c;它可以在保证数据一致性的同时&#xff0c;提高数据库的并发性能。下面结合 MVCC 机制&#xff0c;详细阐述常见的四种事务隔离级别&#xff08;读未提交、读已提交、可重复读、串行化&a…...

安卓手机基于 Termux 安装 AList 并设置开机自启的详细教程

安装 AList 安装 Termux&#xff1a; 点击下载 更新软件包&#xff1a;打开 Termux&#xff0c;运行以下命令以更新软件包列表并升级已安装的软件包&#xff1a; bash复制 pkg update && pkg upgrade安装 AList&#xff1a;运行以下命令安装 AList&#xff1a; bash复…...

LeetCode:503.下一个更大元素II

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;503.下一个更大元素II 给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[…...

实验5 配置OSPFv2验证

实验5 配置OSPFv2验证 1.实验目的 &#xff08;1&#xff09;OSPFv2 验证的类型和意义。 &#xff08;2&#xff09;配置基于区域的 OSPFv2 简单口令验证和 MD5 验证的方法。 &#xff08;3&#xff09;配置基于链路的 OSPFv2 简单口令验证和 MD5 验证的方法。 2.实验准备 配置…...

第二节 docker基础之---镜像构建及挂载

查看当前镜像&#xff1a; [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE [rootdocker ~]#很明显docker是咱们新搭建的所以目前还没有镜像 1&#xff0c;搜索镜像&#xff1a; [rootdocker ~]# docker search centos 搜索镜像并过滤是官…...

论文阅读:MGMAE : Motion Guided Masking for Video Masked Autoencoding

MGMAE:Motion Guided Masking for Video Masked Autoencoding Abstract 掩蔽自编码&#xff08;Masked Autoencoding&#xff09;在自监督视频表示学习中展现了出色的表现。时间冗余导致了VideoMAE中高掩蔽比率和定制的掩蔽策略。本文旨在通过引入运动引导掩蔽策略&#xff0…...

记录一下 在Mac下用pyinstallter 打包 Django项目

安装: pip install pyinstaller 在urls.py from SheepMasterOneToOne import settings from django.conf.urls.static import staticurlpatterns [path("admin/", admin.site.urls),path(generate_report/export/, ReportAdmin(models.Report, admin.site).generat…...

【漫话机器学习系列】084.偏差和方差的权衡(Bias-Variance Tradeoff)

偏差和方差的权衡&#xff08;Bias-Variance Tradeoff&#xff09; 1. 引言 在机器学习模型的训练过程中&#xff0c;我们常常面临一个重要的挑战&#xff1a;如何平衡 偏差&#xff08;Bias&#xff09; 和 方差&#xff08;Variance&#xff09;&#xff0c;以提升模型的泛…...

deepseek本地部署-linux

1、官网推荐安装方法&#xff08;使用脚本&#xff0c;我绕不过github&#xff0c;未采用&#xff09; 登录ollama下载网站https://ollama.com/download/linux&#xff0c;linux下有下载脚本。 正常来说&#xff0c;在OS系统下直接执行脚本即可。 2、手动安装方法 2.1获取ol…...

解决使用python提取word文档中所有的图片时图片丢失的问题

python解析word文档&#xff0c;提取文档中所有的图片并保存&#xff0c;并将原图位置用占位符替换。 问题描述 利用python-dox库解析word文档&#xff0c;并提取里面的所有图片时发现会出现一摸一样的图片只解析一次&#xff0c;导致图片丢失&#xff0c;数量不对的情况。 …...

【Spring相关知识】Spring应用如何优雅使用消息队列

文章目录 概述**核心概念****使用场景****快速入门**1. 添加依赖2. 配置 Binder3. 定义消息通道4. 发送和接收消息5. 运行应用 **高级特性****优点****适用场景** 概述 Spring Cloud Stream 是一个用于构建消息驱动微服务的框架&#xff0c;它基于 Spring Boot 和 Spring Inte…...

人工智能:从概念到未来

人工智能&#xff1a;从概念到未来 一、引言 在当今数字化时代&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;已从科幻小说和电影中的幻想逐渐走进现实&#xff0c;成为推动社会进步和经济发展的关键力量。它正在深刻地改变着我们的生活…...

CUDA Graph

cudaGraphLaunch 是 NVIDIA CUDA API 中的一个函数&#xff0c;用于在 CUDA Graphs 中启动一个已实例化的图。 CUDA Graphs 简介 CUDA Graphs 是 NVIDIA CUDA 编程模型中的一种技术&#xff0c;旨在优化 GPU 程序的性能。它允许将一系列连续的 GPU 操作&#xff08;如计算和数…...

1343. 大小为 K 且平均值大于等于阈值的子数组数目

目录 一、题目二、思路2.1 解题思路2.2 代码尝试2.3 疑难问题 三、解法四、收获4.1 心得4.2 举一反三 一、题目 二、思路 2.1 解题思路 在遍历时维护一个统计的变量&#xff0c;用来统计满足条件的子数组个数 2.2 代码尝试 class Solution { public:int numOfSubarrays(vec…...

IDEA+DeepSeek让Java开发起飞

1.获取DeepSeek秘钥 登录DeepSeek官网 : https://www.deepseek.com/ 进入API开放平台&#xff0c;第一次需要注册一个账号 进去之后需要创建一个API KEY&#xff0c;然后把APIkey记录保存下来 接着我们获取DeepSeek的API对话接口地址&#xff0c;点击左边的&#xff1a;接口…...

C# winforms 使用菜单和右键菜单

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

IDEA编写SpringBoot项目时使用Lombok报错“找不到符号”的原因和解决

目录 概述|背景 报错解析 解决方法 IDEA配置解决 Pom配置插件解决 概述|背景 报错发生背景&#xff1a;在SpringBoot项目中引入Lombok依赖并使用后出现"找不到符号"的问题。 本文讨论在上述背景下发生的报错原因和解决办法&#xff0c;如果仅为了解决BUG不论原…...

C基础寒假练习(6)

一、终端输入行数&#xff0c;打印倒金字塔 #include <stdio.h> int main() {int rows;printf("请输入倒金字塔的行数: ");scanf("%d", &rows);for (int i rows; i > 0; i--) {// 打印空格for (int j 0; j < rows - i; j) {printf(&qu…...

【论文翻译】DeepSeek-V3论文翻译——DeepSeek-V3 Technical Report——第一部分:引言与模型架构

论文原文链接&#xff1a;DeepSeek-V3/DeepSeek_V3.pdf at main deepseek-ai/DeepSeek-V3 GitHub 特别声明&#xff0c;本文不做任何商业用途&#xff0c;仅作为个人学习相关论文的翻译记录。本文对原文内容直译&#xff0c;一切以论文原文内容为准&#xff0c;对原文作者表示…...

3步永久保存喜马拉雅VIP音频:xmly-downloader-qt5全功能测评

3步永久保存喜马拉雅VIP音频&#xff1a;xmly-downloader-qt5全功能测评 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 xmly-down…...

技术日报|字节DeerFlow今日强势登顶日增3787星总量破4.6万,3D建筑编辑器黑马杀入前二

&#x1f31f; TrendForge 每日精选 - 发现最具潜力的开源项目 &#x1f4ca; 今日共收录 12 个热门项目&#x1f310; 智能中文翻译版 - 项目描述已自动翻译&#xff0c;便于理解&#x1f3c6; 今日最热项目 Top 10 &#x1f947; bytedance/deer-flow 项目简介: DeerFlow是一…...

AI+医疗从模型到产品:做一个真正可用系统,需要跨过哪些坎?

# AI医疗从模型到产品&#xff1a;做一个真正可用系统&#xff0c;需要跨过哪些坎&#xff1f;做 AI医疗的人&#xff0c;常常会经历一个很像的阶段。前期我们把大部分精力放在模型上&#xff1a;换 backbone、调 loss、做多模态融合、补校准、压错误样本&#xff0c;最后终于把…...

Steam致命错误failed to load steamui.dll?小白必看的6种实用修复方案

软件获取地址 https://pan.quark.cn/s/4cc6a4c0e881 打开Steam时突然弹出“failed to load steamui.dll”提示&#xff0c;无法进入平台甚至启动Y戏&#xff1f;这是Steam最常见的致命错误之一&#xff0c;在failed to load类问题中占比超4成&#xff0c;很多小白不清楚dll文件…...

游戏原画效率提升50%:Pixel Fashion Atelier在角色装备概念图批量生成中的应用

游戏原画效率提升50%&#xff1a;Pixel Fashion Atelier在角色装备概念图批量生成中的应用 1. 传统游戏原画设计的痛点 游戏开发过程中&#xff0c;角色装备设计往往是最耗时的环节之一。传统工作流程中&#xff0c;美术团队需要&#xff1a; 手工绘制数十种装备变体反复修改…...

Anaconda 被误删后抢救手册:零重装、10 分钟极速恢复

引言 作为 Python 开发者、数据分析师、AI 学习者的「必备工具」&#xff0c;Anaconda 凭借便捷的环境管理、海量预安装包&#xff0c;成为入门与进阶的首选。但很多人曾因误操作 —— 比如清理 C 盘时删掉anaconda3文件夹、卸载时选错路径、甚至误删系统环境变量 —— 导致co…...

树莓派4b(armv8) 64位系统源码编译onnx实战指南

1. 环境准备&#xff1a;从零搭建树莓派4B开发环境 在树莓派4B上编译ONNX源码之前&#xff0c;我们需要先确保系统环境配置正确。我用的是一台4GB内存版本的树莓派4B&#xff0c;系统是最新的Raspberry Pi OS 64位版本。这里有个小细节要注意&#xff1a;很多教程还在用32位系统…...

从零开始掌握30+种路径规划算法:可视化学习与实战指南

从零开始掌握30种路径规划算法&#xff1a;可视化学习与实战指南 【免费下载链接】PathPlanning Common used path planning algorithms with animations. 项目地址: https://gitcode.com/gh_mirrors/pa/PathPlanning 你是一个文章写手&#xff0c;你负责为开源项目写专…...

解锁论文新姿势:书匠策AI,你的毕业论文“智能加速器”!

在学术的征途上&#xff0c;毕业论文无疑是每位学子必须跨越的一道重要关卡。它不仅是对你大学四年学习成果的全面检验&#xff0c;更是你迈向学术殿堂或职场的重要敲门砖。然而&#xff0c;面对堆积如山的资料、错综复杂的逻辑结构以及繁琐的格式要求&#xff0c;许多学子往往…...

终极指南:5分钟免费快速部署企业级ERP系统,新手也能轻松上手

终极指南&#xff1a;5分钟免费快速部署企业级ERP系统&#xff0c;新手也能轻松上手 【免费下载链接】erpnext_quick_install Unattended install script for ERPNext Versions, 13, 14 and 15 项目地址: https://gitcode.com/gh_mirrors/er/erpnext_quick_install 还在…...