凌波微步(理解意思后就较简单)

该编程问题要求计算在一组木桩中,按照高度排序后不同高度的木桩数量。通过读取输入数据,对木桩高度进行排序,然后比较相邻木桩的高度差异来计数。给定的Java代码示例展示了如何解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

小Z的体型实在是太胖了,每次和小D一起出门都跟不上小D的脚步,这让小Z很气馁,于是小Z跋山涉水,仿名山,遍古迹,终于找到了逍遥派。掌门看小Z求师虔诚,决定传小Z一套《凌波微步》。

这种腿法可以无视距离的行进,但缺点是只能走向高处,否则强行发功极易走火入魔。

一天,练习《林波微步》的小Z来到一处练武场,这里从左到右,共有n个木桩,这些木桩有高有低,在这里小Z勤奋的练习着凌波微步,你知道小Z在这处练武场最多能练习多少次么?

输入描述:

本题有T组数据。
对于每组数据第一行有一个正整数n表示有多少个木桩。
第二行有n个数 a_i,表示木桩与水平地面的相对高度。
1≤T≤10
1≤n≤100000
1≤a_i≤1000000000

输出描述:

输出结果,并换行。

输入

2
6
1 2 3 4 5 6
5
1 3 5 3 6

输出

6
4

       其实这道题的实际意思就是求木桩排序之后,不同高度木桩的数量(刚开始没理解这题目的意思代码就直接写错了方向,在问了学长之后,学长的讲解才让我明白这题真正的意思,非常感谢这位学长)  代码如下:

import java.util.*;
public class Main{
    public static void main(String [] args)
    {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        for(int i = 0; i < a; i++)
        {
            int b = sc.nextInt();
            int[] s = new int[b];
            int count = 1;
            int max = 0;
            for(int j = 0; j < b; j++)
            {
                s[j] = sc.nextInt();
            }
            Arrays.sort(s);//java中的排序方法
            for(int k = 0; k < b-1; k++)
            {
                if(s[k] != s[k+1])
                {
                    count++;
                }
            }
            System.out.println(+count);
        }
    }
}

### CTFShow 平台 '凌波微步' 挑战解析 在探讨CTFShow平台上名为“凌波微步”的挑战时,可以从几个方面入手分析该题目可能涉及的内容和技术要点。 #### 一、理解背景故事与技能需求 通常情况下,“凌波微步”这一名称来源于武侠小说中的轻功秘技,象征着快速而灵活的动作。因此,在网络安全竞赛环境中使用这个名字往往暗示了解题者需要具备敏捷思考的能力以及掌握某些特定的技术手段来解决问题[^1]。 #### 二、技术层面的考量 考虑到已有的关于“凌波微步”的不同领域解释——无论是LAMMPS软件里的原子瞬移功能还是编程语言中的位运算技巧——可以推测此CTF题目可能会涉及到如下几种可能性: - **文件操作与权限管理**:类似于通过特殊方式访问受限资源或执行越权行为。 - **网络协议漏洞利用**:例如HTTP请求伪造或其他形式的数据包篡改攻击。 - **逆向工程**:对于给定程序进行反编译并寻找隐藏逻辑路径;或者是解决基于加密算法的问题。 - **内存布局操控**:如缓冲区溢出之类的经典安全缺陷,允许参赛选手绕过正常流程达到目的。 #### 三、具体解题策略示例 假设这是一个有关Web应用的安全测试,则具体的解题过程可能是这样的: ```python import requests url = "http://example.com/vulnerable_endpoint" headers = { 'User-Agent': 'Mozilla/5.0', 'Cookie': 'session=your_session_value' } data = {'param_name': 'value_to_trigger_behavior'} response = requests.post(url, headers=headers, data=data) if response.status_code == 200 and b'successful message indicator' in response.content: print('Challenge completed successfully.') else: print('Failed to complete the challenge.') ``` 这段代码展示了如何发送带有自定义参数的POST请求以触发目标服务器端的行为变化,从而完成指定的任务要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还未被认可

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值