额外减小 发表于 2023-9-6 17:55:54

出了一道小题目,欢迎大佬来薄纱我

本帖最后由 额外减小 于 2023-9-6 18:00 编辑

rt.个人感觉是红/橙的难度。但是我还是订正了半小时。我太菜了。

其实思路挺有意思的。

数据可能有锅!若您解题时认为代码正确但某个点一直过不了,务必提出!

欢迎 来挑战 薄纱。

链接:https://www.luogu.com.cn/problem/U335713

独立做出来的人奖励 3yb(我太穷了)
@sfqxx @zhangjinxuan @元豪 @liuhongrun2022 @学习编程中的Ben


题解

**** Hidden Message *****

额外减小 发表于 2023-9-6 17:59:28

数据可能有锅

sfqxx 发表于 2023-9-6 18:00:54

无权查看

额外减小 发表于 2023-9-6 18:01:30

sfqxx 发表于 2023-9-6 18:00
无权查看

再试一下

sfqxx 发表于 2023-9-6 18:05:09

不会。

额外减小 发表于 2023-9-6 18:06:31

sfqxx 发表于 2023-9-6 18:05
不会。

怎么能这么快放弃呢

fc1735 发表于 2023-9-7 05:43:48

#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>

using namespace std;

int main() {
long long m; char buf; scanf("%lld.%s", &m, buf);
long long n = atoll(buf);
for (int i = 1; i < 4; i++) {
    static auto exp10 = [](int n) { return (long long)pow(10, n); };
    auto a = n - n / exp10(i);
    if (a % exp10(i * 4) == 0) {
      a /= exp10(i * 4);
      n /= exp10(i * 5);
      auto b = exp10(i) - 1;
      for (int j = i * 5; j < strlen(buf); j++)
      if (a % 10 == 0)
          a /= 10;
      else
          b *= 10;
      auto k = __gcd(a, b);
      a /= k; b /= k;
      printf("%lld\n%lld\n", m * b + a, b);
      return 0;
    }
}
printf("%lld.%lld\n", m, n);
return 0;
}

额外减小 发表于 2023-9-9 12:06:35

fc1735 发表于 2023-9-7 05:43


可以
页: [1]
查看完整版本: 出了一道小题目,欢迎大佬来薄纱我