计算器写作文

news2025/2/28 19:55:59

一起来交流编程吧【CSDN app】:
http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pL9ccIHGKNLE0CWviAqQ_q6HzxomLW&authKey=VslKe623ptw8VRepda%2Bh0Ttr8Ruz8v%2FBW5HpVzyTWU7ECwpHIZpULMj6qIHYZBVb&noverify=0&gro

计算器写作文

题目描述

众所周知,计算器可以拿来干很多它本不应该干的事情,比如弹琴。

小A发现了一个计算器的隐藏功能——写英语作文。

他在计算器上按一些数字,这些然后旋转 180 度就是作文。

每个数字对应一两个字母

小A准备了一个单词表,选择其中的一些单词,按照一个顺序组成作文。这个作文是可以用计算器按出来的。比如单词表给“ODD”、“EGG”,作文写成“ODDEGG”的话,那么要在计算器上按出“993000”,这篇作文的得分就是993000。

单词表的单词不能重复使用。如果单词表出现了多个一样的单词,每个单词最多都可以各使用一次。单词不可以被截断。

小A希望自己写出的作文得分最高。当然这个计算器是有位数限制,作文长度不能超过显示位数。

计算器不能显示前导零,但是你可以添加小数点。比如作文写成“EGGODD”的话,就得按出0.00993,这个就是作文的得分,当然这得分太小了。

输入格式

第一行D表示计算器位数

第二行N表示单词数

接下来N行,一行一个单词,保证可以转换为数字。

输出格式

一行,表示最大的分值。

样例 #1

样例输入 #1

7
4
EGG
ODD
LOBE
LIBE

样例输出 #1

9933817

提示

40%数据,D<=20,N<=10

100%数据,D<=200,N<=10000,单词长度<=32

