sincerit tokitsukaze and RPG

2024-01-01 05:48
文章标签 rpg sincerit tokitsukaze

本文主要是介绍sincerit tokitsukaze and RPG,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

链接:https://ac.nowcoder.com/acm/contest/308/B
来源:牛客网

题目描述
tokitsukaze最近沉迷一款RPG。
这个RPG一天有k分钟,每一天从第1分钟开始。
有n种怪物,第i种怪物每天第一次出现的时间为Xi分钟,第二次出现的时间为2Xi分钟,第三次出现的时间为3Xi分钟…同一时刻出现的怪物种类越多,打怪获得的经验也越高。
为了高效练级,tokitsukaze想知道在一天内出现怪物种类最多的时间点会出现多少种怪物,这样的时间点有多少个。
输入描述:
第一行包括2个正整数n,k(1≤n≤105,1≤k≤106),表示有n种怪物,一天有k分钟。
接下来一行包括n个正整数X(1≤Xi≤10^6),含义如题面所示。
输出描述:
输出一行,包括两个整数a,b。
a表示怪物种类数,b表示时间点的个数。
示例1
输入
复制
3 6
2 2 3
输出
复制
3 1
说明
在第6分钟时,3种怪物都出现了。
示例2
输入
复制
3 5
2 2 3
输出
复制
2 2
说明
在第2分钟和第4分钟时,第一种和第二种怪物出现了。
示例3
输入
复制
6 10
1 2 3 4 5 6
输出
复制
4 1
说明
在第6分钟时,出现了第一种、第二种、第三种、第六种怪物。
示例4
输入
复制
3 5
6 6 6
输出
复制
0 5
说明
在第1分钟、第2分钟、第3分钟、第4分钟、第5分钟,都没有出现怪物。

这个代码超时,不知道哪里会耗时

