Time Limit: 1 second

Memory Limit: 128 MB

【问题描述】

为了迎接圣诞,信息学兴趣小组的同学在辅导老师的带领下,举办了一个盛大的晚会,晚会的第一项内容是做游戏:猜数。老师给

每位同学发一张卡片,每张卡片上都有一个编号(此编号为非负数,且小于255),每个编号互不相同。老师制定了以下的游戏规

则:第一轮,每位同学将自己卡片上编号的各位数字进行平方后再相加得到一组新数,编号在这组新数中出现的同学淘汰出局

,第二轮,余下的同学再将编号的各位数字进行立方相加得到一组新数,编号在这组新数中出现的同学再淘汰出局,第三轮,

余下的同学再将编号的各位数字进行4次方相加得到一组新数,编号在这组新数中出现的同学再淘汰出局,……,以此类推,经

过n轮后,仍留下来的同学,将获得圣诞特别礼物,卡片上的数即为2007年吉祥数。(假定班级人数不超过200人)

【输入格式】

输入文件ghillie .in 有两行,第1行为1个正整数n(n<8),表示有n轮游戏,第二行是卡片上互不相同的编号。

输出:剩下来的各个吉祥数,按从小到大顺序输出,每两个数之间有一个空格。

【输出格式】

输出文件ghillie .out是1行,为剩下来的各个吉祥数,按从小到大顺序输出,每两个数之间有一个空格。

Sample Input

1

24 123 2 12 20 14 4 6 36 72

Sample Output

2 6 12 24 72 123

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t090

【题解】



单独写个函数计算某个数字在第x回合各个位上的数字的x+1方和;

然后就模拟呗;

平台日常卖萌:

如果回合数小于3.最后的数字末尾有多余的空格;

回合数大于等于3,最后的数字末尾没有多余的空格。



【完整代码】

  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <cmath>
  4. #include <set>
  5. #include <map>
  6. #include <iostream>
  7. #include <algorithm>
  8. #include <cstring>
  9. #include <queue>
  10. #include <vector>
  11. #include <stack>
  12. #include <string>
  13. using namespace std;
  14. #define lson l,m,rt<<1
  15. #define rson m+1,r,rt<<1|1
  16. #define LL long long
  17. #define rep1(i,a,b) for (int i = a;i <= b;i++)
  18. #define rep2(i,a,b) for (int i = a;i >= b;i--)
  19. #define mp make_pair
  20. #define pb push_back
  21. #define fi first
  22. #define se second
  23. typedef pair<int,int> pii;
  24. typedef pair<LL,LL> pll;
  25. void rel(LL &r)
  26. {
  27. r = 0;
  28. char t = getchar();
  29. while (!isdigit(t) && t!='-') t = getchar();
  30. LL sign = 1;
  31. if (t == '-')sign = -1;
  32. while (!isdigit(t)) t = getchar();
  33. while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
  34. r = r*sign;
  35. }
  36. void rei(int &r)
  37. {
  38. r = 0;
  39. char t = getchar();
  40. while (!isdigit(t)&&t!='-') t = getchar();
  41. int sign = 1;
  42. if (t == '-')sign = -1;
  43. while (!isdigit(t)) t = getchar();
  44. while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
  45. r = r*sign;
  46. }
  47. const int MAXN = 200+100;
  48. const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
  49. const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
  50. const double pi = acos(-1.0);
  51. int T;
  52. LL a[MAXN];
  53. int n = 0;
  54. vector <LL> b;
  55. bool bo[MAXN];
  56. LL f(LL x,int round)
  57. {
  58. LL temp = 0;
  59. while (x>0)
  60. {
  61. int t = x%10;
  62. LL dd = 1;
  63. rep1(i,1,round+1)
  64. dd=dd*t;
  65. temp+=dd;
  66. x/=10;
  67. }
  68. return temp;
  69. }
  70. int main()
  71. {
  72. //freopen("F:\\rush.txt","r",stdin);
  73. memset(bo,true,sizeof(bo));
  74. rei(T);
  75. LL x;
  76. while (scanf("%I64d",&x)!=EOF)
  77. a[++n] = x;
  78. rep1(ii,1,T)
  79. {
  80. b.clear();
  81. rep1(i,1,n)
  82. if (bo[i])
  83. b.pb(f(a[i],ii));
  84. int len = b.size();
  85. rep1(i,1,n)
  86. if (bo[i])
  87. {
  88. rep1(j,0,len-1)
  89. if (b[j]==a[i])
  90. {
  91. bo[i]=false;
  92. break;
  93. }
  94. }
  95. }
  96. b.clear();
  97. rep1(i,1,n)
  98. if (bo[i])
  99. b.pb(a[i]);
  100. sort(b.begin(),b.end());
  101. int len = b.size();
  102. rep1(i,0,len-1)
  103. {
  104. printf("%I64d",b[i]);
  105. if (i==len-1)
  106. {
  107. if (T<3) putchar(' ');
  108. puts("");
  109. }
  110. else
  111. printf(" ");
  112. }
  113. return 0;
  114. }

