题解 P2614 【计算器弹琴】
主要是特殊字符处理,其他的一律default按音符算
#include <bits/stdc++.h>
using namespace std;
int n,T,st=0,Length;
double itime=0; //乐谱长度
string s;
int main()
{
ios::sync_with_stdio(false);
cin>>n>>T;
for(;cin>>s;st=0) //读不到就结束了
{
Length=s.length();
for(int i=0;i<Length;i++)
{
switch(s[i]) //分析字符
{
case ' ':
case '\r':
case '\n':break; //空字符
case '(':st++;break; //音符值减半
case ')':st--;break; //音符值翻倍
case '.':itime+=pow(0.5,st+1);break; //半个音符
default:itime+=pow(0.5,st); //普通音符
}
}
}
cout<<(int)itime*60/T<<endl; //注意取整
return 0;
}