#include <stdio.h>
#include <cstring>
const int N = 1e6+5;
int dp[N];
int main() {int n, k, x;while (~scanf("%d%d", &n, &k)) {memset(dp, 0, sizeof(dp));for (int i = 1; i <= n; i++) {scanf("%d", &x);for (int j = x; j <= k; j+= x) dp[j]++;}int time = 0, sum = 0; // time表示出现的次数,sum表示种类 for (int i = k; i >= 1; i--) {if (dp[i] > sum) {sum = dp[i];time = 1;} else if (dp[i] && dp[i] == sum) {time++;}}printf("%d %d\n", sum, sum==0?k:time);}return 0;
}

改进:

#include <stdio.h>
#include <cstring>
const int N = 1e6+5;
int cnt[N];
int temp[N];
int main() {int n, k, x;while (~scanf("%d %d", &n, &k)) {memset(cnt, 0, sizeof(cnt));for (int i = 1; i <= n; i++) {scanf("%d", &x);temp[x]++;}for (int i = 1; i <= k; i++) {if (temp[i]) {for (int j = i; j <= k; j+=i) cnt[j] += temp[i]; //要用另一个数组存数据不然会覆盖 }}//for (int i = 1; i <= k; i++) printf("%d ", cnt[i]); int mx = 0, sum = 0; // mx表示出现的种类,sum表示次数for (int i = 1; i <= k; i++) if (cnt[i] > mx) mx = cnt[i];for (int i = 1; i <= k; i++) if (cnt[i] == mx) sum++;printf("%d %d\n", mx, sum);}return 0;
}

这篇关于sincerit tokitsukaze and RPG的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/558312

相关文章

creator物理引擎 /RPG运动类型 /坦克

1 applyForce/ToCenter(). 这个力怎么计算 (牛顿第二定律F=ma) 2 .linearVelocity()是像素/米 (看源码) 3 why到第四帧才有速度 CocosCreator官方文档物理引擎Demo(physics-example,下载链接:https://github.com/2youyou2/physics-example) ----------------

【纯java语言做RPG游戏】4.用XML导入NPC并与NPC对话

上次搞定了角色的行走以及角色与地图元素的碰撞检测问题,这次就在这个地图中加入第一个NPC吧..   首先,前面做地图的时候用的是三层的数组,第一层用来存放角色脚下的素材,第二层是和角色同一层次的素材,而第三层本来是准备用来存放角色上方的素材想云朵之类的,但是想了一下,还是算了,没必要做得那么的麻烦,那么第三层就用来存放NPC吧...   在游戏中加入一个NPC,可以用JAVA面向对象的思想,创建

【纯JAVA语言做个RPG游戏】2.游戏界面及角色移动的基本实现

继上次做的地图编辑器,我大致的做了一个4000X4000的游戏地图数组,不过只画了一部分,以后要加什么新东西继续编辑这个地图就行了,保存在了一个文件中.     现在便可以继续下一步,做出游戏的大致界面了.     现在的2D游戏界面常见的大致有两种形式:     1.一种是地图在游戏窗体上固定,人在地图中走动(也就是人相对屏幕移动了);     2.而另一种则是游戏人物位置固定,游戏的

奇幻RPG(物品锻造 与 Decorator模式)

物品锻造是各类奇幻游戏中的常见功能,就拿众所周知的Diablo来说吧。假设角色拥有一把单手剑,可能基础攻击力只有13,但是它有三个装备孔。当给剑镶嵌一颗蓝宝石的时候,它就拥有了额外的冰冻效果并多加2点攻击力;当给剑镶嵌一颗红宝石的时候,它又拥有了额外的火焰伤害并多加3点攻击力;当给剑镶嵌一颗绿宝石的时候,它又拥有了额外的中毒伤害并多加的4点攻击力。当然,也可以三个孔都镶嵌同一色的宝石。本文将说明

奇幻RPG(人物构造 与 Abstract Factory模式)

在前一节,我们介绍了Strategy模式,并使用此模式实现了一个根据角色的职业来分配技能的范例(实际也就是动态地为类分配方法)。作为一款奇幻RPG,有了职业,我们还应当可以为角色选择种族,比如说:人类(Human)、精灵(Elf)、矮人(Dwarf)、兽人(Orc)等等。而这四个种族又有着截然不同的外形,精灵皮肤灰白、有着长长的耳朵、没有体毛和胡须;矮人的皮肤与人类近似,但是身材矮小、通常留着浓

寒假第五天--递推递归--不容易系列之(3)—— LELE的RPG难题

不容易系列之(3)—— LELE的RPG难题 Time Limit: 1000MS Memory limit: 32768K 题目描述 人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题: 有排成一行的n个方格,用红(Red)

【Rust日报】2019-09-06:文字RPG

文字RPG 作者之前寫過 MUDdy 像MUD的純文字互動遊戲,但只是單機的 Read more 最近也用Rust寫了 RCRPG Read more 這是一個 Rosetta Code 裡的題目,Rosetta Code是一個把基礎的程式問題用各種語言實作一遍的網站,大家有興趣也可以來幫忙Rust的實作更完整。 Read more fastwfc-rs: libfastwfc 的 Rust 綁

71. UE5 RPG 实现敌人召唤技能

在这一篇文章中,我们要实现敌人的召唤师能够召唤自己的仆从进行作战。 要实现这个技能,我们首先创建新的敌人蓝图,用于召唤。接着,我们将实现一个召唤技能基类,在基类中实现在召唤师的周围获取到可以生成的位置点,然后在技能蓝图中在对应的位置生成敌人的Actor,并在后续对其进行优化。接下来,我们将一步步实现此功能。 创建新的敌人 我们首先创建两个新的敌人,这两个恶魔类型的敌人,用于召唤使用。 这里也不

HumbleBundle捆绑包6月18号推出38件Unity和Unreal的3D模型捆绑包美术工具道具环境模块化恐怖FPS和RPG赛博20240618

HumbleBundle今天更新了新的捆绑包,Unity和Unreal的无限创作主题, 主要是场景环境模型、工具、道具等合集,质量挺高。 非常适合FPS、模拟经营、RPG等类型游戏。 HumbleBundle捆绑包6月18号推出38件Unity和Unreal的3D模型捆绑包美术工具道具环境模块化恐怖FPS和RPG赛博202406181505 分三档: 第一档位只有1个场景模型

hdu2045 不容易系列之(3)—— LELE的RPG难题

不容易系列之(3)—— LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 26703    Accepted Submission(s): 10648 Problem Description 人称