广东工业大学第十四届程序设计竞赛鸽子数(代码片段)

yewanting yewanting     2023-03-09     772

关键词:

Problem Description

通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长。
通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长。
通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长。
鸽子数字由以下过程定义:从任何正整数开始,将数字替换为其各个数位的平方和,并重复该过程,直到该数字等于1。如果不能,则这个数字不是鸽子数。
例如7是鸽子数,因为7->49->97->130->10->1。(7*7=49,4*4+9*9=97,9*9+7*7=130....如此类推)
显然1是第一个鸽子数。
有Q个询问,每个询问给出一个数k,你需要输出第k个鸽子数

Input

第一行一个Q,代表询问的个数(Q<=100000)
接下来Q行,每行一个数字k(k<150000)

Output

每行输出一个数,代表第k个鸽子数

Sample Input

2
1
2
Sample Output
1
7
解题思路:
(1)这道题得先理解一下鸽子数的含义:从任何正整数开始,将数字替换为其各个数位的平方和,并重复该过程,直到该数字等于1。如果不能,则这个数字不是鸽子数。
(2)题目是将自然数从小到大排序,输出第k个鸽子数;
这道题可以先预处理,先将150000内的鸽子数先处理出来,才不用每次查询每次再循环一遍鸽子数,肯定会超时
注意:先将150000内的鸽子数先处理出来,这里特别要注意,不能从i = 1到 i = 150000 找鸽子数,因为该范围的鸽子数肯定小于150000(并不是所有的数都是鸽子数),所以应范围稍微大于150000;
代码如下:
 1 #include<iostream>
 2 using namespace std;
 3 
 4 
 5 int get(int tmp)          //将每个正整数分解成各位数的平方和;
 6  
 7          int ans = 0;
 8         while (tmp>0)
 9      
10             ans += (tmp% 10) * (tmp% 10);
11             tmp  = tmp/ 10;
12      
13 
14   
15         return ans;
16  
17  bool gezi(int n) 
18      
19      int temp = n;
20       while (1) 
21    
22           temp = get(temp);     //获得分解后的数,比如get(49)获得97(4²+9²);
23          if (temp == 2 ||temp == 3 ||temp == 4 ||temp == 5||temp == 6 || temp == 16 || temp == 20|| temp == 37 || temp == 42 || temp == 58 ||temp == 89 || temp == 145  )
24      //这个优化源于我一开始题目读错,以为是输入该数,判断是否为鸽子数,题目有2,结果2的分解是一个死循环,将2分解过程中的一个循环中的数都不会符合条件;再加上3,4,5,6,均不是鸽子数,因为题目说7是第二个鸽子数;
25                 return false;
26      else
27          if (temp == 1) 
28         
29                 return true;
30         
31     
32 
33 
34 
35 long long int count1 = 1;
36 long long int flag[1500005];
37 int q ,n;
38 int main()
39 
40     cin>>q;
41     for( long long int i = 1 ;i <= 1050000;i++)   //这里不能只是到150000  因为这样的话找不到鸽子数范围到150000,范围得开再大点;
42     
43         if(gezi(i))
44         
45             flag[count1] = i;     //将鸽子数记录下来,并记录其序号,方便后面直接输出;
46             count1++;
47         
48     
49     for( int i = 0 ; i < q;i++)
50     
51         cin>>n;
52         cout<<flag[n]<<endl;    //直接根据序号输出鸽子数;
53     
54     return 0;
55 
56 
57 
58  

 

 
 

第十四届华中科技大学程序设计竞赛决赛同步赛beautifulland(代码片段)

It’suniversallyacknowledgedthatthere’reinnumerabletreesinthecampusofHUST.NowHUSTgotabiglandwhosecapacityisCtoplanttrees.Wehaventreeswhichcouldbeplantinit.EachofthetreesmakesHUSTbeautifulwhichdetermine 查看详情

第十四届华中科技大学程序设计竞赛--jvarioustree(代码片段)

链接:https://www.nowcoder.com/acm/contest/106/J来源:牛客网时间限制:C/C++1秒,其他语言2秒空间限制:C/C++32768K,其他语言65536K64bitIOFormat:%lld题目描述It’suniversallyacknowledgedthatthere’reinnumerabletreesinthecampusofH 查看详情

(未完成)[hduoj]“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛(代码片段)

solved5 A(签到)题意:两个人随机得到0或1其中之一数字,每个人都可以猜对方的数字是什么,有一个人猜对就算成功,问最优策略下00,01,10,11四种情况两人的成功概率分别是多少。题意不明的签到题,题面说两人不能沟通... 查看详情

第十四届华中科技大学程序设计竞赛cprofessionalmanager并查集删除/虚点(代码片段)

题目描述It’suniversallyacknowledgedthatthere’reinnumerabletreesinthecampusofHUST.Thusaprofessionaltreemanagerisneeded.Yourtaskistowriteaprogramtohelpmanagethetrees.Initially,therearenforestsandforthei-thf 查看详情

第十四届华中科技大学程序设计竞赛jvarioustree数值型一维bfs/最小步数(代码片段)

