每日三题之网易2017春招十二题(2)

来源:互联网 发布:男士穿衣软件 编辑:程序博客网 时间:2024/05/19 03:29

小易记单词

小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词,如果小易写出的单词是在系统提供的,将获得这个单词长度的平方的分数。注意小易写出的单词可能重复,但是对于每个正确的单词只能计分一次。 

输入描述

输入数据包括三行:
第一行为两个整数n(1 ≤ n ≤ 50)和m(1 ≤ m ≤ 50)。以空格分隔
第二行为n个字符串,表示小易能记住的单词,以空格分隔,每个单词的长度小于等于50。
第三行为m个字符串,系统提供的单词,以空格分隔,每个单词的长度小于等于50。

输出描述

输出一个整数表示小易能获得的分数

输入例子

3 4apple orange strawberrystrawberry orange grapefruit watermelon

输出例子

136

这道题看上去需要去重,但是如果利用C++STL里面的set即可在输入时顺便处理完数据,之后在输入系统单词时就可以直接进行运算而不需要额外的开销去存储系统单词了。同时和JS类似,可以直接通过在set里面find字符串即可匹配。


涂棋盘

小易有一块n*n的棋盘,棋盘的每一个格子都为黑色或者白色,小易现在要用他喜欢的红色去涂画棋盘。小易会找出棋盘中某一列中拥有相同颜色的最大的区域去涂画,帮助小易算算他会涂画多少个棋格。 

输入描述

输入数据包括n+1行:
第一行为一个整数n(1 ≤ n ≤ 50),即棋盘的大小
接下来的n行每行一个字符串表示第i行棋盘的颜色,'W'表示白色,'B'表示黑色

输出描述

输出小易会涂画的区域大小

输入例子

3BWWBBBBWB

输出例子

3

这道题一开始我以为是连通图问题,但是仔细一想,它要求涂画的区域只是具体某一列中的哪几个同色块,那么需要做的就是记录每列同颜色连续色块的个数,当出现中断时将次数重新设置为0,最后寻求最大的次数为该列进行涂色。

  1. 要求涂画的只有一列,不是全部颜色

  2. 有两个不同的颜色,需要维护好每列的连续数


涂棋盘

现在有n位工程师和6项工作(编号为0至5),现在给出每个人能够胜任的工作序号表(用一个字符串表示,比如:045,表示某位工程师能够胜任0号,4号,5号工作)。现在需要进行工作安排,每位工程师只能被安排到自己能够胜任的工作当中去,两位工程师不能安排到同一项工作当中去。如果两种工作安排中有一个人被安排在的工作序号不一样就被视为不同的工作安排,现在需要计算出有多少种不同工作安排计划。 

输入描述

输入数据有n+1行:第一行为工程师人数n(1 ≤ n ≤ 6)接下来的n行,每行一个字符串表示第i(1 ≤ i ≤ n)个人能够胜任的工作(字符串不一定等长的)

输出描述

输出一个整数,表示有多少种不同的工作安排方案

输入例子

6012345012345012345012345012345012345

输出例子

3

这道题其实只需要枚举一下每种情况就行了,在列举一次以后又重新计算,0记为没有得到这项工作,1记为有,这样枚举就行了。



欢迎关注我的个人公众号~或者发邮件到kcnnow(at)gmail.com和交流哦~

wechat: wugeinfe

0 0
原创粉丝点击