#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <valarray>
using namespace std;
int n,m;
string ans;
#define N 10010
//f,v,都是string 
string f[300];
int map[300];
string v[N];
int ni[N];
bool cmp(string a,string b) 
{
	string x=a+b,y=b+a;
	return x<y;
}
void init()//打表 
{  
	map['I']=1;map['D']=0;map['O']=0;map['q']=6;
    map['G']=9;map['Z']=2;map['E']=3;map['h']=4;
	map['S']=5;map['L']=7;map['B']=8;
}
string maxs(string a,string b) 
{
	int na=a.size(),nb=b.size();
	if (na==0)//特殊情况 
	return b;
	if (nb==0)
	return a;
	if (a[0]!='0'&&b[0]!='0')
	{
		if (na!=nb)//先判位数 
		return na>nb?a:b;
		return a>b?a:b;
	}
	return a>b?a:b;
}
int main()
{
	ios::sync_with_stdio(false); 
	cin>>m>>n;
    init();
    int i,j;
    for (i=1;i<=n;i++)
    {  
		string s;
		cin>>s;
        for (j=s.size()-1;j>=0;j--)
        v[i]+=(map[s[j]]+'0');//转换后放入v[i] 
    }
    sort(v+1,v+n+1,cmp);
    for (i=1;i<=n;i++)
    ni[i]=v[i].size();
    for (i=n;i>=1;i--)//01背包 
    for (j=m;j>=ni[i];j--)
    f[j]=maxs(f[j],f[j-ni[i]]+v[i]);//状态转移方程 
    if (f[m][0]!='0')//判断前导0
    cout<<f[m];
	else
	{
		cout<<"0.";//这里不知为何不能用printf,我用就80分 
		for (i=1;i<f[m].size();i++)
		cout<<f[m][i];
	}
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1346813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据应用领域:数据驱动一切

大数据出现的时间只有十几年&#xff0c;被人们广泛接受并应用只有几年的时间&#xff0c;但就是这短短几年的时间&#xff0c;大数据呈现出爆炸式增长的态势。在各个领域&#xff0c;大数据的身影几乎无处不在。今天我们通过一些大数据典型的应用场景分析&#xff0c;一起来看…

初始Web服务器

一、web服务器 1、什么是web服务器&#xff1f; web服务器就是web项目的容器&#xff0c;我们将开发好的web项目部署到web容器中&#xff0c;才能使用网络中的用户通过浏览器进行访问。 一张图带你了解web服务器有啥作用&#xff1a; 在我的电脑上有一个已经做好的项目&#…

【实用工具】Tmux使用指南

Tmux 三个重要概念 session&#xff08;会话&#xff09;、window&#xff08;窗口&#xff09;、pane&#xff08;面板&#xff09; 一个会话可以有多个窗口&#xff0c;一个窗口可以划分为多个面板 注意在tmux中使用快捷命令的话&#xff0c;需要加上前缀ctrlb 关于session的…

01. BI - Project one, 员工离职预测

文章目录 项目概要数据集处理LRSVM Hi&#xff0c;你好。我是茶桁。 又是开始了一个新的阶段。我不建议一些没基础的同学直接从这里开始&#xff0c;还是要先去之前的课程里补补基础。有的时候即便依葫芦画瓢的把代码写出来了&#xff0c;但是基本原理不清楚。而有的时候&#…

【华为机试】2023年真题B卷(python)-关联子串

一、题目 题目描述&#xff1a; 给定两个字符串str1和str2&#xff0c; str1进行排列组合只要有一个为str2的子串则认为str1是str2的关联子串&#xff0c; 请返回子串在str2的起始位置&#xff0c;若不是关联子串则返回-1。 二、示例 示例1 输入输出示例仅供调试&#xff0c;后…

WSL使用VsCode运行cpp文件

文章目录 缘起主要步骤参考 缘起 今天在阅读《C20设计模式-可复用的面向对象设计方法&#xff08;原书第2版&#xff09;》的时候&#xff0c;遇到代码想要运行一下&#xff0c;于是决定使用wsl下的vscode配置cpp的环境。 主要步骤 1.安装gcc和g编译器 打开命令行输入wsl&am…

C++_模板

目录 1、函数模板 1.2 模板原理 2、多个模板参数 3、模板的显示实例化 4、模板的匹配 5、类模板 结语&#xff1a; 前言&#xff1a; 在C中&#xff0c;模板分为函数模板和类模板&#xff0c;而模板的作用就是避免了重复的工作&#xff0c;把原本是程序员要做的重复工作交…

JavaFX:MVC模式学习01-使用PropertyValueFactory将模型与视图绑定

PropertyValueFactory类是“TableColumn cell value factory”,绑定创建列表中的项。示例如下&#xff1a; TableColumn<Person,String> firstNameCol new TableColumn<Person,String>("First Name");firstNameCol.setCellValueFactory(new PropertyVal…

C语言实验4:指针

目录 一、实验要求 二、实验原理 1. 指针的基本概念 1.1 指针的定义 1.2 取地址运算符&#xff08;&&#xff09; 1.3 间接引用运算符&#xff08;*&#xff09; 2. 指针的基本操作 2.1 指针的赋值 2.2 空指针 3. 指针和数组 3.1 数组和指针的关系 3.2 指针和数…

CentOS 7 实战指南:目录操作命令详解

写在前面 想要在 CentOS 7 系统下更高效地进行目录操作吗&#xff1f;不要犹豫&#xff0c;在这里我为你准备了一篇精彩的技术文章&#xff01;这篇文章将带您深入了解 CentOS 7 下目录操作相关命令的使用方法。无论您是新手还是有一定经验的用户&#xff0c;这篇文章都将为您…

vue-springboot基于JavaWeb的家装一体化商城平台guptn

针对用户需求开发与设计&#xff0c;该技术尤其在各行业领域发挥了巨大的作用&#xff0c;有效地促进了家装一体化的发展。然而&#xff0c;由于用户量和需求量的增加&#xff0c;信息过载等问题暴露出来&#xff0c;为改善传统线下管理中的不足&#xff0c;本文将提出一套基于…

区块链的三难困境是什么,如何解决?

人们需要保持社交、工作和睡眠之间的平衡&#xff0c;并且努力和谐相处。同样的概念也反映在区块链的三难困境中。 区块链三难困境是一个术语&#xff0c;指的是现有区块链的局限性&#xff1a;可扩展性、安全性和去中心化。这是一个存在了几十年的设计问题&#xff0c;其问题的…

学习动态规划解决不同路径、最小路径和、打家劫舍、打家劫舍iii

学习动态规划|不同路径、最小路径和、打家劫舍、打家劫舍iii 62 不同路径 动态规划&#xff0c;dp[i][j]表示从左上角到(i,j)的路径数量dp[i][j] dp[i-1][j] dp[i][j-1] import java.util.Arrays;/*** 路径数量* 动态规划&#xff0c;dp[i][j]表示从左上角到(i,j)的路径数量…

【深度解析C++】const成员函数

系列文章目录 &#x1f308;座右铭&#x1f308;&#xff1a;人的一生这么长、你凭什么用短短的几年去衡量自己的一生&#xff01; &#x1f495;个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C,自顶向下看Java-CSDN博客 ❤️相关文章❤️&#xff1a;Cthis指针&#xf…

野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植

摘要 基于野火霸道-V23.2寸屏的开发板&#xff0c;下载器为STLINK分为两个版本&#xff0c;FreeRTOS和裸机版本 裸机 裸机准备 lvgl v8.2版本的源码野火的《触摸画板-3.2寸》与《基本定时器》的代码例程 移植 将基本定时器代码移植到触摸画板-3.2寸的例程中&#xff0c;…

java springboot将接口查询数据放在系统中 一小时系统更新一次 避免用户访问接口查询数据库缓慢

真到了公司 很多数据库表 特别是常用的功能业务对应的 都是几百万条起步的数据 查询会比较缓慢 那么 我们就可以不用每次都真的查询数据库 例如 我这里有一个接口 通过 封装的 IBookService.list 函数去查询数据库 接口返回是这样的 我们先在启动类 条件装配上 这个接口所在的…

MySQL所有常见问题

一、事务 定义:一组操作要么全部成功,要么全部失败,目的是为了保证数据最终的一致性 在MySQL中,提供了一系列事务相关的命令: start transaction | begin | begin work:开启一个事务commit:提交一个事务rollback:回滚一个事务事务的ACID 原子性(Atomicity):当前事…

信号与线性系统翻转课堂笔记20——系统函数与信号流图

信号与线性系统翻转课堂笔记20——系统函数与信号流图 The Flipped Classroom20 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &#xff08;1&#xff09;了解信…

CSU计算机学院2021年C语言期末题目思路分享(后两道题)

文章目录 E: 实数相加——大数加法的拓展原题题目描述输入输出样例输入样例输出 题目思路实现步骤代码和注释 F: 谍影寻踪——链表的思想和运用原题题目描述输入输出样例输入样例输出 题目思路 一点感想 E: 实数相加——大数加法的拓展 原题 题目描述 C语言就要期末考试了&a…

每日一题——LeetCode922

方法一 双指针&#xff1a; 一个偶指针一个奇指针&#xff0c;偶指针每次都指向nums里的偶数&#xff0c;奇指针每次指向nums里的奇数&#xff0c;两个指针交替push进新数组即可&#xff1a; var sortArrayByParityII function(nums) {var even0,odd0,res[],flagtruewhile(r…