7-2 找单词 (15分)

假设有x1个字母A, x2个字母B,… x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,… 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HDU的价值是8+4+21=33。(组成的单词与排列顺序无关,比如ACM与CMA认为是同一个单词)。

输入格式:

输入首先是一个整数N,代表测试实例的个数。 然后包括N行数据,每行包括26个<=20的整数x1,x2,…x26.

输出格式:

对于每个测试实例,请输出能找到的总价值<=50的单词数,每个实例的输出占一行。

输入样例:

2
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9 2 6 2 10 2 2 5 6 1 0 2 7 0 2 2 7 5 10 6 10 2 10 6 1 9

输出样例:

在这里给出相应的输出。例如:

7
379297

解题

这题比较清晰,直接用bfs搜索,注意每个字母会搜索多次而不是一次,还有从每次都从下一个节点入队,避免重复。

代码

#include <algorithm>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;
const int maxn = 27;
int x[maxn];struct node {int v, k, sum;  //顶点编号, 表示剩余次数 + 1, 当前节点的
};int bfs() {queue<node> q;for (int i = 1; i < 27; i++)if (x[i] > 0) q.push({i, x[i], i});int ans = 0;while (!q.empty()) {int v = q.front().v;int k = q.front().k;int sum = q.front().sum;q.pop();if (sum <= 50)ans++;elsecontinue;if (k > 1) q.push({v, k - 1, sum + v});for (int i = v + 1; i < 27; i++)if (x[i] > 0) q.push({i, x[i], sum + i});}return ans;
}int main() {int N;cin >> N;while (N--) {for (int i = 1; i < 27; i++) cin >> x[i];cout << bfs() << endl;}system("pause");return 0;
}

PTA 找单词 (15分)(bfs)相关推荐

  1. PTA 病毒感染检测 (15分)

    病毒感染检测 (15分) 作者:王东 单位:贵州师范大学 代码长度限制:16 KB 时间限制:400 ms 内存限制:64 MB 人的DNA和病毒DNA均表示成由一些字母组成的字符串序列.然后检测某种 ...

  2. PTA 1071 小赌怡情 (15 分) C++实现

    1071 小赌怡情 (15 分) 常言道"小赌怡情".这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计 ...

  3. PTA 1051 复数乘法 (15 分) C++实现

    1051 复数乘法 (15 分) 复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i^2 = −1:也可以写成极坐标下的指数形式 (R×e(Pi) ),其中 ...

  4. PTA | 喊山 (30 分) BFS 拼题A

    喊山,是人双手围在嘴边成喇叭状,对着远方高山发出"喂-喂喂-喂喂喂--"的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的"讯号",达 ...

  5. PTA: 统计专业人数 (15分)(C语言)

    本题要求实现一个函数,统计学生学号链表中专业为计算机的学生人数.链表结点定义如下: struct ListNode { char code[8]; struct ListNode *next; }; ...

  6. PTA 动物世界 (15 分)(继承)

    补充程序 : 1.实现Mammal类的方法 2.由Mammal类派生出Dog类,在Dog类中增加itsColor成员(COLOR类型) 3.Dog类中增加以下方法: constructors: Dog ...

  7. 7-30 找单词——多重背包求方案数

    假设有x1个字母A, x2个字母B,- x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,- 字母Z的价值为26.那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是 ...

  8. 单词长度c语言pta,PTA7-26 单词长度(15 分)通俗解法

    你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束.你要输出每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如it's算一个单词,长度为4.注意,行中可能出现连续的空格:最后的.不 ...

  9. PTA天梯赛L1刷题总结(三)15分题型(超详细题解)

    多么感人!时隔一年多,我终于来更新15分题型的博文了.突然发现L1的题目量扩充了!一共有哦20道题.哎~都写一遍题解好了.在这里推荐下胡凡的算法笔记!在基础算法和数据结构上给了我很多细致的讲解启发.过 ...

最新文章

  1. java9-6 内部类
  2. hibernate继承关系映射方法(三)--每个具体类一张表TPC
  3. linux下多个db2,Linux下安装多个DB2副本
  4. Face-landmarks-detection-benchmark 人脸特征定位网站汇总
  5. 如何改变Idea的背景
  6. 电线行业中UL单支电子线成本计算
  7. 电脑ping,电脑ping怎么用|电脑ping怎么打开_PC6教学
  8. JS获取当天23时59分59秒
  9. linux查看硬盘插槽_SSD小讲堂丨自己动手丰衣足食 手把手教你安装M.2固态硬盘
  10. 计算机专业专科可以进的国企,适合专科生报考的4大“专业”,国企事业单位抢着要,还能拿编制...
  11. Android给图像添加相框、圆形圆角显示图片、图像合成知识
  12. 问卷星刷问卷python_Python+Selenium自动刷问卷星问卷
  13. J4125小主机部署软路由笔记01
  14. CAS单点登录框架使用
  15. 如何对人脸识别进行法律规制
  16. 你和孩子是好朋友吗?
  17. 量子通信与计算机网络,虽然量子计算机仍然是个梦想,但是量子通信时代已经到来...
  18. 【STM32H7教程】第74章 STM32H7的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)
  19. PLC简单梯形图(一)
  20. #快速幂,eratosthenes筛#bzoj 3930 洛谷 3172 选数

热门文章

  1. XML介绍之XML的语法与元素
  2. xml文档规则_避免文档陷阱的7条规则
  3. 关于计算机毕业后能从事的岗位,以及工作内容。
  4. 网络安全成为汽车行业的首要任务
  5. 奶瓶linux下载软件,求可以在虚拟机上直接加载的奶瓶镜像文件,运行linux系统即可运行奶瓶,哪位好心人可以发给我...
  6. 校盈家学校财务收费管理软件,最适合学校财务收费的管理工具!
  7. python关键词挖掘_Python批量挖掘百度凤巢关键词数据
  8. 重建分区表,修复无法格式化的U盘
  9. 【论文】Poly-yolo: 改进anchor分配问题
  10. [附源码]Node.js计算机毕业设计道路桥梁工程知识文库系统Express