cf#329-A. 2Char-烦人的水题
来源:互联网 发布:剑网三纣炀的捏脸数据 编辑:程序博客网 时间:2024/06/05 05:49
给你n个由26个字母写成的单词
选出 k个使得 这些单词拼起来的文章中 不同字母数不超过 2,输出最长的文章长度
for 一遍把 单词中 字母种类大于2的单词标记掉
接着对于每一个 有两种字母的单词
以该被选单词为基准 for 一遍 从1到n ,看有多少个单词能被选上 (即其他单词中 没出现 基准单词中没的字母)
不断更新长度
开一个vis数组【26】
然后对每一个 只有一种字母的单词 把 其 长度 累加在 vis【该字母】
最后取 长度最长的两个字母
两种情况答案取最大
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <queue>#include <map>#include <set>#include <vector>using namespace std;vector<char> tm[105];char tmp[1005];int legal[106];int max(int a,int b){return a<b?b:a;}int main(){int n;scanf("%d",&n);int i;int j;for (i=1;i<=n;i++){scanf("%s",tmp);int len=strlen(tmp);int vis[27];memset(vis,0,sizeof(vis));for (j=0;j<len ;j++){vis[tmp[j]-'a']++;}int cun=0;for (j=0;j<26;j++)if (vis[j]) cun++;if (cun>2) legal[i]=-1;else{for (j=0;j<26;j++)if (vis[j]) tm[i].push_back(j+'a');legal[i]=len;}}int maxx=0;for (i=1;i<=n;i++)//处理两个不同字母的情况{if (legal[i]==-1) continue;int tmp_max=legal[i];if (tm[i].size()!=2) continue;int vis[27];memset(vis,0,sizeof(vis));int k;for(k=0;k<tm[i].size();k++){vis[tm[i][k]-'a']=1;}for (j=1;j<=n;j++){ if (legal[j]==-1) continue;if (j==i) continue;int flag=0;for (k=0;k<tm[j].size();k++){if (vis[tm[j][k]-'a']==0){flag=1;break;}}if (flag)continue;else{tmp_max+=legal[j];} }//if (flag) continue;maxx=max(maxx,tmp_max); }int one[1005];int ok=0;int vis[27];memset(vis,0,sizeof(vis));for (i=1;i<=n;i++){if (tm[i].size()!=1) continue;if (legal[i]==-1) continue;vis[tm[i][0]-'a' ]+=legal[i];}sort(vis,vis+26);int tmp_one=vis[25]+vis[24]; maxx=max(maxx,tmp_one); printf("%d\n",maxx);return 0;}
0 0
- cf#329-A. 2Char-烦人的水题
- cf 593a 2Char
- CF 593A 2Char
- CF 593 A 2Char(选择合适的枚举方式)
- 深入 理解char * ,char ** ,char a[ ] ,char *a[] 的区别
- CF 2A Winner
- CF 2A
- cf 2a Winner
- cf #2 A. Winner
- char a[]和char *a 的不同
- char *a 与char a[] 的区别
- char* a和 char a[]的区别
- char* a和char a[]的区别
- char* a 和char a[]的区别
- char* a和char a[]的区别
- char* a和char a[]的区别
- char *a 与char a[] 的区别
- char *a 与char a[] 的区别
- Yii2.0 对数据库查询的一些简单的操作
- hihoCoder 1236 bitset + 分块
- Shapefile与字符集编码设置之ArcGIS for Server
- ID3DXSprite :: Draw 实现平移旋转等方法
- TCP/IP的工作方式
- cf#329-A. 2Char-烦人的水题
- VMware View 5.0从菜鸟到高手系列 2 -安装View Connection Server篇
- Java递归实现删除树形结构的任一节点
- PowerShell介绍 第八回 数组
- ANT教程之七 Ant构建项目
- 关于 用户回调期间遇到未经处理的异常(41d) 的错误
- VMware View 5.0从菜鸟到高手系列 3 -安装View Composer组件篇
- AndroidManifest 中original-package标签
- Matlab 三维图像绘制(2)——surface property、view、空间圆柱体