A. Escalator Conversations


A. Escalator Conversations

原创 于 2023-08-08 22:09:09 发布 · 粉丝可见 · 144 阅读 · 0 · 0 · 本内容遵循CC 4.0 BY-SA版权协议 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 · 编辑
文章链接:https://blog.csdn.net/hacker_51/article/details/132175444

题目:

样例:

7
5 3 3 11
5 4 14 18 2
2 9 5 6
11 9
10 50 3 11
43 44 74 98 62 60 99 4 11 73
4 8 8 49
68 58 82 73
7 1 4 66
18 66 39 83 48 99 79
9 1 1 13
26 23 84 6 60 87 40 41 25
6 13 3 28
30 70 85 13 1 55
2
1
4
1
0
0
3

解释:

思路:

这里其实直接模拟即可。

就是题意有点难理解,还得需要多练练,题目的意思就是 找出有多少个人和小弗高度差在步数可以走动的台阶高度之内的

即abs(h - peoh[i]) < k * m ,又因为我们 高度差是符合 我们走动的步数之间的,

即 abs(h - peoh[i]) % k == 0 就可以了

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
using namespace std;
const int N = 1e7 + 10;

inline void solve()
{
int n,m,k,h,ans = 0;

cin >> n >> m >> k >> h;

int step_height = k * m;

int height_difference[N];

for(int i = 0,height = 0;i < n;++i)
{
cin >> height;
height_difference[i] = abs(h - height);
}

for(int i = 0,height = 0;i < n;++i)
{
if(height_difference[i] % k == 0 && height_difference[i])
{
if(height_difference[i] < step_height) ans++;
}
}
cout << ans << endl;
}

int main()
{
int _t = 1;
cin >> _t;
while(_t--)
{
solve();
}

return 0;
}

最后提交:


觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭

微信二维码

wechat pay

支付宝二维码

ali pay

A. Escalator Conversations
http://blog.angindem.cn/2023/08/08/Angindem-CSDN博客/020_20/
作者
Angindem
发布于
2023年8月8日
许可协议