#759. 徐老师的神秘数字

说明


徐老师最近了解到一种特殊的编码方式—— xx 幂次编码,将一个数的各位数字进行 xx 次幂计算然后相加,得到一个新的数。

例如 123123 的 22幂次编码则是 1^2 + 2^2 + 3^2 =1412+22+32=14

现在徐老师给他的小伙伴们每个人发了一个数字,并且告诉他们,他们之间存在一些"特殊数字",那怎么找出这些 "特殊数字" 呢?

徐老师给小伙伴们定下了一个游戏规则,游戏总共进行 nn 轮,编号分别为 2 \sim n+12∼n+1。

第 ii 轮每个人要把自己手中这个数字对应的 ii 幂次编码给计算出来,得到一组数字,如果有人手里的数字和这组编码中的数字相同,这个人则会出局,不再参与接下来的游戏。

第 i + 1i+1 轮则由上一轮剩余的人继续游戏,直到 nn 轮游戏结束 

最后还没有出局的人手里拿的数字则是 "神秘数字",拥有 "神秘数字" 的小伙伴可以在徐老师那里领取一份礼物

现在徐老师已经决定了游戏要进行 nn 轮,但是他的计数能力非常差,他不知道有多少个小伙伴来参加,只知道有哪些数字发出去了。

你能告诉徐老师这些数里有哪些是 "神秘数字" 吗?

输入格式


输入第一行包含一个正整数 nn 表示游戏共有 nn 轮
第二行是数量未知的互不相同的数字a_iai​,以空格隔开

对于 100\%100%的数据,1 \leq n \leq 8, 0 \leq a_i \leq 2541≤n≤8,0≤ai​≤254,题目保证人数不会超过 200200 人

输出格式


输出只有一行,从小到大输出所有神秘数字,中间用空格隔开

样例

输入数据 1

1
24 123 2 12 20 14 4 6 36 72

Copy

输出数据 1

2 6 12 24 72 123

这道题是一个很简单的模拟题。大体意思就是n轮游戏,第i轮都要算出i+1幂次编码,最后双for遍历编码后的数组和原数组,如果相等,则将原数组的那一项标记为-1,n轮之后直接输出没被标记的即可

注意,因为最后输出要求有序,所以必须先对原数组排序!

这道题只要按照题目所给的信息模拟即可。
进行每一轮的运算,将每个编号处理之后产生新的一组数,用另外一个数组 b 存下,然后与第
一个数组中的数进行对比看是否有相同的,把相同的数在数组中标记为 −1 表示淘汰即可。
模拟完 n 轮之后将所有未标记淘汰的同学的编号排序输出即可
代码:
#include <bits/stdc++.h>
using namespace std;
long long a[10001], m,b[10001],len,n,t;
long long f(int x, int y)
{
  long long ans = 0;
  while (x > 0)
  {
    ans += pow(x % 10, y + 1);
    x = x / 10;
  }
  return ans;//计算幂次编码的函数
}
int main()
{
  cin>>n;
  while(scanf("%d",&t) != EOF)//输入
  {
    if(t == -1) break;
    m++;//长度++
    a[m] = t;
  }
  sort(a + 1, a + m + 1);//排序
  for(int i = 1; i <= n; i++)//n轮
  {
    len = 0;
    for(int j = 1; j <= m; j++)
      if(a[j] != -1)
      {
        len++;
        b[len] = f(a[j],i);//获得a[j]的幂次编码
      }
    for(int j = 1; j <= len; j++)
      for(int p = 1; p <= m; p++)
        if(b[j] == a[p])
          a[p] = -1;//标记
  }
  for(int i = 1; i <= m; i++)
    if(a[i] != -1)
      cout<<a[i]<<" ";
  return 0;
}

内容概要:本文详细介绍了如何使用Matlab对地表水源热泵系统进行建模,并采用粒子群算法来优化每小时的制冷量和制热量。首先,文章解释了地表水源热泵的工作原理及其重要性,随后展示了如何设定基本参并构建热泵机组的基础模型。接着,文章深入探讨了粒子群算法的具体实现步骤,包括参设置、粒子初始化、适应度评估以及粒子位置和速度的更新规则。为了确保优化的有效性和实用性,文中还讨论了如何处理实际应用中的约束条件,如设备的最大能力和制冷/制热模式之间的互斥关系。此外,作者分享了一些实用技巧,例如引入混合优化方法以加快收敛速度,以及在目标函中加入额外的惩罚项来减少不必要的模式切换。最终,通过对优化结果的可视化分析,验证了所提出的方法能够显著降低能耗并提高系统的运行效率。 适用人群:从事暖通空调系统设计、优化及相关领域的工程师和技术人员,尤其是那些希望深入了解地表水源热泵系统特性和优化方法的专业人士。 使用场景及目标:适用于需要对地表水源热泵系统进行精确建模和优化的情景,旨在找到既满足建筑负荷需求又能使机组运行在最高效率点的制冷/制热量组合。主要目标是在保证室内舒适度的前提下,最大限度地节约能源并延长设备使用寿命。 其他说明:文中提供的Matlab代码片段可以帮助读者更好地理解和复现整个建模和优化过程。同时,作者强调了在实际工程项目中灵活调整相关参的重要性,以便获得更好的优化效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值