题解 P6263 【[COCI2014/2015#3]STROJOPIS】
前言 :
鱼人节来发一篇题解 qwq
一道练习暴力的及其有意思的题——
题面传送门
博客食用体验更佳
思路 :
本题主要就是给你一串要敲的键,已知你的
很明显这是一个暴力枚举的题,只要循环每个要敲的键,然后判断是哪个手指敲它,把每个手指视为一个累加器累加就行了。具体哪个手指敲哪些键题目中给了个大图说明了。还有一点就是题目中有一句话:
从左到右观察到的每个手指的按键次数
所以这里的输出顺序就是题目中键盘从左到右的顺序,注意这个题目中的键盘有个小小的漏洞,大家都知道 ·(由于英文的不好打,所以这里用的是中文的),题目中把这个块也标黄了,但它实际上是不需要判断的。
代码 :
#include<bits/stdc++.h>//by btng_smith666 juruo
using namespace std;//暴力大法好!!!
string str;//输入中的字符串
int a[10];//8个手指,这里我用一个数组表示
int main()
{
cin>>str;
for(int i=0;i<str.size();i++)//循环判断每个要敲的键
{
if(str[i]=='1' || str[i]=='Q' || str[i]=='A' || str[i]=='Z')
a[1]++;
if(str[i]=='2' || str[i]=='W' || str[i]=='S' || str[i]=='X')
a[2]++;
if(str[i]=='3' || str[i]=='E' || str[i]=='D' || str[i]=='C')
a[3]++;
if(str[i]=='4' || str[i]=='R' || str[i]=='F' || str[i]=='V' || str[i]=='5' || str[i]=='T' || str[i]=='G' || str[i]=='B')
a[4]++;
if(str[i]=='6' || str[i]=='Y' || str[i]=='H' || str[i]=='N' || str[i]=='7' || str[i]=='U' || str[i]=='J' || str[i]=='M')
a[5]++;
if(str[i]=='8' || str[i]=='I' || str[i]=='K' || str[i]==',')
a[6]++;
if(str[i]=='9' || str[i]=='O' || str[i]=='L' || str[i]=='.')
a[7]++;
if(str[i]=='0' || str[i]=='P' || str[i]==';' || str[i]=='/' || str[i]=='-' || str[i]=='[' || str[i]==']' || str[i]=='=' || str[i]=='\'')//注意这里判断字符 ' 的时候需要加一个 \
a[8]++;
}
for(int i=1;i<=8;i++)//从左到右输出八个指头的答案就行
printf("%d\n",a[i]);
return 0;
}
本篇题解到这里就结束了,点个赞再去把它 A 掉吧 qwq !