山东科技大学oj 1490 该按哪些键

本文介绍了一位名叫Peter的人如何使用仅剩的9键键盘输入大写英文字母和空格,包括特殊按键序列规则。通过实例演示了解如何转换全键输入到9键键盘操作。

Problem F: 该按哪些键

Description

       Peter在手机上打字时一直用全键键盘来输入,但最近不知道怎么搞的,把全键键盘弄丢了,只剩下了9键键盘。一项喜欢高科技的Peter却不会用9键键盘打字。So,please help him!

       9键键盘如上图所示。如果要输入字母'A',我们只需要按一次数字键2;如果要输入空格,则需要按数字键0;如果要输入字母'B'的话,我们需要连续按两次数字键2,按键序列为22。如果要输入的两个大写字母都在同一个数字键上,则需要按数字1作为分隔符,例如输入字母’JL’,需要先按一次数字键5,再按一次数字键1,再按3次数字键5,按键序列为51555。

       为了使问题简化,我们假设Peter要输入的内容只有大写英文字母和空格。

Input

    输入有多组测试用例。每组测试用例占一行,为Peter要输入的内容,不超过20000个字符。

Output

    对于每组测试用例,输出一行,为得到所有内容所要按下的按键序列。

Sample Input

I LOVE YOU HELLO WORLD

Sample Output

444055566688833099966688 44335551555666096667775553

HINT

Append Code

答案:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

prentf(char *s,int len)

{

    int i,j;//I LOVE YOU

    for(i=0;i<len;i++)

    {

        if(s[i] >= 'A'&&s[i] <= 'C')//2

        {

            if(s[i]-s[i-1] <= 2&&s[i-1] >= 'A'&&s[i-1] <= 'C')

            printf("1");

            for(j = 0;j<=s[i]-'A';j++)

            printf("2");

        }

        if(s[i] >= 'D'&&s[i] <= 'F')//3

        {

            if(s[i]-s[i-1] <= 2&&s[i-1] >= 'D'&&s[i-1] <= 'F')

            printf("1");

            for(j = 0;j<=s[i]-'D';j++)

            printf("3");

        }

        if(s[i] >= 'G'&&s[i] <= 'I')//4

        {

            if(s[i]-s[i-1] <= 2&&s[i-1] >= 'G'&&s[i-1] <= 'I')

            printf("1");

            for(j = 0;j<=s[i]-'G';j++)

            printf("4");

        }

        if(s[i] >= 'J'&&s[i] <= 'L')//5

        {

            if(s[i]-s[i-1] <= 2&&s[i-1] >= 'J'&&s[i-1] <= 'L')

            printf("1");

            for(j = 0;j<=s[i]-'J';j++)

            printf("5");

        }

        if(s[i] >= 'M'&&s[i] <= 'O')//6

        {

            if(s[i]-s[i-1] <= 2&&s[i-1] >= 'M'&&s[i-1] <= 'O')

            printf("1");

            for(j = 0;j<=s[i]-'M';j++)

            printf("6");

        }

        if(s[i] >= 'P'&&s[i] <= 'S')//7

        {

            if(s[i]-s[i-1] <= 3&&s[i-1] >= 'P'&&s[i-1] <= 'S')

            printf("1");

            for(j = 0;j<=s[i]-'P';j++)

            printf("7");

        }

        if(s[i] >= 'T'&&s[i] <= 'V')//8

        {

            if(s[i]-s[i-1] <= 2&&s[i-1] >= 'T'&&s[i-1] <= 'V')

            printf("1");

            for(j = 0;j<=s[i]-'T';j++)

            printf("8");

        }

        if(s[i] >= 'W'&&s[i] <= 'Z')//9

        {

            if(s[i]-s[i-1] <= 3&&s[i-1] >= 'W'&&s[i-1] <= 'Z')

            printf("1");

            for(j = 0;j<=s[i]-'W';j++)

            printf("9");

        }

        if(s[i] == ' ')

        printf("0");

         

    }

    printf("\n");

}



int main()

{

    char *s;

    char ch[10001];

    int n,i,len;

    scanf("%d",&n);

    while(gets(ch))

    {

        len = strlen(ch);

        s = (char*)malloc(len*sizeof(char)+1);

        strcpy(s,ch);

        prentf(s,len);

    }     

}

