BestCoder Round #61 (div.2) C.Subtrees dfs
2024-08-31 00:16:04
Subtrees
问题描述
一棵有N个节点的完全二叉树,问有多少种子树所包含的节点数量不同。
输入描述
输入有多组数据,不超过1000组.
每组数据输入一行包含一个整数N.(1\leq N\leq {10}^{18})(1≤N≤1018)
输出描述
对于每组数据输出一行,表示不同节点数的子树有多少种.
输入样例
5
6
7
8
输出样例
3
4
3
5 题解: 完全二叉树,。。。dfs下去分点就好了
///
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll;
#define mem(a) memset(a,0,sizeof(a))
inline ll read()
{
ll x=,f=;
char ch=getchar();
while(ch<''||ch>'')
{
if(ch=='-')f=-;
ch=getchar();
}
while(ch>=''&&ch<='')
{
x=x*+ch-'';
ch=getchar();
}
return x*f;
}
//****************************************
#define maxn 100000+5
#define mod 1000000007 ll n;
set<ll > s;
void dfs(ll x){
if(x==)return ;
if(s.count(x)){
return ;
}
s.insert(x);
x--;
dfs(x/);
dfs(x/+x%);
}
int main(){
while(scanf("%I64d",&n)!=EOF){
s.clear();
dfs(n);
cout<<s.size()<<endl;
} return ;
}
代码
最新文章
- mybatis关联映射
- ios移动端切图及前端规范
- mysql概要(十一)存储引擎
- wamp+zendstudio12+xDebugger环境搭建
- shelll函数求两个输入数字之和
- lintcode:形状工厂
- hellogcc -100GDB技巧
- cocos2d的安装
- 在C#实现托盘效果(转)
- 高级UIKit-08(TCPSocket)
- linux 小技巧(查找替换文件中的ascii编码字符)
- thinkphp 操作xml格式
- 炎黄流程中改流程节点颜色的js
- MySql 按周/月/日统计数据的方法
- TiDB 源码阅读系列文章(一)序
- JS时间转时间戳,时间戳转时间。时间显示模式。
- 使用自由软件Icarus Verilog Simulator进行仿真
- 【mysql优化】mysql count(*)、count(1)、count(主键字段)、count(非主键字段)哪个性能最佳
- linux计划任务 学习笔记
- day2 字典常用的方法