zoj 1274 Getting Chorded(啊,模拟题 = =)

12 篇文章 0 订阅

党把 这题过了,然后我就看看吧。

 

这题就90多人过 = =。。。大家看到这种类型的都不想看题吧。。。无语。。

 

这题蛮简单的,给你三个钢琴键的音符,问你是否能演奏出和弦。

 

中间描述有点纠结,大意是这样的,12个键循环,分别是

 

A A# B C C# D D# E F F# G G# | A A# B C ...循环下去。。

 

如果是某个字符的大调,比如C大调,那么肯定是由 C  E  F#构成,C和E差三个音,E 和 F 差俩。

 

小调的话,比如C小调,是由C D# F,C和D#差俩,D#和E差仨,都是按这种排法。如果超过12个的话,往下面循环的键里找。

 

我开始的做法是,找到每个键对应的位置,把每个大调小调用一个数存下,我是用每个位置的平方和存的。

 

WA了,因为三个数的平方和,这个数可能有好几组解= =。。好吧,我又用立方和,保证只有一组解。

 

这个输入忽略大小写了,如果是小写需要变一下,而且A#有Bb等写法,注意变一下。

 

写了个求立方和的程序,使工作量减小了点。。。

 

 


 

P.S.党说他的做法是,算2的多少次方,然后累和。他这个是唯一的,这相当于2进制表示呀~好方法~肯定不会有多租解。

 


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值