ACM之跳骚---ShinePans

Description

Z城市居住着很多只跳蚤。在Z城市周六生活频道有一个娱乐节目。一只跳蚤将被请上一个高空钢丝的正中央。钢丝很长,可以看作是无限长。节目主持人会给该跳蚤发一张卡片。卡片上写有N+1个自然数。其中最后一个是M,而前N个数都不超过M,卡片上允许有相同的数字。跳蚤每次可以从卡片上任意选择一个自然数S,然后向左,或向右跳S个单位长度。而他最终的任务是跳到距离他左边一个单位长度的地方,并捡起位于那里的礼物。

比如当N=2,M=18时,持有卡片(10, 15, 18)的跳蚤,就可以完成任务:他可以先向左跳10个单位长度,然后再连向左跳3次,每次15个单位长度,最后再向右连跳3次,每次18个单位长度。而持有卡片(12, 15, 18)的跳蚤,则怎么也不可能跳到距他左边一个单位长度的地方。

当确定N和M后,显然一共有M^N张不同的卡片。现在的问题是,在这所有的卡片中,有多少张可以完成任务。

Input

两个整数N和M(N <= 15 , M <= 100000000)。

Output

可以完成任务的卡片数。

Sample Input

2 4

Sample Output

12

Hint

这12张卡片分别是:

(1, 1, 4), (1, 2, 4), (1, 3, 4), (1, 4, 4), (2, 1, 4), (2, 3, 4),

(3, 1, 4), (3, 2, 4), (3, 3, 4), (3, 4, 4), (4, 1, 4), (4, 3, 4)

参考了下网上的解法,发现对逻辑的需求还是非常高的!自己能力还不足

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>  //system(); 这个指令需要用到此头文件
#include <ctype.h> //toupper要用到
#include <malloc.h> //在内存管理时用到的头文件
#include <string.h>  //字符串的头文件
#include <math.h>  //数学运算

int m = 0, n = 0, c[1000] = { NULL }, position = 0, count_can = 0;

bool jump(int x[])
{
	int temp1[1000] = { NULL }, temp2[1000] = { NULL };
	for (int i = 0; x[i] != NULL; i++)
	{
		if (x[i] == 1)
			return(true);
		temp1[i] = x[i];
	}
	int l = 1, s = 0;
	do{
		s = 0;
		if (l == 1)
		{

			for (int i = 0; temp1[i] != NULL; i++)
			{
				for (int j = i + 1; temp1[j] != NULL; j++)
				{

					if (fabs(temp1[i] - temp1[j]) == 1)
					{
						return(true);
					}
					if (temp1[i] - temp1[j] != 0)
					{
						temp2[s] = (int)fabs(temp1[i] - temp1[j]);
						s++;
					}
				}
				temp1[i] = 0;
			}
			l = 2;
		}
		else
		{

			for (int i = 0; temp2[i] != NULL; i++)
			{
				for (int j = i + 1; temp2[j] != NULL; j++)
				{
					if (fabs(temp2[i] - temp2[j]) == 1)
					{
						return(true);
					}
					if (temp2[i] - temp2[j] != 0)
					{
						temp1[s] = (int)fabs(temp2[i] - temp2[j]);
						s++;
					}
				}
				temp2[i] = 0;
			}
			l = 1;
		}

	} while (s != 0);
	return(false);

}
void card(int depth)
{
	if (depth == m)
	{
		c[m] = n;
		if (jump(c) == true)
		{
			count_can++;
		}
		return;
	}
	else
	{
		for (int i = 1; i <= n; i++)
		{
			c[depth] = i;
			depth++;
			card(depth);
			depth--;
		}
		return;
	}
}
void main()
{
	scanf("%d%d", &m, &n);
	card(0);
	printf("%d\n", count_can);
}

ACM之跳骚---ShinePans,布布扣,bubuko.com

时间: 2024-08-29 10:24:33

ACM之跳骚---ShinePans的相关文章

poj 1091 跳骚

