WOJ1100 - Forest
今年六月有8个ACMERS 毕业,他们是:
?littleken","knuthocean","dongfangxu","zap","kittig","robertcui","forest","flirly"。
他们决定在毕业去腐败一下,但谁都不愿出钱去BG他人,因而forest想了一个办法,让电脑生成一个仅由他们名字组成的字符串,看
谁的名字在字符串中出现的次数最多,谁的名字出现的次数最多,那么他就得BG其他人,但是因为字符串长度大长了,他们懒得去数,
就把这个任务交给你,谁叫你是他们的师弟呢!作为ACMER,你编一个程序去求解。
输入格式
首先是一个整数T(T<=50)表示这组数据中有T个CASE,接下来有T行,每行是一个CASE,一个如上描述字符串S。 S的长度小于1000000。
输出格式
输出一个在字符串中出现次数最多的名字。如果存在多个名字出现的次数一样多,则输出第一个,顺序见描述。
样例输入
1 zap
样例输出
zap
第一次做的时候有个名字打错了一个字母,被坑了一次,这种简单题一定要细心哦!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){int t,i,max,maxi,len;int count[10];char s[1000010];scanf("%d",&t);while(t-->0){i=0;memset(count,0,sizeof(count));scanf("%s",&s);len=strlen(s);//必须暂存字符串长度,否则直接用会超时 while(i<len){switch(s[i]){case 'l':i=i+9;count[0]++;break;case 'k':i++;//k开头有两种情况 if(s[i]=='i'){i=i+5;//k已经被扫过了,长度-1 count[4]++;}else{i=i+9;count[1]++; }break;case 'd':i=i+10;count[2]++; break;case 'z':i=i+3;count[3]++; break;case 'r':i=i+9;count[5]++;break;case 'f':i++;//同k的情况 if(s[i]=='o'){i=i+5;count[6]++;}else{count[7]++;i=i+5; } break;}}max=0;maxi=0;for(i=0;i<8;i++){//找出现次数最多的名字 if(count[i]>max){max=count[i];maxi=i;}}switch(maxi){case 0:printf("littleken");break; case 1:printf("knuthocean");break; case 2:printf("dongfangxu");break; case 3:printf("zap");break; case 4:printf("kittig");break; case 5:printf("robertcui");break; case 6:printf("forest");break; case 7:printf("flirly");break; }printf("\n");}return 0;
}
#include<stdio.h>
#include<iostream>
#include<string>
using namespace std; int main(){ char* ss[8] = {"littleken", "knuthocean", "dongfangxu", "zap", "kittig", "robertcui", "forest", "flirly" }; char s1[8] = { 'l', 'k', 'd', 'z', 'k', 'r', 'f', 'f' }; char s2[8] = { 'i', 'n', 'o', 'a', 'i', 'o', 'o','l' }; int next[8] = { 9, 10, 10, 3, 6, 9, 6, 6 }; int k; cin >> k; for (int h = 0; h < k; h++){ string t; cin >> t; int max = 0; int flag = 0; int ans[8] = { 0 }; for (string::iterator it = t.begin(); it != t.end();){ for (int i = 0; i < 8; i++){ if (*it == s1[i] && *(it + 1) == s2[i]){ it += next[i]; ans[i]++; break; } } } for (int i = 0; i < 8; i++){ if (max < ans[i]) { max = ans[i]; flag = i; } } printf("%s\n", ss[flag]); }
}
WOJ1100 - Forest相关推荐
- ue4商城资源 The Forest v1.5 森林景观场景
ue4商城资源 The Forest v1.5 森林景观场景 ue4商城资源 The Forest v1.5 森林景观场景 ue4商城资源 The Forest v1.5 森林景观场景 Unreal ...
- 异常检测算法:Isolation Forest
iForest (Isolation Forest)是由Liu et al. [1] 提出来的基于二叉树的ensemble异常检测算法,具有效果好.训练快(线性复杂度)等特点. 1. 前言 iFore ...
- Codeforces 504 A (Round #285 div.1 A) Misha and Forest
Codeforces Round #285 (Div.1) A Misha and Forest 水题水题水-- 题意:给你一些点,给出他们连通了多少个点以及这些点的下标的异或值,让你找出一个图 题解 ...
- 最常用的决策树算法!Random Forest、Adaboost、GBDT 算法
点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 本文主要介绍基于集成学习的决策树,其主要通过不同学习框架生产基学习器,并综合所有基学习 ...
- Machine Learning | (8) Scikit-learn的分类器算法-随机森林(Random Forest)
Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...
- R语言使用caret包构建随机森林模型(random forest)构建回归模型、通过method参数指定算法名称、通过ntree参数指定随机森林中树的个数
R语言使用caret包构建随机森林模型(random forest)构建回归模型.通过method参数指定算法名称.通过ntree参数指定随机森林中树的个数 目录
- R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型
R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型 目录 R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型
- R语言Logistic回归模型亚组分析森林图(forest plot)绘制
R语言Logistic回归模型亚组分析森林图(forest plot)绘制 目录 R语言Logistic回归模型亚组分析森林图(forest plot)R语言Logistic回归模型亚组分析森林图
- 使用R构建随机森林回归模型(Random Forest Regressor)
使用R构建随机森林回归模型(Random Forest Regressor) 目录 使用R构建随机森林回归模型(Random Forest Regressor) 安装包randomForest 缺失值 ...
最新文章
- Redis线程模型的前世今生
- java list取值_Java集合详解
- 实用垃圾收集,第1部分–简介
- linux执行命令提示缺少so,Linux软件缺少动态链接库.so怎么办
- nginx 的源码安装
- abview查找范例时说 NI服务器未定位 这是怎么回事?
- 使用Thrift让Python为Java提供服务
- HDU1465 不容易系列之一【递推】
- sqlite3简单使用
- Linux系统手机投屏实现电脑控制手机(Windows)
- 两台win7电脑,双网卡主机共享网络(局域网和Internet)给从机
- 生信搬运工-02-sra文件的下载
- 【Linux】用进程控制知识做一个简易版shell
- 后端优化 | VINS-Mono 论文公式推导与代码解析分讲
- Abp mysql guid_使用ABP框架踩过的坑系列5
- 项目管理的20条锦囊妙计
- 吉尔布雷斯的动作研究—《可以量化的管理学》
- 小七免杀 源码免杀培训班
- Win10系统 默认以管理员权限运行所有程序
- python控制excel打印_九、Python 操作excel(一)