Toyota Programming Contest 2023#8(AtCoder Beginner Contest 333)

A - Three Threes

题目大意:给你一个整数n,将这个数n输出n次。

呃呃

B - Pentagon

题目大意:给你一个正五边形ABCDE,给你任意两条边,判断是否相等

主要问题要判断一下内边:AD,AC,EB,EC,DB之间的关系,因为内边的夹角都相等,边也都相等(正五边形),所以内边都相等。要证明也可以画辅助线来证明,但是这显而易见,就不证明了。

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;string s1,s2;void yes(){cout<<"Yes"<<endl;
}
void no(){cout<<"No"<<endl;
}void solve(){cin>>s1>>s2;if(s1[1]<s1[0])swap(s1[0],s1[1]);//线段表示模式改成前面小端点后面大端点if(s2[1]<s2[0])swap(s2[0],s2[1]);//可以少判断一半if(s1=="AB" or s1=="BC" or s1=="CD" or s1=="DE" or s1=="AE"){//任意外边相等if(s2=="AB" or s2=="BC" or s2=="CD" or s2=="DE" or s2=="AE")return yes();return no();}if(s1=="AC" or s1=="AD" or s1=="BE" or s1=="CE" or s1=="BD"){//任意内边相等if(s2=="AC" or s2=="AD" or s2=="BE" or s2=="CE" or s2=="BD")return yes();return no();}
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

C - Repunit Trio

题目大意:对于序列{1,11,111,1111,...},后面类推。你可以任意选取三个相加(选取的数可以重复,但是选取的方案不能重复)来组成一个数x,对于新序列(升序){x1,x2,x3,x4,...},给你一个n,输出xn。

思路:因为n的范围只有333,所以可以直接暴力枚举所有相加方案,防止重复枚举开个set来存。

#include <bits/stdc++.h>
#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;vector<int>v;
set<int>s;
int cnt=1,n;void solve(){cin>>n;v.push_back(1);v.push_back(11);v.push_back(111);v.push_back(1111);v.push_back(11111);v.push_back(111111);v.push_back(1111111);v.push_back(11111111);v.push_back(111111111);v.push_back(1111111111);v.push_back(11111111111);v.push_back(111111111111);for(int i=0;i<v.size();++i)for(int j=0;j<v.size();++j)for(int k=0;k<v.size();++k)s.insert(v[i]+v[j]+v[k]);for(auto i:s){if(cnt==n){cout<<i;break;}cnt++;}
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

D - Erase Leaves

题目大意:给你一颗树,每次你可以删去一个叶子节点,把节点1删掉至少要删掉多少个节点。

思路:因为只能删叶子节点,所以要把节点1删掉的话,要把节点1先变成叶子节点。

假设节点1的儿子有:2,3,4

那么只要删掉任意两个儿子,节点1就可以变成叶子节点了。

所以我们只需要删掉节点1周围的所有子树,然后加回最多节点数的子树即可。

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;const int N=3e5+5;
int n,u,v,f[N],maxx=INT_MIN,ans=1;//注意此处ans=1,初始化默认节点1已经被删了
vector<int>e[N];void dfs(int now,int fa){//求出每个节点下面都有多少个节点(包含自己)for(auto son:e[now])if(son!=fa){dfs(son,now);f[now]+=f[son];}
}void solve(){cin>>n;per(i,1,n-1){cin>>u>>v;e[u].push_back(v);e[v].push_back(u);}per(i,1,n)f[i]=1;//初始化为1(即包含自己)dfs(1,1);for(auto son:e[1]){//遍历节点1的儿子maxx=max(maxx,f[son]);//记录最大的子树ans+=f[son];//全部删了}cout<<ans-maxx<<endl;//加回最大的子树
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

E - Takahashi Quest

吐槽:看到这种题目格式还以为是dp题,实际上没那么难

题目大意:高桥将会经历n个事件,每个事件可以描述为ti,xi。

如果ti=1,那么这里有一瓶xi药,可以用来对付xi怪

如果ti=2,那么这里有一个xi怪

在所有怪都被干掉的情况下,希望任意时刻高桥包里带的药的数量的最大值尽可能小

最大值尽可能小:比如高桥可以带10瓶药来干掉5个怪,但是实际上只要5瓶药就可以了。

任意时刻:1药 1药 1怪 1药 1怪 1药,我们可以拿前面两个药来解决后面两个怪,但是这样任意时刻的最大值会变成2,然而实际上这个值为1就可以过关,每次拿一个药来干一个怪。

思路:贪心,带后悔的贪心。

因为任意时刻的最大值要尽可能小,所以我们能不带药就不带药,因为可能还会遇到怪,所以我们需要后悔前面某个不带药的时间节点,来干掉怪。

这个某个节点要尽可能选后面的,如果选前面的就会出现题目大意中说到的那个问题。

因为需要后悔,所以要保留所有药。因为尽可能要选后面的,可以开栈来维护所有药。

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;const int N=2e5+5;
int n,t[N],x[N],ans,tmp;
bool take[N];
stack<int>q[N];//q[i]={j},药效为i的药{j}void no(){cout<<-1<<endl;
}void solve(){cin>>n;per(i,1,n)cin>>t[i]>>x[i];per(i,1,n){if(t[i]==1)q[x[i]].push(i);else{if(q[x[i]].empty())return no();else{take[q[x[i]].top()]=true;q[x[i]].pop();}}}per(i,1,n){if(t[i]==1 and take[i])tmp++;else if(t[i]==2)tmp--;ans=max(ans,tmp);}cout<<ans<<endl;per(i,1,n){if(t[i]==1)cout<<take[i]<<" ";}
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

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

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

相关文章

基于ssm图书商城网站的设计和开发论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本图书商城网站就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

Win11极速安装Tensorflow-gpu+CUDA+cudnn

文章目录 0.pip/conda换默认源1.Anacondapython虚拟环境2.安装CUDA以及cudnn 0.pip/conda换默认源 为了高效下载&#xff0c;建议先把默认源换了&#xff0c;很简单这里不再赘述。&#xff08;我用梯子&#xff0c;所以没换源&#x1f60b;&#xff09; 1.Anacondapython虚拟…

最棒的 7 款精选我的世界光影水反效果包

光影支持基础Mod下载 版本&#xff1a;1.12✔1.11.2✔1.10.2✔1.9.4✔1.8✔1.7.10✔ 下载和安装&#xff1a; GLSL Shaders Mod 或者 OptiFine 我的世界光影支持Mod可以帮助玩家提示游戏画面&#xff0c;加强你的游戏录制视频效果和实时游戏体验。有数量众多的光影效果包提供…

一文了解Tomcat

文章目录 1、Tomcat介绍2、Tomcat使用配置2.1、Tomcat下载启动2.2、Tomcat启动乱码2.3、Tomcat端口号修改 3、Tomcat项目部署4、IDEA中使用Tomcat方式 1、Tomcat介绍 什么是Tomcat ​ Tomcat是Apache软件基金会一个核心项目&#xff0c;是一个开源免费的轻量级web服务器&#x…

《Linux C编程实战》笔记:一些系统调用

目录 dup和dup2函数 fcntl函数 示例程序1 示例程序2 ioctl函数 dup和dup2函数 #include <unistd.h> int dup(int oldfd); int dup2(int oldfd, int newfd): dup 函数复制 oldfd 参数所指向的文件描述符。 参数&#xff1a; oldfd&#xff1a;要复制的文件描述符的…

[笔记] wsl 下使用 qemu/grub 模拟系统启动(单分区)

背景 最近在学习操作系统&#xff0c;需要从零开始搭建系统&#xff0c;由于教程中给的虚拟机搭建的方式感觉还是过于重量级&#xff0c;因此研究了一下通过 qemu 模拟器&#xff0c;配合 grub 完成启动系统的搭建。 qemu 介绍 qemu 是一款十分优秀的系统模拟器&#xff0c;…

@PostMapping接收String类型的参数

接口这样定义&#xff1a; PostMapping("/aaa") public void getById(String param)参数这样测试&#xff1a;

C++特殊类和类型转换剖析

目录 一、特殊类 1.1拒绝被拷贝的类 1.2 限制在堆上创建类 1.3 限制在栈上创建的类 1.4 不能被继承的类 二、类型转换 2.1 static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 一、特殊类 什么是特殊类&#xff1f;在普通类的设计基础上&#xff0c…

基于Java+vue的音乐网站设计与实现(源码+文档+数据库)

摘 要 在此基础上&#xff0c;提出了一种基于javavue的在线音乐排行榜系统的设计与实现方法。本系统分为两个大的功能&#xff0c;即&#xff1a;前端显示、后端管理。而在前台&#xff0c;则是播放不同的歌曲&#xff0c;让人可以在上面观看不同的歌曲&#xff0c;也可以观看…

CSS学习

CSS学习 1. 什么是css?2.css引入方式2.1 内嵌式2.2 外联式2.3 行内式2.4 引入方式特点 3. 基础选择器3.1 标签选择器3.2 类选择器3.3 id选择器3.4 通配符选择器 4. 文字基本样式4.1 字体样式4.1.1 字体大小4.1.2 字体粗细4.1.3 倾斜4.1.4 字体4.1.5 字体font相关属性连写 4.2 …

地图自定义省市区合并展示数据整合

需求一&#xff1a;将省级地图下的两个市合并成一个区域&#xff0c;中间的分割线隐藏。 1、访问下方地址&#xff0c;搜索并下载省级地图json文件。 地址&#xff1a;https://datav.aliyun.com/portal/school/atlas/area_selector 2、切换到边界生成器&#xff0c;上传刚刚下…

论文降重同义词替换的实践经验与改进建议 快码论文

大家好&#xff0c;今天来聊聊论文降重同义词替换的实践经验与改进建议&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;论文降重同义词替换的实践经验与改…

Datawhale 12月组队学习 leetcode基础 day3 递归

这是一个新的专栏&#xff0c;主要是一些算法的基础&#xff0c;对想要刷leedcode的同学会有一定的帮助&#xff0c;如果在算法学习中遇到了问题&#xff0c;也可以直接评论或者私信博主&#xff0c;一定倾囊相助 进入正题&#xff0c;今天咱们要说的是递归&#xff0c;递归是是…

Qt中槽函数在那个线程执行的探索和思考

信号和槽是Qt的核心机制之一&#xff0c;通过该机制大大简化了开发者的开发难度。信号和槽属于观察者模式&#xff08;本质上是回调函数的应用&#xff09;。是函数就需要考虑其是在那个线程中执行&#xff0c;本文讨论的就是槽函数在那个线程中执行的问题。 目录 1. connect…

大数据存储技术(3)—— HBase分布式数据库

目录 一、HBase简介 &#xff08;一&#xff09;概念 &#xff08;二&#xff09;特点 &#xff08;三&#xff09;HBase架构 二、HBase原理 &#xff08;一&#xff09;读流程 &#xff08;二&#xff09;写流程 &#xff08;三&#xff09;数据 flush 过程 &#xf…

IS-IS原理与配置3

IS-IS原理与配置 • IS-IS&#xff08;Intermediate System to Intermediate System&#xff0c;中间系统到中间系统&#xff09;是ISO &#xff08;International Organization for Standardization&#xff0c;国际标准化组织&#xff09;为它的CLNP &#xff08;ConnectionL…

OSWBB 部署实现

1、OSWatcher (oswbb) 是一个可供用户下载的工具&#xff0c;可以用来抓取操作系统的性能指标。 是一组shell程序&#xff0c;程序中调用: top, vmstat, iostat, mpstat, netstat,and traceroute等os的监控工具 。OSWatcher 的使用是基于 standard licensing terms 并且不需要…

Alibaba分布式事务组件Seata XATCC实战

1. Seata XA模式实战 XA协议最主要的作用是就是定义了RM-TM的交互接口&#xff0c;XA规范除了定义的RM-TM交互的接口(XA Interface)之外&#xff0c;还对两阶段提交协议进行了优化。 1.1 整体机制 在 Seata 定义的分布式事务框架内&#xff0c;利用事务资源&#xff08;数据…

python3GUI--仿win风格天气By:PyQt5

文章目录 一&#xff0e;前言二&#xff0e;展示1.首页-白色1.首页-白色22.首页-黑色3.天气预报视频4.天气资讯-白色5.天气资讯-黑色6.收藏夹-白色7.收藏夹-黑色8.搜索9.mini-白色10.mini-黑色11.光遇天气 三&#xff0e;心得四&#xff0e;总结五&#xff0e;参考 一&#xff…

编译 pywinhook v1.6.2 的环境设置和步骤

准备做一个鼠标事件响应程序。 查了一下相关python的第三方类库&#xff0c;发现有 pyhook。 一、起源 pyhook 1、pyhook是最早的版本 pyhook支持的python版本比较低&#xff0c;代码在 https://sourceforge.net/projects/pyhook/ 2、之后产生了两个并行版本 pyHook3 和 p…