【t090】吉祥数的更多相关文章

  1. [Swust OJ 610]--吉祥数

    题目链接:http://acm.swust.edu.cn/problem/610/ Time limit(ms): 1000 Memory limit(kb): 65535   Description ...

  2. K-lord #2

    题目描述 还记得,高中数学联赛,2005,那道毒瘤题. 如果自然数的各位数字之和等于7,那么称为“吉祥数”.将所有“吉祥数”从小到大排成一列 $a_{1}$,$a_{2}$,$a_{3}$ ... , ...

  3. Linux上如何查看物理CPU个数,核数,线程数

    首先,看看什么是超线程概念 超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的 ...

  4. 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)

    转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...

  5. 数塔问题(DP算法)自底向上计算最大值

    Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数 ...

  6. 统计iOS项目的总代码行数的方法

    打开终端, 用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or - ...

  7. 数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

  8. 数百个 HTML5 例子学习 HT 图形组件 – 3D 建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

  9. 数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇

    <数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇>一文让读者了解了 HT的 2D 拓扑图组件使用,本文将对 HT 的 3D 功能做个综合性的介绍,以便初学者可快速上手使用 HT ...

随机推荐

  1. 粉丝裂变活动bug

    1 二维码ios无法扫描 也不知道是现在二维码长按识别的机制改了还是咋样,之前如果二维码ios 太小或者位置不对无法识别就加个透明的二维码,一般是妥妥的,但是这次就是不行,排除fixed,变形等等 解 ...

  2. golang之常量

    1.  常量可以是全局常量,也可以是函数内部的局部常量.常量的值不可修改,常量表达式的值在编译期计算,而不是在运行期.存储在常量中的数据类型只可以是布尔型.数字型(整数型.浮点型和复数)和字符串型.当 ...

  3. C++ 浮点数 为 0 的判断

  4. ie6中兼容性问题总结

    针对firefox ie6 ie7 ie8的css样式中的line-height属性,以前我们大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7以上对! ...

  5. Permutations II 去掉重复的全排列

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

  6. larbin终于编译完成

    1.目前sourceforge不能下载,只能找mirror进行下载了: 2.一些头文件始终找不到,定位了一下,应该是makefile中设置有问题,把CXXFLAGS中的-I-去掉,即可编译成功:

  7. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十九章:法线贴图

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十九章:法线贴图 学习目标 理解为什么需要法线贴图: 学习法线贴图如 ...

  8. 2019-8-31-C#-循环的判断会进来几次

    title author date CreateTime categories C# 循环的判断会进来几次 lindexi 2019-08-31 16:55:58 +0800 2018-06-14 0 ...

  9. 外贸电子商务网站之Prestashop 安装后台中文语言包

    1.先进入到后台,我们进入Localization-> Localization2, 在下面的国家列表中,我们选择china ,导入即可. 3.进入Localization-> Trans ...

  10. @topcoder - SRM766R1 D1L3@ ShortestMissingSubsequences

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个大小为 G 的字符集,并给定一个长度为 N 的字符串 A ...