链接:https://www.nowcoder.com/acm/contest/106/J来源:牛客网题目描述It’suniversallyacknowledgedthatthere’reinnumerabletreesinthecampusofHUST.AndtherearemanydifferenttypesoftreesinHUST,eachofwhichhasanumberrepresen 查看详情

第十四届华中科技大学程序设计竞赛kwalkingintheforest二分答案/最小化最大值(代码片段)

链接:https://www.nowcoder.com/acm/contest/106/K来源:牛客网题目描述It’suniversallyacknowledgedthatthere’reinnumerabletreesinthecampusofHUST.Nowyou'regoingtowalkthroughalargeforest.ThereisapathconsistingofNsto 查看详情

长春理工大学第十四届程序设计竞赛(重现赛)f(代码片段)

F.SuccessionediFixoracci题目链接:https://ac.nowcoder.com/acm/contest/912/F 题目:动态规划(Dynamicprogramming,简称dp)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。例如,假设小x一步能爬1层或2层台阶,求小x爬n... 查看详情

第十四届华中科技大学程序设计竞赛决赛同步赛

第十四届华中科技大学程序设计竞赛决赛同步赛ABeautyofTrees思维,带权并查集题意:长度为n的序列,没告诉你具体数是多少。只给出m个查询,表示区间[l,r]的异或和为k。但是第i个查询如果和前面的查询有矛盾,那就是错误的。... 查看详情

长春理工大学第十四届程序设计竞赛(重现赛)b(代码片段)

BBowlingGame题目链接:https://ac.nowcoder.com/acm/contest/912/B题目CUST的队员打完省赛后,小r带着大家去打保龄球。保龄球是一项难度非常高的游戏,然而这根本难不住校队成员,他们个个都很厉害(炸和)一发10个瓶都倒。尤其是小r,每次... 查看详情

第十四届全国大学生智能车竞赛竞赛技术报告下载链接

第十四届智能车竞赛技术报告下载链接 01下载报告  今天上午,看到有同学询问关于十四届智能车竞赛技术报告下载的询问。 实际上,之前第十四届的技术报告在百度上有, 只是没有能够提供下载链接。 由... 查看详情

长春理工大学第十四届程序设计竞赛(重现赛)h

H.ArithmeticSequence题目链接:https://ac.nowcoder.com/acm/contest/912/H题目数竞选手小r最喜欢做的题型是数列大题,并且每一道都能得到满分。你可能不相信,但其实他发现了一个结论:只要是数列,无论是给了通项还是给了递推式,无论... 查看详情

浙江财经大学第十四届程序设计竞赛题解

 【题面pdf下载】链接:https://pan.baidu.com/s/1Eb16fHtNYMLrRk9QnXWa-g密码:dwn8【题目牛客网提交链接】【现场赛排名】链接:https://pan.baidu.com/s/1jfzH6-7BoPhEjnijGQK53w密码:y669 感谢各位大佬的参赛。 由于命题人水平不高,而且之前没... 查看详情

长春理工大学第十四届程序设计竞赛(重现赛)m.orxzone

链接:https://ac.nowcoder.com/acm/contest/912/M题意:DaenerysStormborn,风暴中出生的丹尼莉丝,theUnburnt,烧不死的,QueenofMeereen,弥林女王,QueenoftheAndalsandtheRhoynarandtheFirstMen,安达尔人,罗伊那人,和先民的女王,LordoftheSevenKingdoms,七国之主 查看详情

长春理工大学第十四届程序设计竞赛(重现赛)j.printout

链接:https://ac.nowcoder.com/acm/contest/912/J题意:小r为了打校赛,他打算去打字社打印一份包含世界上所有算法的模板。到了打字社,小r一看价格:总打印页数X0X0页以下(不含X0X0)x0x0元每页,X0∼X1X0∼X1页(不含X1X1)x1x1元每页,X1&si... 查看详情

湖南大学第十四届acm程序设计新生杯e.easyproblem(代码片段)

E.EasyProblemDescription:Zghhlikesnumber,buthedoesn‘tlikewritingproblemdescription.Sohewilljustgiveyouaprobleminsteadoftellingalongstoryforit.Nowgivenapositiveintegerxandkdigitsa1,a2,...,ak,canyoufindapositiveintegerysuchthatyisthemultipleofxandindecimalrepresentationycontainsalldigitsofa1,a2,...,... 查看详情

第五届湖南省机器人大赛暨第十四届湖南省智能汽车大赛名单(代码片段)

简介:本文汇总了第五届湖南省智能车竞赛的基本信息。感谢中南大学王击老师发送过来的信息。关键词:湖南省智能车竞赛,智能车竞赛#mermaid-svg-Bl4gxd2xsRwJqsTIfont-family:"trebuchetms",verdana,arial,sans-serif;font-size:16px;fill:#3... 查看详情

第十六届全国大学生智能车竞赛线上赛点赛道审核-广东赛区(代码片段)

简介:参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容。关键词:智能车竞赛,线上比赛,赛道审核 §01赛道审核一、东莞理工学院1、全向行进▲图1.1.1赛道设计与铺设▲图1.1.2赛道设计与铺... 查看详情

第十四届蓝桥杯(web应用开发)模拟赛1期-大学组(代码片段)

数据类型检测请看这篇数据类型检测渐变色背景生成器html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE 查看详情