您的位置:首页 > 新闻 > 热点要闻 > 企业排名优化公司_图怪兽海报制作官网_推广策划方案_百度建立自己的网站

企业排名优化公司_图怪兽海报制作官网_推广策划方案_百度建立自己的网站

2024/12/26 4:14:36 来源:https://blog.csdn.net/weixin_73861555/article/details/144343757  浏览:    关键词:企业排名优化公司_图怪兽海报制作官网_推广策划方案_百度建立自己的网站
企业排名优化公司_图怪兽海报制作官网_推广策划方案_百度建立自己的网站

目录

打怪(模拟)

题目解析

讲解算法原理

编写代码

字符串的分类(哈希/排序)

题目解析

讲解算法原理

编写代码


打怪(模拟)

题目解析

1.题目链接:登录—专业IT笔试面试备考平台_牛客网

2.题目描述
 

题目描述

   你是一个勇士,现在你准备去森林刷毛球怪,你有两个属性(血量,攻击力),毛球怪也有这两个属性。当你遭遇一只毛球怪时你们会进入战斗,然后你和毛球怪轮流攻击(你先手),每次使对方的血量减去自己攻击力的数值,当一方的血量小于等于 0 时死亡。现在你想知道在自己活着的前提下最多杀死几只毛球怪。

输入描述:

第一行一个正整数t,代表测试数据组数。

第二行四个正整数h,a,H,A,代表你的血量和攻击力以及毛球怪的血量和攻击力。

所有整数大小不超过1000。

输出描述:

 共 t 行,每行一个整数x,代表最多能杀死多少毛球怪。如果能杀死无数只,输出-1。

示例1

输入

1 5 1 2 1

1
5 1 2 1

输出

4

4

讲解算法原理

解法:
算法思路:

根据题意模拟,注意⼀下细节就好了。

编写代码

c++算法代码:

#include <iostream>
using namespace std;
int t;
int h, a, H, A;
int fun()
{if(a >= H) return -1;int m = (H / a) + (H % a != 0 ? 1 : 0); // 怪物能抗⼏次int n = m - 1; // 玩家被攻击⼏次int x = n * A; // 杀死⼀只怪物的时候,玩家会掉多少⾎ int ret = h / x - (h % x == 0 ? 1 : 0); return ret;
}
int main()
{cin >> t;while(t--){cin >> h >> a >> H >> A; cout << fun() << endl; }return 0;
}

java算法代码:

import java.util.*;
public class Main
{public static void main(String[] args){Scanner in = new Scanner(System.in); int t = in.nextInt();int h, a, H, A; while(t-- != 0) { h = in.nextInt(); a = in.nextInt(); H = in.nextInt(); A = in.nextInt();  if(a >= H) System.out.println(-1); else{int m = H / a + (H % a != 0 ? 1 : 0); // 怪物能抗⼀下int n = m - 1; // 杀死⼀只怪物的时候,玩家被攻击⼏下 int x = n * A; // 杀死⼀只怪物的时候,玩家掉的⾎量 int ret = h / x - (h % x == 0 ? 1 : 0); System.out.println(ret); } } }
}

字符串的分类(哈希/排序)

题目解析

1.题目链接:字符串分类_牛客笔试题_牛客网

2.题目描述

牛牛有N个字符串,他想将这些字符串分类,他认为两个字符串A和B属于同一类需要满足以下条件:
A中交换任意位置的两个字符,最终可以得到B,交换的次数不限。比如:abc与bca就是同一类字符串。
现在牛牛想知道这N个字符串可以分成几类。

 

输入描述:

首先输入一个正整数N(1 <= N <= 50),接下来输入N个字符串,每个字符串长度不超过50。

输出描述:

输出一个整数表示分类的个数。

示例1

输入

4
abcd
abdc
dabc
bacd

输出

1

讲解算法原理

解法:
算法思路:

将字符串排序后,丢进能去重的哈希表⾥⾯就好了。

编写代码

c++算法代码:

#include <iostream>
#include <string>
#include <algorithm>
#include <unordered_set>
using namespace std;
int n;
string s;
int main()
{cin >> n;unordered_set<string> hash;while(n--){cin >> s;sort(s.begin(), s.end()); hash.insert(s);}cout << hash.size() << endl;return 0;
}

java算法代码:

import java.util.*; 
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main
{public static void main(String[] args) {Scanner in = new Scanner(System.in); int n = in.nextInt();HashSet<String> set = new HashSet<>();while(n-- != 0){char[] s = in.next().toCharArray(); Arrays.sort(s); set.add(new String(s));}System.out.println(set.size());}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com