列表

详情


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))

上一题