日常刷题2025-2-6
1.日常刷题2025-3-162.日常训练2025-1-23.日常训练2025-1-34.日常训练2025-1-55.日常训练2025-1-86.日常训练2025-1-117.日常训练2025-1-128.日常训练2025-1-139.日常训练2025-1-1410.日常训练2025-1-1511.日常训练2025-1-1612.日常训练2025-1-1713.日常训练2025-1-1814.日常训练2025-1-1915.日常训练2025-1-2116.日常训练2025-1-2217.日常刷题2025-1-2318.日常训练2025-1-2419.日常刷题2025-1-2520.日常刷题
21.日常刷题2025-2-6
22.日常刷题2025-2-923.日常刷题2025-2-1424.日常刷题2025-2-1525.日常刷题2025-2-1726.日常刷题2025-2-2027.日常刷题2025-2-2128.日常刷题2025-2-2229.日常刷题2025-2-2430.日常刷题2025-2-2631.日常刷题2025-2-2732.日常刷题2025-2-2833.日常刷题2025-3-134.日常刷题2025-3-235.日常刷题2025-3-336.日常刷题2025-3-537.日常刷题2025-3-638.日常刷题2025-3-739.日常刷题2025-3-840.日常刷题2025-3-941.日常刷题2025-3-1042.日常刷题2023-3-1143.日常刷题2025-3-1344.非常棒的二分和DP日常刷题2025-2-6
小红的二叉树
rating:round C
思路:推公式
简单的推公式问题,不必多言
代码
#include <bits/stdc++.h> using u64 = unsigned long long; using i64 = long long; typedef std::pair<int, int> pii; const int INF = 0x3f3f3f3f; const int mod = 1e9+7; const long long LINF = 1e18; i64 expit(i64 b, i64 e) { i64 r = 1; while (e) { if (e & 1){ r *= b; r %= mod;} b *= b; b %= mod; e >>= 1; } return r; } void solve(){ int n; std::cin >> n; if (n == 1){ std::cout << 0 << '\n'; return; } i64 ans = expit(2, n-1) % mod - 1 + (expit(2, n - 2) - 1) * 4 % mod; ans %= mod; std::cout << std::max(ans, 0ll) << '\n'; } signed main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(15); int t = 1, i; for (i = 0; i < t; i++){ solve(); } return 0; }
小红的“质数”寻找
rating:round D
思路:构造
在1~9这九个数中,思考每个数开头时的构造方式。
评述
让我们在范围内找一个数,和构造一个在范围内的数是等价的,这道题没做出来很大程度就是因为这个转换没有想清楚。
代码
#include <bits/stdc++.h> using i64 = long long; using u64 = unsigned long long; typedef std::pair<long long, long long> PII; const int mod = 998244353; const int N = 2e6 + 1000; const int INF = 0x3f3f3f3f; const long long LINF = 1e18; const double eps = 1e-12; const double pi = std::acos(-1); std::mt19937_64 rnd(std::chrono::steady_clock::now().time_since_epoch().count()); std::uniform_int_distribution<u64> dist_rand(mod / 2, mod - 1); void solve() { std::string s; std::cin >> s; int n = s.size(); if (s.front() > '5') { std::cout << "1"; for (int i = 1; i <= n - 1; i++) std::cout << "0"; std::cout << "1"; } else if (s.front() >= '4') { std::cout << "7"; for (int i = 1; i < n; i++) std::cout << "0"; } else if (s.front() == '3') { std::cout << "5"; for (int i = 1; i < n; i++) std::cout << "0"; } else if (s.front() == '2') { std::cout << "3"; for (int i = 1; i < n; i++) std::cout << "0"; } else { std::cout << "2"; for (int i = 1; i < n; i++) std::cout << "0"; } std::cout << "\n"; } signed main() { std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr); int tmp = 1; std::cin >> tmp; while (tmp--) solve(); return 0; }
C. Sasha and the Casino
思路:小巧思
代码
#include <bits/stdc++.h> using u64 = unsigned long long; using i64 = long long; typedef std::pair<int, int> pii; const int INF = 0x3f3f3f3f; const int mod = 998244353; const long long LINF = 1e18; void solve(){ i64 k, x, a; std::cin >> k >> x >> a; i64 zhi = 1; bool key = false; if (zhi >= a){ std::cout << "NO\n"; return; } for (int i = 1; i <= x - 1; i++){ int shu = (zhi + 1) / (k - 1); if ((zhi+1)%(k-1) != 0){ shu++; } zhi += shu; if (zhi >= a){ std::cout << "NO\n"; return; } } if (k*(a-zhi)<=a){ std::cout << "NO\n"; return; } std::cout << "YES\n"; } signed main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(15); int t = 1, i; std::cin >> t; for (i = 0; i < t; i++){ solve(); } return 0; }
本文作者:califeee
本文链接:https://www.cnblogs.com/califeee/p/18700975
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步