计算器写作文

2024-01-01 09:44
文章标签 计算器 写作文

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

一起来交流编程吧【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')//判断前导0cout<<f[m];else{cout<<"0.";//这里不知为何不能用printf,我用就80分 for (i=1;i<f[m].size();i++)cout<<f[m][i];}return 0;
}

这篇关于计算器写作文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

QT学习之计算器

网格布局初尝试,快速构建计算器 项目结构: wident.h拖动建立界面,20个button,一个lineedit 布局好后整体网格布局调整,依次给每个案件输入文本,并改objectname方便后期辨识 为了在lineedit显示数字,转到槽,编辑点击事件,如显示“1” void Widget::on_pushButton1_clicked(){expression += "1";u

Arcgis字段计算器:随机生成规定范围内的数字

选择字段计算器在显示的字段计算器对话框内,解析程序选择Python,勾选上显示代码块, 半部分输入: import random; 可修改下半部分输入: random.randrange(3, 28) 表示生成3-28之间的随机数 字段计算器设置点击确定完成随机数的生成,生成的随机数如下图所示。

Vue初学-简易计算器

最近在学习Vue的指令,做了一个简易计算器,比较适合刚入门的人参考学习。用到的知识点有: 1.插值表达式 2.v-model,双向绑定+、-、*、/、**等操作符 3.v-show,控制操作数2是否显示,乘方时不显示操作数2 4.methods选项,定义了calculate ()方法,实现各种运算 5.watch选项,监听selected的值的变化。 下面是程序的执行效果: 如果选择的是**乘

每日OJ_牛客_Emacs计算器(逆波兰表达式)

目录 牛客_Emacs计算器(逆波兰表达式) 解析代码 牛客_Emacs计算器(逆波兰表达式) Emacs计算器__牛客网 解析代码 逆波兰表达式(后缀表达式)求值,需要借助栈,思路: 循环输入,获取逆波兰表达式,然后进行以下补助,直到测试完所有的测试用例: 遇到数字字符串,将该数字字符串转化为数字然后入栈。遇到操作符时,从栈顶取两个数字,然后进行该运算符所对应运算

Django 中的用户界面 - 创建速度计算器

在 Django 中创建一个用户界面来计算速度,可以通过以下步骤完成。这个速度计算器将允许用户输入距离和时间,计算并显示速度。 一、问题背景 一位 Django 新手希望使用 Django 构建一个用户界面,以便能够计算速度(速度 = 距离/时间)。用户创建了一个名为 “speed” 的 Django 项目。但是,在运行服务器时遇到了错误,无法获取速度的用户界面。 二、解决方案 1、检

多少次幂的计算器,指数计算器

https://miniwebtool.com/zh-cn/exponents-calculator/?n1=0.95&n2=100&prec=10

Python习题 159:设计一个工资计算器

(编码题)编写一个 Python 函数,设计一个工资计算器,用来计算每周的工资。参数有: hours_worked:工作小时数hourly_rate:时薪overtime_rate:超出40小时的工资率,默认为 1.5,仅限关键字参数 def calculate_payment(hours_worked, hourly_rate, *, overtime_rate=1.5):regul

数据结构实验:栈实现计算器(表达式计算)

原创作品转载请注明出处http://blog.csdn.net/acvcla/article/details/41732447 欢迎抄袭,造福各位伸手党 /*************************************************************************> 转载请注明出处http://blog.csdn.net/acvcla/artic

AWS-亚马逊网络服务(基础服务)-AWS 定价计算器-概述与动手部署:

让我们来概述并亲身实践如何使用 AWS 定价计算器来计算 概述: AWS 定价计算器是 Amazon Web Services (AWS) 提供的基于 Web 的工具,可帮助用户估算其特定用例的 AWS 服务成本。欢迎来到雲闪世界。 它允许客户建模他们的基础设施并根据他们打算使用的服务和资源预测每月的成本。 AWS 定价计算器的主要功能: 用户可以选择单个 AWS 服务,如 EC2

【栈】| 力扣高频题: 基本计算器二

🎗️ 主页:小夜时雨 🎗️专栏:算法题 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/basic-calculator-ii/description/ (可点击) 本道题是栈的经典应用问题:表达式求值问题, 我们依旧是采取栈 + 分类讨论的方式。 解决思路