我是靠谱客的博主 有魅力万宝路,最近开发中收集的这篇文章主要介绍2017CCPC秦皇岛部分题解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

热身赛题目:
Smartphone:
解题思路很简单,表里给的就是该厂生产的手机里使用对应产品的概率,只要把所有的概率乘起来,比较概率大小就行了。

拿第一组样例举个栗子:A生产该手机的概率是0.5 * 0.6 * 0.7=0.21,B厂生产该手机的概率是0.2 * 0.3 * 0.4=0.024小于A,所以结果是A。对于多部手机,把每一部出现的概率乘到一块就行了。需要注意的是,这题会卡精度,需自行控制。可以用java的BigDecimal或者BigInteger,也可以自己写一个模板。还有一种更简单的方法:取底数为10的对数,可以直接用c++的log10()函数,省事。

正赛题目:
E - String of CCPC
最多只用插入一次字符,找到可以插入字符的情况就行了。可以插入字符的情况也就三种:

1.CCC,且后面两个C不会和之后的字符串构成CCPC;

2.CPC;

3.CCP。

最后计算CCPC的数量即可。

G - Numbers
建议用java的BigInteger,可以偷点懒。

很明显的贪心,策略是从最高位开始,如果这一位必须取1(也就是说,对第i位来讲,2的i次方减1乘上m比当前的n要小,那么肯定要有一部分数的第i位取1),就在n上去掉尽可能多的2的i次方,直到n变成零。

L - One-Dimensional Maze
输出(第2到第m个字符中’R’的数量)和(第m到第n-1个字符中’L’的数量)的最小值即可。

M - Safest Buildings
计算每幢楼到原点的距离,然后分情况。

1.R>=2r:找出离原点最近的楼。

2.R<2r:先找以2r-R为半径的圆内有没有楼,有的话输出即可,否则找出离原点最近的楼。

最后

以上就是有魅力万宝路为你收集整理的2017CCPC秦皇岛部分题解的全部内容,希望文章能够帮你解决2017CCPC秦皇岛部分题解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部