牛客小白月赛44 C 绝命沙虫

绝命沙虫

https://ac.nowcoder.com/acm/contest/11221/C

按照题意模拟即可。

但是有可能被卡精度,我赛时就被卡了。

这里建议在取 min\min 时将括号中的 mm 拆出来,然后先和 100100 相乘,就不会被卡了。

代码如下:

#include <bits/stdc++.h>
 
using namespace std;
 
#define int long long//注意!!!
 
signed main () {
    int T, n;
     
    double m;
     
    scanf ("%lld", &T);
     
    long long res = 0ll;
     
    while (T --) {
        scanf ("%lld%lf", &n, &m);
         
        res = 0ll;
         
        while (n > 0) {
            int red = n * 100;
            int green = min (10000ll, ((long long)(m * 100) * n - n * 100));
            //取min时更改写法。 
            n = 0;
             
            res += green / 10;
            res += red / 10;
            n += red / 200;
            //模拟。
        }
         
        printf ("%lld\n", res);
    }
}
全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-29 12:10
点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务