hdu 5573Binary Tree
Binary Tree
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 251 Accepted Submission(s): 143
Special Judge
Since the king is professional in math, he sets a number to each node. Specifically, the root of the tree, where the King lives, is 1.
Say froot=1.
And for each node u,
labels as fu,
the left child is fu×2 and
right child is fu×2+1.
The king looks at his tree kingdom, and feels satisfied.
Time flies, and the frog king gets sick. According to the old dark magic, there is a way for the king to live for another N years,
only if he could collect exactly N soul
gems.
Initially the king has zero soul gems, and he is now at the root. He will walk down, choosing left or right child to continue. Each time at node x,
the number at the node is fx (remember froot=1),
he can choose to increase his number of soul gem by fx,
or decrease it by fx.
He will walk from the root, visit exactly K nodes
(including the root), and do the increasement or decreasement as told. If at last the number is N,
then he will succeed.
Noting as the soul gem is some kind of magic, the number of soul gems the king has could be negative.
Given N, K,
help the King find a way to collect exactly N soul
gems by visiting exactly K nodes.
which indicates the number of test cases.
Every test case contains two integers N and K,
which indicates soul gems the frog king want to collect and number of nodes he can visit.
⋅ 1≤T≤100.
⋅ 1≤N≤109.
⋅ N≤2K≤260.
the case number and counts from 1.
Then K lines
follows, each line is formated as 'a b', where a is
node label of the node the frog visited, and b is
either '+' or '-' which means he increases / decreases his number by a.
It's guaranteed that there are at least one solution and if there are more than one solutions, you can output any of them.
5 3
10 4
1 +
3 -
7 +
Case #2:
1 +
3 +
6 -
12 +
题意:
给你一个n和k,要求用k层的完全二叉树,从根节点走到叶子节点,然后用走过的这k个数的加减组成n,多组解
输出一个结果即可
/*
开始实在是没想到什么方法,于是搜了一发GG.
后来看题解才发现N≤2K≤2^60这个条件很重要- -
我们只需要考虑二叉树最左边那条边,1 2 4 8 16 ......(好机智)
于是愉快地的开始写了
根据奇偶的不同再看是取最底端的左孩子或右孩子
对于左边所有节点求和t,dis = t-n能求出我们比预计多了多少
然后只要不加上dis/2即可
而且我们发现最左边 2^0,2^1,2^2.... ,所有把dis转换成2进制,有1的地方取‘-’即可
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std; int vis[10005];
int n,k;
int main()
{
int T;
int cas =1;
scanf("%d",&T);
while(T--)
{
printf("Case #%d:\n",cas++);
scanf("%d%d",&n,&k);
int t;
if(n % 2 == 0)
t = 1<<k ;
else
t = (1<<k) -1;
int dis = (t - n)/2;
memset(vis,0,sizeof(vis));
for(int i = k; i >= 0; i--)
{
if(1 & (dis >> i))
vis[i+1] = 1;
}
int cur = 1;
for(int i = 1; i < k; i++)
{
if(vis[i])
printf("%d %c\n",cur,'-');
else
printf("%d %c\n",cur,'+');
cur *= 2;
}
printf("%d %c\n",n%2 ? 1<<(k-1):(1<<(k-1))+1,vis[k] ? '-':'+');
}
return 0;
}
hdu 5573Binary Tree的更多相关文章
- hdu 5909 Tree Cutting [树形DP fwt]
hdu 5909 Tree Cutting 题意:一颗无根树,每个点有权值,连通子树的权值为异或和,求异或和为[0,m)的方案数 \(f[i][j]\)表示子树i中经过i的连通子树异或和为j的方案数 ...
- HDU 5044 Tree(树链剖分)
HDU 5044 Tree field=problem&key=2014+ACM%2FICPC+Asia+Regional+Shanghai+Online&source=1&s ...
- [HDU 5293]Tree chain problem(树形dp+树链剖分)
[HDU 5293]Tree chain problem(树形dp+树链剖分) 题面 在一棵树中,给出若干条链和链的权值,求选取不相交的链使得权值和最大. 分析 考虑树形dp,dp[x]表示以x为子树 ...
- HDU 4757 Tree(可持久化Trie+Tarjan离线LCA)
Tree Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others) Total Su ...
- HDU 4757 Tree 可持久化字典树
Tree Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4757 Des ...
- HDU 6228 - Tree - [DFS]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6228 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- HDU 5909 Tree Cutting 动态规划 快速沃尔什变换
Tree Cutting 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5909 Description Byteasar has a tree T ...
- 2015 Multi-University Training Contest 8 hdu 5390 tree
tree Time Limit: 8000ms Memory Limit: 262144KB This problem will be judged on HDU. Original ID: 5390 ...
- HDU 4757 Tree
传送门 Tree Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others) Prob ...
随机推荐
- python+flask 分分钟完美解析阿里云日志
拿到了自己阿里云服务器的日志,对其需要进行处理. class Read_Rizhi: def __init__(self,filename): self.filename=filename def o ...
- Hadoop学习笔记一(HDFS架构)
介绍 Hadoop分布式文件系统(HDFS)设计的运行环境是商用的硬件系统.他和现存的其他分布式文件系统存在很多相似点.不过HDFS和其他分布式文件系统的区别才是他的最大亮点,HDFS具有高容错的特性 ...
- Extensions in UWP Community Toolkit - Overview
概述 UWP Community Toolkit 中有一个 Extensions 的集合,它们可以帮助开发者实现很多基础功能,省去自己造轮子的过程,本篇我们先来看一下 Extensions 的功能都 ...
- 算法题丨4Sum
描述 Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...
- javascript改变style样式和css样式
转载 在很多情况下,都需要对网页上元素的样式进行动态的修改.在JavaScript中提供几种方式动态的修改样式,下面将介绍方法的使用.效果.以及缺陷. 1.使用obj.className来修改样式表的 ...
- cookieUtil
public class CookieUtil { /** * 设置cookie * @param name cookie名字 * @param value cookie值 * @param maxA ...
- CentOS7.4下的 JDK1.8 安装
一.卸载老的JDK 如果需要卸载OpenJDK,执行以下操作: [root@localhost ~]# rpm -e --nodeps tzdata-java-2014i-1.el7.noarch[r ...
- SpringCloud的服务注册中心(四)- 高可用服务注册中心的搭建
一.双 服务注册注册中心 1.服务注册中心的服务端 - EurekaServer 1.1.EurekaServer1 String.application.name=eureka-server ser ...
- Spring知识点回顾(02)AOP
一.注解拦截 二.方法规则拦截
- SQL优化(SQL TUNING)之10分钟完成亿级数据量性能优化(SQL调优)
前几天,一个用户研发QQ找我,如下: 自由的海豚. 16:12:01 岛主,我的一条SQL查不出来结果,能帮我看看不? 兰花岛主 16:12:10 多久不出结果? 自由的海豚 16:12:17 多久都 ...