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的更多相关文章

  1. poj 1091 跳骚

    /** 题意: 求对于小于m的n个数, 求x1*a1 + x2*a2+x3*a3........+xn*an = 1 即求 a1,a2,a3,....an 的最大公约数为1 , a1,a2....an ...

  2. 时效性:NABCD分析结果

    N:失物招领,表白墙,二手跳骚群,里面的信息都没有真正的利用起来,好多有用的信息,全部被覆盖,同时,也有好多信息,使用户不想看到的,时效性,是个重大的问题. 例如:暑假放假,我背着书包拿着行李,等候火 ...

  3. 《玩转Django2.0》读书笔记-Django建站基础

    <玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一 ...

  4. Stay true to yourself

    https://zhuanlan.zhihu.com/p/22928614 艾伦·德詹尼斯,1958年1月26日出生于美国路易斯安纳州梅泰里,美国主持人.演员.凭借出众的诙谐幽默的口才和喜剧天赋,活跃 ...

  5. IT知识大扫盲

    做了这么多软件开发,下列一些知识不一定都懂. 首先,说一些电子商务扫盲的名词: 常见的电子商务类型有:C2C.B2B.B2C.C2B.O2O等等,下面来简要说明下这几种类型. C2C(Customer ...

  6. kali Linux 上编译并使用RFID核弹——proxmark3

    你还在在Windows下使用proxmark3?弱爆了! 本文作者:i春秋签约作家——冰尘 作为一个标准的日天日地日空气的(单身贵族泰迪)物理黑客Proxmark3这么高大上的东西应该是在键盘敲打声中 ...

  7. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛.B.跳一跳,很简单的(Hash 倍增)

    题目链接 首先变换的周期是\(26\),而所有字符是同时变的,所以一共就只有\(26\)种树,我们对\(26\)棵树分别处理. 求某节点到根路径上的字符串,可以从根往下哈希,\(O(n)\)预处理出. ...

  8. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 B题 跳一跳,很简单的(字符串Hash + 树上路径倍增)

    题目链接  2018广东工业大学校赛  Problem B 考虑到每条边的权值变化$26$个时刻之后一定会回到原来的状态. 那么预处理出前$26$个时刻每棵树的形态,对每棵树做一遍字符串哈希. 查询的 ...

  9. ACM卡常数(各种玄学优化)

    首先声明,本博文部分内容仅仅适用于ACM竞赛,并不适用于NOIP与OI竞赛,违规使用可能会遭竞赛处理,请慎重使用!遭遇任何情况都与本人无关哈=7= 我也不想搞得那么严肃的,但真的有些函数在NOIP与O ...

随机推荐

  1. Android开发框架SmartAndroid2.0 强劲框架

    SmartAndroid 是一个功能强劲的 Android 框架,作为一个简单而"优雅"的工具库包,它能够为 Android 开发人员建立功能完好的Android 应用程序. 经过 ...

  2. 制作简易计算器处理过程Servlet

    CalculationServlet.java: package com.you.servlet; import java.io.IOException; import java.io.PrintWr ...

  3. UVA - 12338 Anti-Rhyme Pairs (哈希)

    Description D Anti-Rhyme Pairs Input: Standard Input Output: Standard Output Often two words that rh ...

  4. 安装Microsoft .NET Framework 3.5 Service Pack 1回报1603错

    server升级了一下系统补丁(360安装),所有发现.net无法打开网站,提示" 因为无法创建应用程序域,因此未能运行请求.错误: 0x80070002 系统找不到指定的文件. " ...

  5. js字的数目的计算方法(与word计算公式为)

    [背景] 用户往往需要一定数量的单词填写必填字段限制,但js由value.length取出来的往往差异很大,与实际的话.通常真正的用户抱怨.很显然,我没有写那么多字,但系统提示超过字数限制.然后,我学 ...

  6. POJ 2756 Autumn is a Genius 采用string大数减法

    标题意味着小神童.加减可以计算. 只是说这个小神童的学科知识,究竟有多神,自己给自己找. 最后,因为数据是非常非常巨大的,我听说关闭50k结束了50000数字总和,可以想见他神教. 这似乎也是考试题目 ...

  7. JSTL实现int数据的类型的长度

    JSTL否int类型转换string该功能.为了解决增益int数据的类型的长度,闹失踪. 得到String的数据的长度是jstl的fn能够${fn:length(string)},但int做数据? 经 ...

  8. 与我一起extjs5(09--其定义菜单2)

    跟我一起学extjs5(09--自己定义菜单2)         这一节来定义另外三种类型的菜单类. 首先定义菜单button类.文件放于app/view/main/region文件夹以下,文件名称为 ...

  9. 不一样的是不一样的,我的独家滚动条------Day35

    在您开始建立自己的,感觉应该先录一个概念:内核的浏览器. 兼容性问题之前多次提及,而在平时经常会遇到兼容性问题.原因,就在于它:浏览器内核.这是比較通俗的说法,事实上应该把它描写叙述的专业点:Rend ...

  10. curl转让query string逃生参数

    假设curl访问http网站.传递参数.需要使用\如&字首. 例: http://myjenkins/job/run_schedule/buildWithParameters?token=fe ...