【笔试训练】day23

一、打怪

思路

由于是先手攻击,如果一次攻击就能杀死小怪,那么说明可以为无限杀小怪。

再计算杀一只小怪要扣多少血就好了,再用总生命值去除这个扣血量,得到的就是最多杀死小怪的数量。注意,由于最后一定要活下来,最少要保留一滴血。我们可以拿h-1去计算就好了。

时间复杂度O(1),总时间复杂度O(t)。

代码:

#include <iostream>
using namespace std;int main() {int t;cin>>t;while(t--){int h,a,H,A;cin>>h>>a>>H>>A;if(a>=H){cout<<"-1";if(t)cout<<endl;continue;}int k1=(H+a-1)/a;//几个回合杀死小怪int c=(k1-1)*A;//每杀死一个小怪寇多少血cout<<(h-1)/c;if(t)cout<<endl;}return 0;
}
// 64 位输出请用 printf("%lld")

二、字符串分类

思路

思考这样一个结论:一个字符串如果可以任意交换相邻位置,代表这个字符串可以随意排列。

即如果字符串A和字符串B有一样种类的字符且每种字符数量都相等。那么AB一定可以通过交换位置变成相等。

 所以我们只需要比较AB每一种字符的数量和种类是否相等就好了。

给出一个技巧,直接将AB排序之后比较看是否一样就好了。时间复杂度为O(nlogm),m为字符串长度。

代码:

#include <iostream>
#include<unordered_map>
#include<string>
#include<algorithm>
using namespace std;
const int N=60;
int main() {int n;cin>>n;string str;int ans=0;unordered_map<string,int> mp;for(int i=1;i<=n;i++){cin>>str;sort(str.begin(),str.end());if(!mp.count(str)){ans++;mp[str]++;}}cout<<ans<<endl;return 0;
}

三、城市群的数量

思路

并查集。染色搜索也行。

每次将一条边上的两个点加入到一个集合里面,最后计算集合的·数量就好了。数组p[i]的值表示 i节点所在集合的编号。初始时所有的城市所在集合编号就是他自己。

代码:

class Solution {
public:int find(int x,vector<int>& p){if(p[x]!=x)p[x]=find(p[x],p);return p[x];}int citys(vector<vector<int> >& m) {int n=m.size();vector<int> p(n+1);for(int i=1;i<=n;i++)p[i]=i;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(m[i][j]==1){int x=find(i+1,p);int y=find(j+1,p);if(x==y)continue;p[x]=y;}}}int ans=n;for(int i=1;i<=n;i++){if(p[i]!=i)ans--;}return ans;}
};

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

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

相关文章

Mysql中表的创建以及数据类型

DDL 在表结构的操作 表的创建 creat table 表名&#xff08; 字段1 字段类型 [约束] &#xff0c; 字段2 字段类型 [约束] &#xff09;[comment 标注释]; create table tb_user(id int comment ID,一行字段的唯一标识,username varchar(20) comment 用户名,name varchar(…

Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)

0x01 产品简介 Mura CMS(Content Management System)是一款用于创建和管理网站内容的开源内容管理系统。它具有许多功能和灵活性,使其成为许多网站开发者和内容创作者的首选工具。是一个强大的企业网站解决方案,可用于创建和管理公司网站、产品目录、新闻发布、客户支持和…

当AI遇见现实:数智化时代的人类社会新图景

文章目录 一、数智化时代的机遇二、数智化时代的挑战三、如何适应数智化时代《图解数据智能》内容简介作者简介精彩书评目录精彩书摘强化学习什么是强化学习强化学习与监督学习的区别强化学习与无监督学习的区别 前言/序言 随着科技的日新月异&#xff0c;我们步入了一个前所未…

Linux(CentOS7)离线使用安装盘部署Telnet

[在线工具网 - 各类免费AI工具合集&#xff0c;免费pdf转word等](https://www.orcc.online) https://orcc.online 挂载镜像CentOS-7-x86_64-DVD-1810.iso到/mnt下&#xff08;其他位置也行&#xff09;&#xff0c;命令如下&#xff1a; mount /dev/sr0 /mnt 安装包默认在Pa…

实现MYSQL8.3.0 版本流量抓取

实现MYSQL8.3.0 版本流量抓取 根据测试需求&#xff0c;需要抓取MYSQL8.3.0流量包&#xff0c;使用wireshark 数据库客户端实现 安装数据库服务端 这里就不给详细操作方法&#xff0c; 网上教程一大堆&#xff0c;小编这里是最新的MYSQL 8.3.0版本 安装成功后&#xff0c;创…

开源交互审计系统:功能强大、安全好用【送源码】

在当今信息化时代&#xff0c;网络安全越来越受到重视。传统的远程控制工具&#xff0c;如RDP、SSH、VNC等&#xff0c;虽然方便易用&#xff0c;但存在安全隐患&#xff0c;容易被黑客利用。很多时候我们都需要做一些防护的处理来来保障网络安全。 今天了不起来分享一款开源好…

一定行:从零起步进入Java世界

郑重声明&#xff1a;本篇博客唯一目的就是带你从零起步&#xff0c;成功编写并运行你的第一个Java应用。 零&#xff1a;先给祖师爷来上柱香 Java之父简介 英文名&#xff1a;James Gosling中文名&#xff1a;詹姆斯高斯林祖籍&#xff1a;加拿大出生年&#xff1a;1955照片…

【C++】-类模板-002

1创建类模板 &#xff08;1&#xff09;新建工程 &#xff08;2&#xff09; &#xff08;3&#xff09; &#xff08;4&#xff09; &#xff08;5&#xff09;模板运行结果 2【UI】设计器 &#xff08;1&#xff09;跳转到【UI】设计器 &#xff08;2&#xff09;添加…

QQ超大文件共享(别用,传进去后,压缩都显示不出来,LJ qq!)(共享文件)

文章目录 需要共享双方同时在线开启方法第一次会提示设置默认共享目录&#xff0c;默认是E:\QQFileShare\<qq号>\&#xff1a;然后新建共享会在其后创建共享目录&#xff0c;共享目录中只能共享文件。需要点击添加文件&#xff0c;直接把文件拷贝到目录里好像还不行&…

扫码查看文件是如何实现的?文件活码在线生成的方法

现在很多场景下会通过扫码的方式来查看文件&#xff0c;这种方式可以让更多的人同时通过扫码的方式来查看二维码&#xff0c;有利于文件的快速分享以及用户获取内容的个人体验&#xff0c;而且可以保护文件的安全性&#xff0c;那么如何制作文件二维码呢&#xff1f; 文件二维…

Docker安装常用镜像

1. mysql 安装 获取镜像 docker pull mysql:8.0.30创建文件挂载目录 创建容器并运行 docker run -p 3306:3306 --name mysql3306 \ -v /home/docker/mysql8/log:/var/log/mysql \ -v /home/docker/mysql8/data:/var/lib/mysql \ -v /home/docker/mysql8/mysql-files:/var…

DigitalOcean 应用托管更新:应用端到端运行时性能大幅改进

DigitalOcean 希望可以为企业提供所需的工具和基础设施&#xff0c;以帮助企业客户加速云端的开发&#xff0c;实现业务的指数级增长。为此 DigitalOcean 在 2020 年就推出了App Platform。 App Platform&#xff08;应用托管&#xff09; 是一个完全托管的 PaaS 解决方案&…