Dropping Balls UVA - 679(二叉树的遍历)
2024-09-04 16:30:53
题目链接:https://vjudge.net/problem/UVA-679
题目大意:t组样例,每组包括D M 层数是D 问第M个小球落在哪个叶子节点? 每个节点有开关 刚开始全都是关闭的,小球走到节点 节点开关变为与当前相反 每个小球从根节点释放
思路:这题是第一道二叉树遍历的题目,二叉树暴力模拟的确可以求出答案 ,但是很不幸,会超时
然后另一种方法,只需要求第M次小球就行了! 怎么求呢? 试想一下,如果M为奇数 那么从根节点开始看,肯定是往左走(M+1)/2次 往右走M/2次 但是最后一次肯定是往左走的
同理,如果M是偶数 显然 往左走M/2次 往右走 M/2次 显然最后一次是往右走的 这就是做这题的思想了 然后往复此过程 !
看代码:
#include<iostream>
using namespace std;
int main()
{
int t;
int n,m;
while(cin>>t)
{
if(t==-) break;
while(t--)
{
int ans=;
cin>>n>>m;
for(int i=;i<n;i++)//
{
if(m%==) //最后一次肯定往左子树走 且走的次数为(m+1)/2
{
m=(m+)/;
ans=ans<<;
}
else//往右子树走
{
m=m/;
ans=ans<<|;
}
}
cout<<ans<<endl;
} }
return ;
}
最新文章
- spring+springmvc+mybatis xml配置文件
- 【BZOJ-4668】冷战 并查集 + 按秩合并 + 乱搞
- php WIN下编译注意问题
- Flux demo
- 论公司spring的滥用
- textarea的换行符处理以及正确的在Html中显示
- geotools实现多边形的合并&;缓冲区
- 笔记7 AOP
- bottle.py中的SimpleTemplate
- Docker系列(二)镜像下载、操作容器、镜像导入导出等操作
- 《2018面向对象程序设计(Java)课程学习进度条》
- Analyze a docker instance start failure
- kbmMWLog同时输出日志到多个日志管理器
- 微软职位内部推荐-Senior Software Engineer-Eco
- GetDocument missing storage-class or type specifiers的解决方法
- 设计模式之&mdash;&mdash;浅谈strategy模式(策略模式)
- Oozie与Coordinator调度讲解及系统时区配置与定时触发两种配置方式
- AngularJs学习笔记--Understanding Angular Templates
- 【python教程】Python JSON
- Hibernate关联映射之_一对一