1 /** 2 题意: 求对于小于m的n个数, 求x1*a1 + x2*a2+x3*a3........+xn*an = 1 3 即求 a1,a2,a3,....an 的最大公约数为1 , a1,a2....an 可重复 4 原理 : 容斥原理 所有的 排序即 m^n --不符合的情况 ,即为所求 5 不符合的情况: 就是 这n个数有最大公约数 不是1, 即这n个数是m 的素因子的组合.. 6 一共有 m^n张卡片,如果减去其中含有公约数的卡片剩下的就是所求的结果 7 举个例子 n=2, m=3

电子商务知识精华,屌丝完美逆袭!(转)

电子商务知识精华,屌丝完美逆袭! 何为电子商务? 电子商务源于英文ELECTRONIC COMMERCE,简写为EC.顾名思义,其内容包含两方面,一是电子方式,二是商贸活动.指商务活动的电子化.网络化,通过Internet的技术或各种商务网络平台,完成商务交易,获得产品和服务. 1)        优点:品种齐全,种类繁多,一站购物,电子支付,市场全球化,全天候服务,成本低廉化(营销.店铺大小,地理位置.生产商直销等),减少人力物力,网络代购(国外独有品牌.国外价格优势.新鲜好玩),价格比较,网

脑电波技术的前途光明吗?

自从人类知道身体的控制中枢是大脑而非心脏之后,相关的科学研究就方兴未艾.风靡全球了,但因人类大脑过于复杂,有关脑电波的研究连绵了大约60年,也没能取得突破性进展,就更不要提什么重要应用了. 在全部的研究成果中,最具审美性的只是几本不错的科幻小说和电影,比如由黑寡妇斯嘉丽主演的电影<超体>,她充分阐释人类大脑的强大,现在社会中之所以还有那么多二逼,最根本的原因在于过低的利用率,事实上,强悍如爱因斯坦的大脑开发程度也不到10%,至于马克思.孔子之类圣人可能就更低了.大脑利用率的理论还能解释我们与外

IT知识大扫盲

做了这么多软件开发,下列一些知识不一定都懂. 首先,说一些电子商务扫盲的名词: 常见的电子商务类型有:C2C.B2B.B2C.C2B.O2O等等,下面来简要说明下这几种类型. C2C(Customer To Consumer) 消费者与消费者之间的电子商务,指客户间(个人与个人间)通过Internet的技术或各种商务网络平台,完成商务交易,获得产品和服务.例如:淘宝.一些跳骚网|二手网,eBay易趣.拍拍网.YY语音-- B2B(Business To Business) 企业与企业之间的电子商

乐讯机器人高级版【版本验证地址】

乐讯机器人高级版,正式版发布. 继承乐讯机器人一贯的强大功能并增加许多功能. 支持乐讯四大板块的发帖: 乐讯手机高手论坛自动发帖,乐讯社区论坛自动发贴,跳骚社区论坛自动发帖,乐讯公会论论坛自动发帖 [自动发布对应论坛分类的帖子,比如:论坛属性为数码的,就发布帖子为数码类型的帖子] 2.   支持乐讯四大板块的回复: 乐讯手机高手:指定论坛/多论坛/指定品牌/单贴子盖楼-的帖子回复[多账号或者单账号回帖] 乐讯社区论坛:指定论坛/多论坛/沙发强帖/单贴子盖楼-的帖子回复[多账号或者单账号回帖] 乐

Stay true to yourself

https://zhuanlan.zhihu.com/p/22928614 艾伦·德詹尼斯,1958年1月26日出生于美国路易斯安纳州梅泰里,美国主持人.演员.凭借出众的诙谐幽默的口才和喜剧天赋,活跃在电视电影等多个领域.艾伦风趣自然的风格似乎与生俱来,她在杜兰大学的演讲延续了自己的幽默风格,艾伦拆分了 commencement,在“笑果”十足的短短演说中透漏了自己艰辛的成长历程,让人从中受到很大鼓舞,她还给毕业生们以诚恳的建议,让毕业生收益匪浅. Thank you, President Co

百度微服务架构师随手笔记:教你如何手写Docker

模拟Docker实现一个简单的容器,不到 200行代码(包括空行.注释.异常处理),这并不是吹牛B.容器技术几乎是Linux kernel内置的模块,我们简单调用一下API就能搞定很多事情.当然你要考虑各种商业因素.政治因素那就会成长为Docker这种量级的代码量了. 盗用一下朋友圈里的段子:小公司与大公司的区别就是,以杀猪为例,小公司是找到猪直接乱刀砍死.大公司要先做一套笼具抓猪,再做一套流程磨刀,再发明一套刀法(工程师通常会就刀法争论很久)杀猪.抓猪的笼具除了能抓猪还能抓跳骚,磨刀的工具除了

2019五款最具价值的区块链钱包测评,看完就知道哪款最适合你!

在2017年底的时候,数字货币经历了爆发式增长,又遭遇了2018年滑铁卢式的下跌,到现阶段的趋于平稳.期间有大批的投资者涌入币圈,各种数字货币的买入卖出都需要经过交易所或区块链钱包,但在2018年频繁出现交易所数字货币被盗事件,所以越来越多的交易者选择将数字资产放在区块链钱包中存储,下面小编就将目前主流的区块链钱包进行测评,整理出五款最具加知的区块链钱包,一起来了解一下. 1.比特派(评分:8.5) 比特派是一款基于HD钱包的综合化区块链资产服务产品,主要功能包括:收发.买卖.加速交易等.用户掌

蒟蒻ACMer回忆录 &#183; 一段弱校ACM的奋斗史

三年半的ACM生涯终于迎来了终点,退役之时,感慨万分,故写此文以纪念逝去的时光,那些为ACM拼搏的日子,那段弱校ACM的奋斗史. 三年半的ACM生涯,窝见证了CUMT从打铁到铜牌的突破,又见证了从铜牌到银牌的突破:见证了集训队员从3人发展到10余人,又见证了ACM实验室的落实. 三年半的ACM生涯,窝经历了太多,有Accepted时的欢笑,有Wrong Answer时的沮丧,有Time Limit Exceeded时的无奈,有Runtime Error时的尴尬,有打铁的失落,有拿牌的惊喜. 13