题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4458

分析:构建一个数组,用来枚举100000以内的所有生成元,数组元素全部初始为0,枚举之后,数组中元素即为对应下标的生成元,通过访问数组下标即可直接得到需要求解的生成元

  比如: num[216]的值为198,即为216的生成元为198; num[121]的值为0,即为121没有生成元

C++11代码如下:

 #include<iostream>
#include<string.h>
#define maxn 100002
using namespace std;
int num[maxn]; //数组过大,需定义在main函数外
int main() {
int T, n;
memset(num, , sizeof(num )); //数组元素全部设置为0
for (int m = ; m < maxn; m++) { //枚举100000以内的所有生成元
int x = m, y = m;
while (x > ) {
y += x % ;
x /= ;
}
if (num[y] == ) num[y] = m;
}
cin >> T;
while (T--) {
cin >> n;
cout << num[n]<<endl;
}
return ;
}

生成元(UVa1583)的更多相关文章

  1. [C++]最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

    Question 例题3-5 最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583) 如果x+x的各个数字之和得到y,就是说x是y的生成元.给出n( ...

  2. 生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

    如果x加上x的各个数字之和得到y,就说x是y的生成元.给出n(1≤n≤100000),求最小 生成元.无解输出0.例如,n=216,121,2005时的解分别为198,0,1979. [分析] 本题看 ...

  3. 3_5 生成元(UVa1583)

    如果x加上x的各个数字之和得到y,就说x是y的生成元.给出n(1<=n<=100000),求最小生成元.无解输出0.例如,n=216,121,2005时的解分别为198,0,1979. 样 ...

  4. UVA1583 最小生成元

    题很简单,主要是懂题意. 思想是枚举. #include<cstdio> #include<cstring> #define Max 100001 int ans[Max]; ...

  5. UVA1583(最小生成元)

    对于这种需要一遍遍枚举求解的,打表可以提高很多效率 #include <iostream> #include <string> #include <cstring> ...

  6. 生成元(Digit Generator ,ACM/ICPC Seoul 2005 ,UVa 1583)

    生成元:如果 x 加上 x 各个数字之和得到y,则说x是y的生成元. n(1<=n<=100000),求最小生成元,无解输出0. 例如:n=216 , 解是:198 198+1+9+8=2 ...

  7. GF(2^8)生成元

    目的是找出所有GF(2^8)的生成元. 方法很简单,从2开始遍历,将每个元素都与自身相乘255次,看是否能得到1~255.若能,则是生成元. #include<iostream> #inc ...

  8. hdu1222&hdu1014 循环群的生成元

    hdu1222 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1222 题目大意: 大灰狼追小白兔.小白兔可以躲起来的洞绕成一个圈,大灰狼从0这个点出 ...

  9. uva 1583 Digit Generator(Uva-1583)

    题目不再写入了,vj:https://vjudge.net/problem/UVA-1583#author=0 主要讲的是找一个数的小于它的一个数,小于它的那个数每一位加起来再加上那个数就会等于原来的 ...

随机推荐

  1. Yii2 数据库基本操作

    //1.简单查询  $admin=Admin::model()->findAll($condition,$params);  $admin=Admin::model()->findAll( ...

  2. mybatis中的resultMap与resultType、parameterMap与 parameterType的区别

    Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与  parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...

  3. OpenCV---直方图的应用(均衡化和图像比较)

    一:全局直方图均衡化(对比度增强)equalizeHist def equalHist_demo(image): #OpenCV直方图均衡化都是基于灰度图像 gray = cv.cvtColor(im ...

  4. 使用quartz.jar 、quartz-jobs.jar 实现定时任务 。实现 定时采集 接口数据

    前言 定时任务管理,在java中有很多种的方式 ,有java自带的注解方式@Scheduled  等 ,现在我要说的是一种也是使用比较广泛的一种quartz管理 使用此类 需要的加jar包有 quar ...

  5. 用英文写Email的注意事项

  6. [acmm week12]染色(容斥定理+组合数+逆元)

    1003 染色         Time Limit: 1sec    Memory Limit:256MB Description 今天离散数学课学了有关树的知识,god_v是个喜欢画画的人,所以他 ...

  7. 网络流入门--最大流算法Dicnic 算法

    感谢WHD的大力支持 最早知道网络流的内容便是最大流问题,最大流问题很好理解: 解释一定要通俗! 如右图所示,有一个管道系统,节点{1,2,3,4},有向管道{A,B,C,D,E},即有向图一张.  ...

  8. 【CODEVS】1922 骑士共存问题

    [算法]二分图最大匹配(最大流) [题解]按(i+j)奇偶性染色后,发现棋子跳到的地方刚好异色. 然后就是二分图了,对于每个奇点向可以跳到的地方连边,偶点不需连(可逆). 所以题目要求转换为求二分图上 ...

  9. 【BZOJ】1023: [SHOI2008]cactus仙人掌图 静态仙人掌(DFS树)

    [题意]给定仙人掌图(每条边至多在一个简单环上),求直径(最长的点对最短路径).n<=50000,m<=10^7. [算法]DFS树处理仙人掌 [题解]参考:仙人掌相关问题的处理方法(未完 ...

  10. 设置display:inline-block产生间隙

    display:inline-block产生间隙,是由于换行在内的空白符 display:inline-block在IE下仅仅是触发了layout,而它本是行布局,触发后,块元素依然还是行布局.所以需 ...