日常刷题2025-2-6

日常刷题2025-2-6

小红的二叉树

rating:round C

https://ac.nowcoder.com/acm/contest/100902/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

https://ac.nowcoder.com/acm/contest/100902/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

思路:小巧思

https://www.bilibili.com/video/BV12m411D7Bc?spm_id_from=333.788.videopod.episodes&vd_source=4a339d299e165d8fe38b9926c5240eae&p=4

代码

#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 中国大陆许可协议进行许可。

posted @   califeee  阅读(3)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.