UVa679 小球下落(树)

博客介绍了UVa679编程挑战,该问题涉及小球在树状结构中下落的路径计算。文章讨论了如何处理小球个数的奇偶性,并提到理解题意、关注细节和多思考对于解决此类问题的重要性。
摘要由CSDN通过智能技术生成

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=620



给下落的深度和小球个数,小球依次下落,结点有个开关,每到一个结点,开关关向左,开向右


一开始想到了简单模拟,结果超时…

#include <cstdio>
#include <iostream>
#include <cstring>
#define maxn 20 
using namespace std;

int s[1<<maxn];

int main(){
	int n,D,I,now=1;
	scanf("%d",&n);
	while(n--){
		scanf("%d%d",&D,&I);
		int last=(1<<D)-1;//最后结点,临界 
	//	cout<<"last="<<last<<endl;
		memset(s,0,sizeof(s));
		while(I--){
			now=1;
			while(1){	
			
				if(s[now]==0){
					int temp= 2*now;
					s[now]=1;
					now=temp;
				}
				else{
					int temp= 2*now+1;
					s[now]=0;
					now=temp;	
				}
					
				if(now>last) bre
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值