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

  1. 2 4

Sample Output

  1. 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) 

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

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h> //system(); 这个指令须要用到此头文件
  4. #include <ctype.h> //toupper要用到
  5. #include <malloc.h> //在内存管理时用到的头文件
  6. #include <string.h> //字符串的头文件
  7. #include <math.h> //数学运算
  8.  
  9. int m = 0, n = 0, c[1000] = { NULL }, position = 0, count_can = 0;
  10.  
  11. bool jump(int x[])
  12. {
  13. int temp1[1000] = { NULL }, temp2[1000] = { NULL };
  14. for (int i = 0; x[i] != NULL; i++)
  15. {
  16. if (x[i] == 1)
  17. return(true);
  18. temp1[i] = x[i];
  19. }
  20. int l = 1, s = 0;
  21. do{
  22. s = 0;
  23. if (l == 1)
  24. {
  25.  
  26. for (int i = 0; temp1[i] != NULL; i++)
  27. {
  28. for (int j = i + 1; temp1[j] != NULL; j++)
  29. {
  30.  
  31. if (fabs(temp1[i] - temp1[j]) == 1)
  32. {
  33. return(true);
  34. }
  35. if (temp1[i] - temp1[j] != 0)
  36. {
  37. temp2[s] = (int)fabs(temp1[i] - temp1[j]);
  38. s++;
  39. }
  40. }
  41. temp1[i] = 0;
  42. }
  43. l = 2;
  44. }
  45. else
  46. {
  47.  
  48. for (int i = 0; temp2[i] != NULL; i++)
  49. {
  50. for (int j = i + 1; temp2[j] != NULL; j++)
  51. {
  52. if (fabs(temp2[i] - temp2[j]) == 1)
  53. {
  54. return(true);
  55. }
  56. if (temp2[i] - temp2[j] != 0)
  57. {
  58. temp1[s] = (int)fabs(temp2[i] - temp2[j]);
  59. s++;
  60. }
  61. }
  62. temp2[i] = 0;
  63. }
  64. l = 1;
  65. }
  66.  
  67. } while (s != 0);
  68. return(false);
  69.  
  70. }
  71. void card(int depth)
  72. {
  73. if (depth == m)
  74. {
  75. c[m] = n;
  76. if (jump(c) == true)
  77. {
  78. count_can++;
  79. }
  80. return;
  81. }
  82. else
  83. {
  84. for (int i = 1; i <= n; i++)
  85. {
  86. c[depth] = i;
  87. depth++;
  88. card(depth);
  89. depth--;
  90. }
  91. return;
  92. }
  93. }
  94. void main()
  95. {
  96. scanf("%d%d", &m, &n);
  97. card(0);
  98. printf("%d\n", count_can);
  99. }

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. Best Time to Buy and Sell Stock I,II,III [leetcode]

    Best Time to Buy and Sell Stock I 你只能一个操作:维修preMin拍摄前最少发生值 代码例如以下: int maxProfit(vector<int> & ...

  2. 大约C++ const 全面总结

    C++中的const关键字的使用方法很灵活,而使用const将大大改善程序的健壮性,本人依据各方面查到的资料进行总结例如以下,期望对朋友们有所帮助. Const 是C++中经常使用的类型修饰符,常类型 ...

  3. spring常规任务(轻便易)

    spring提供了定时任务功能.我们不需要第三者jar包支持.spring够了. 代码: package com.inth.product.web.task; import java.util.Dat ...

  4. 写hive sql和shell脚本时遇到几个蛋疼的问题!

    错误一: Hive的where后不能用字段的别名, 错误二: hive的groupby中不能用自己定义函数,否则报错(用嵌套select取代) 错误三: 运行:$ ./hive_game_operat ...

  5. Swift 书面 ToDo App

    下面的代码是使用的全部Xcode Version 6.0.1 (6A317)书面. 因为当使用团队开发stroyboard在并购的诸多不便的时间,所有或使用.xib该文件准备ToDo App. 想要实 ...

  6. Sphinx/Coreseek 4.1 跑 buildconf.sh 一个错误,无法生成configure档

    安装前 coorseek 什么时候,遇到一些错误.该官方网站无法看到的解决方案,终于 google 在大牛的博客评论区找到一个解决方案.突然跑到他的膝盖介绍~~ 这里整理是为了方便一些人发现,墙毕竟让 ...

  7. 折返(Reentrancy)VS线程安全(Thread safety)

    在Wiki上,折返例如,下面的定义(接) In computing, a computer program or subroutine is called reentrant if it can be ...

  8. asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!)

    原文:asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!) 我想用post的方式把一个页面表单的值,传到另一个页面.当我点击Default.as ...

  9. 键盘enter事件时间页面绑定

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. Catalan数总结

    财产: 前20条目:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, ...