下载代码方式:https://pan.quark.cn/s/28492da20c79 依据所提供的文件资料,本资源将系统地探讨FPGA(即现场可编程门阵列)的核心概念、其在视频图像技术领域的入门及进阶知识要点,以及图像处理算法的实现方法。此外,还将对VIPBoardBig这一特定FPGA开发板的详细资料和使用途径进行深入剖析。 FPGA的入门与进阶学习主要涉及以下核心内容: 1. FPGA的基础概念:FPGA是一种能够通过编程进行配置的集成电路,主要目的是达成硬件逻辑的可重构特性。该类芯片由大量的可配置逻辑模块(CLB)、输入输出模块(IOB)以及可编程互连资源共同构成。 2. FPGA开发板与相关套件:FPGA开发板是一种用于FPGA芯片学习和测试的硬件平台,通常配备有基础的外设设备,例如LED指示灯、按开关、LCD显示屏、串口通信接口等。套件则通常包含硬件板卡、技术文档、相关资源,以及可能的软件工具和示例代码集。VIPBoardBig即为本教程选用的FPGA开发板,拥有特定的硬件配置和功能特性。 3. FPGA的开发流程:FPGA开发一般涉及硬件描述语言(HDL)的设计与仿真阶段,常用语言为Verilog或VHDL。随后,借助综合工具将设计蓝图转化为FPGA内部的逻辑网络,最终通过编程设备将配置文件传输至FPGA芯片中,从而实现设计的预期功能。 4. 外设开发与设计工作:涵盖LED显示控制、盘驱动、LCD显示驱动、UART串口设计等基础外设的开发任务。这部分知识将引导学习者掌握如何在FPGA平台上管理和运用这些基础外设。 5. VGA驱动显示与字符显示测试:VGA(Video Graphics Array)是一种视频传输接口标准,能够支持640x480...
内容概要:本文系统阐述了企业在搭建官方知识库后如何通过“7步锚定法”实现GEO(生成式引擎优化)的落地,重点在于从知识库走向内容矩阵的战略升级。文章指出知识库仅为起点,真正的核心是让大模型“信任并推荐”企业内容。为此提出“一个主战场+多个品牌布局”的策略,强调需根据行业特性选择高商业流量的大模型(如豆包、文心一言、通义千问等),而非工具性模型(如ChatGPT、Claude)。通过业务场景画像、大模型流量测绘、采信逻辑拆解、内容架构设计、语义关词埋点、信源建设与效果迭代七步法,构建高质量、高可信度的内容体系,并警惕“全模型覆盖、内容堆砌、一套内容通用、忽视第三方平台”四大误区。最终指出GEO本质是一场认知战,比拼的是对大模型逻辑与客户需求的理解深度及长期主义投入。; 适合人群:已完成官方知识库搭建、希望提升AI引用率与获客效率的企业市场负责人、品牌运营、数字营销从业者及SEO/GEO优化相关人员。; 使用场景及目标:①指导企业学选择主攻大模型并制定差异化内容策略;②构建符合大模型采信逻辑的高质量内容矩阵;③避免常见GEO落地误区,提升AI搜索下的品牌曝光与转化效果;④建立可持续优化的数据反馈闭环。; 阅读建议:建议结合自身行业特征与客户决策路径,逐步实践“7步法”,优先聚焦单一主战场打透,注重内容质量与第三方权威信源建设,坚持3-6个月持续投入以观察真实效果。
内容概要:本文针对考虑需求响应的微电网优化调度问题,提出了一种基于改进多目标灰狼算法(GWO)的优化方法,并通过Matlab代码实现了完整的仿真验证。研究在传统灰狼算法基础上引入改进机制,有效提升了算法的收敛速度、全局搜索能力和Pareto前沿分布质量,用于求解包含经济运行成本、碳排放水平、可再生能源利用率等多重目标的微电网调度模型。模型充分融合用户侧需求响应机制,利用分时电价等激励手段引导负荷转移与削峰填谷,从而增强系统对光伏、风电等间歇性能源的消纳能力,降低综合运行成本与环境影响。文中系统阐述了多目标优化建模过程、算法改进策略、约束处理方法及仿真结果对比分析,验证了该方法在获取高质量非劣解集和辅助决策方面的优越性。; 适合人群:适用于电力系统、能源互联网、自动化控制、智能优化算法等相关领域的硕士/博士研究生、研人员,以及从事微电网能量管理、综合能源系统优化、低碳调度等工作的工程技术人员。; 使用场景及目标:①应用于微电网能量管理系统(EMS)中实现多目标协同优化调度;②为基于电价激励的需求响应项目提供负荷调控策略与量化分析工具;③作为智能计算算法在能源系统优化中应用的教学案例与研参考,支持进一步拓展至多能互补、多微网互联等复杂场景的研究。; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点关注目标函数构造、约束条件处理、多目标适应度评估及决策者偏好选择机制;可尝试将该框架迁移至含氢能储能、电动汽车集群等新型设备的综合能源系统中进行性能测试与算法改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值