列表

详情


NC200493. We are singers

描述

在简谱中,音符是记录音的高低和长短的符号。而用来表示这些音的高低的符号,是用七个阿拉伯数字作为标记,它们的写法是:1234567,读法为:doremifasollasi。现在给你一段由N个音符构成的简谱,以及唱出来的读音(长度小于10的字符串)的记录,请你判断总共唱错了几个读音。

输入描述

第一行输入一个整数N();

第二行包含N个数字构成的简谱,数字间用空格隔开;

第三行包含N个读音,读音间用空格隔开.

输出描述

总共唱错的读音个数.

示例1

输入:

8
1 2 3 4 5 6 7 1
do re mi fa sol la si der

输出:

1

说明:

仅最后一个读音唱错.

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C(clang 3.9) 解法, 执行用时: 3ms, 内存消耗: 376K, 提交时间: 2019-12-28 14:26:51

#include<stdio.h>
#include<string.h>
int main()
{
	char d[7][10]={"do","re","mi","fa","sol","la","si"},y[10];
	int n[10000]={0},num=0,i,m;
	scanf("%d",&m);
	for(i=0;i<m;i++)
		scanf("%d",&n[i]);
	for(i=0;i<m;i++)
	{
		scanf("%s",y);
		if(strcmp(d[n[i]-1],y))
			num++;
	}
	printf("%d",num);
	return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 8ms, 内存消耗: 392K, 提交时间: 2020-02-25 12:14:06

#include<bits/stdc++.h>
using namespace std;
int main()
{
	char q[7][5]={"do","re","mi","fa","sol","la","si"};
	int i,j,n,cnt=0;
	char p[20];
	cin>>n;
	int x[n];
	for(i=0;i<n;i++)
	cin>>x[i];
	for(i=0;i<n;i++)
	{
		cin>>p;
		if(strcmp(q[x[i]-1],p)!=0)
		cnt++;
	}
	cout<<cnt<<endl;
	return 0;
}

C++14(g++5.4) 解法, 执行用时: 6ms, 内存消耗: 748K, 提交时间: 2019-12-28 14:32:29

#include<bits/stdc++.h>
using namespace std;


int main(){
	int n,x=0;
	string a[10005];
	int b[10005];
	cin>>n;
	string c[7]={"do","re","mi","fa","sol","la","si"};
	for(int i=0;i<n;i++)cin>>b[i];
	for(int i=0;i<n;i++){
		cin>>a[i];
		if(a[i]!=c[b[i]-1])x++;
		
	}
	cout<<x<<endl;
}

上一题