NC209796. 虚空之力
描述
牛牛注射了第二支虚空基因组,重新夺回了王之力,而牛能则想为王的诞生献上礼炮!
有一串长度为的小写字母组成的字符串,牛能可以从中挑选‘k’ ‘i’ ‘n’ ‘g’四个字符组成一支礼炮,或者从中挑选‘k’ ‘i’ ‘n’ ‘g’ ‘i’ ‘n’ ‘g’七个字符组成两支礼炮。请问牛能为王的诞生最多能献上多少礼炮?
输入描述
第一行一个正整数,表示字符串长度,。
第二行一串只含有小写字母的字符串。
输出描述
输出牛能为王的诞生能献上的最多礼炮数。
示例1
输入:
4 king
输出:
1
C++11(clang++ 3.9) 解法, 执行用时: 289ms, 内存消耗: 15816K, 提交时间: 2020-08-23 14:00:13
#include<bits/stdc++.h> using namespace std; int s[130]; int main(){ int i,n,m,k,ans; string ss; cin>>n; cin>>ss; for(i=0;i<n;i++){ s[ss[i]]++; } m=min(s['i'],min(s['n'],s['g'])); k=s['k']; ans=min(2*k,m); cout<<ans; return 0; }
C++14(g++5.4) 解法, 执行用时: 475ms, 内存消耗: 15888K, 提交时间: 2020-08-28 13:26:32
#include<bits/stdc++.h> using namespace std; int n; string s; map<char,int>m; int main(){ cin>>n>>s; for(int i=0;i<n;i++){ m[s[i]]++; } int a=m['k'],b=m['i'],c=m['n'],d=m['g']; cout<<min(a*2,min(b,min(c,d))); return 0; }
pypy3(pypy3.6.1) 解法, 执行用时: 291ms, 内存消耗: 50068K, 提交时间: 2020-08-23 18:45:41
n = input() s = input() k = s.count('k') i = s.count('i') n = s.count('n') g = s.count('g') if min(i, n, g) <= k * 2: print(min(i, n , g)) else: print(2*k)
Python3(3.5.2) 解法, 执行用时: 78ms, 内存消耗: 32776K, 提交时间: 2020-09-02 23:07:18
n=int(input()) s=input() k=s.count('k') a=min(s.count('n'),s.count('i')) b=min(a,s.count('g')) a=min(k,b//2) k-=a b-=a*2 print(a*2+min(k,b))