首页 > 绝命沙虫
头像 cantorsort2919
发表于 2022-01-24 21:12:11
众所周知, double 容易被 卡精度。 在这道题中,好巧不巧就有一个 double 型数据——充值返点倍率 MMM。 此题的要求很简单—— 花 NNN 元钱购买点数,再出售点数来获得 利润与经验。 于是,就有以下的 暴力程序: #include<bits/stdc++.h> usin 展开全文
头像 cheese_case
发表于 2022-01-22 21:14:08
C.绝命沙虫 确实绝了我老命,每次碰到卡精度的东西冲不过去都会直接开摆 这次算是涨了记性,仔细看了一下double的精度问题才发现,double类型在计算时会转化为二进制故有损失,例如 double a = 3.0-2.6结果是0.3999999999999999,这就是精度损失故(m-1)是do 展开全文
头像 cyhyyds
发表于 2022-01-24 20:22:17
按照题意模拟即可。 但是有可能被卡精度,我赛时就被卡了。 这里建议在取 min⁡\minmin 时将括号中的 mmm 拆出来,然后先和 100100100 相乘,就不会被卡了。 代码如下: #include <bits/stdc++.h> using namespace std; 展开全文
头像 MiaoYu404
发表于 2025-11-07 00:53:56
思路 根据题意,可以直接模拟。 每次 相当于除以 ,总共就需要 次模拟。 总共 次询问,在时间复杂度允许范围内。 小妙招 有其他题解说卡精度的问题,这里只要过程中将 c 开 double 即可,不用上高精度。 低于向下取整,因为此处 始终非负,C++ 的除法 向零取整,也不用什么数学库。 展开全文
头像 lahm66
发表于 2025-11-07 09:14:45
Java模拟,注意精度问题可以把M*10 import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { 展开全文
头像 365cent
发表于 2025-11-07 17:49:48
#include <unistd.h> #include <string.h> #define IN_BUF (1 << 20) #define OUT_BUF (1 << 20) static inline int compute_exp(in 展开全文
头像 appley
发表于 2025-11-07 10:26:34
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = 展开全文
头像 运行中
发表于 2025-11-07 17:24:01
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n; double m; int sum1=0; ll min(int x,ll y){ if(x>y)r 展开全文
头像 czcczz
发表于 2025-11-10 19:14:01
#include<iostream> #include<algorithm> using namespace std; #define int long long void solve() { int n; double m; int red=0,gr 展开全文