近期学习总结

最近又A掉了4道题
  其中D我一开始打算用两个map,一个用来把单词的字母都按照顺序排列并和原单词对应,一个用来记录该单词是否出现多次,但最后输出时没有找到合适的将重组前后的单词对应起来的方法。后来看了例题才想到了,可以在判断的时候不是遍历map,而是通过遍历重组前的单词,通过函数重组来对应map,这样就可以将重组前后的单词很好的对应起来了。
  J一开始没有理解题意,一直在思考是按照什么来判断大小的,当弄懂了什么叫第M小以后,大致的思路就有了。数字一开始是按照从小到大排列的,正好可以通过next_permutation来重组,然后再调整一下之前算错的重组次数,就可以了。
  M题很容易就想到了map,不过一开始没有理解清楚变化的具体方式,输出一直和样例不符,改了好几次才找准了方法。
  Q题一开始以为很简单,用next_permutation排列组合,算出每一种碰撞方式的重量,取最小的,但这种暴力的方式最后超时了。后来用数学方法算了一下,想到了可以从最大的开始碰,这样就可以使结果最小了。我一开始用了multiset,改了一下迭代器的使用方式,从大到小计算,自测的结果也确实没有问题,但不知道为什么提交一直过不去。后来我改成用sort排列,再倒着计算,就通过了。不过我觉得前后两种方式结果是一样的,到现在也没有弄明白为什么一开始错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值