题解:P10892 SDOI2024
观察发现分为两种情况:
- 是偶数,直接除以 。
- 是奇数,为了使纠结(猫猫有奇数只)的次数变少,则在 和 之间选出奇数猫猫只带走才能使剩下的猫猫有偶数只。
代码如上模拟,要开 long long
。
#include<bits/stdc++.h>
using namespace std;
long long t, n;
int main(){
cin >> t;
while(t --){
long long ans = 0;
cin >> n;
while(n){
if(n & 1){//有奇数只猫猫
ans ++;
if((n + 1) / 2 & 1) n = n - (n + 1) / 2;
else n = n - (n - 1) / 2;
}
else n = n / 2;
}
cout << ans << "\n";
}
return 0;
}
分类:
题解
posted on 2024-08-21 21:04 zhangzirui66 阅读(3) 评论(0) 编辑 收藏 举报 来源
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现