zoukankan      html  css  js  c++  java
  • ACM继续XXX定律

    题目描述:
        当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数。现在输入n个数字a[i],根据关键数与覆盖数的理论,我们只需要验证其中部分数就可以确定所有数满足xxx定律,输出输入的n个数中的关键数。如果其中有多个关键数的话按照其输入顺序的逆序输出。
    输入:
        输入数据包含多个用例,每个用例首先包含一个整数n,然后接下来一行有n个整数a[i],其中: 1<=n<=500, 1<a[i]<=1000
    输出:
        请计算并输出数组a中包含的关键数,并按照其输入顺序的逆序输出,每个用例输出占一行。
    样例输入:
    3
    3 8 4
    5
    3 8 4 7 15
    5
    3 8 4 15 7
    0
    样例输出:
    3
    15 7 3
    7 15 3
    main.cpp
     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 void get_xxx(int x, int xxx[]);
     6 
     7 int main()
     8 {
     9     int xxx[400005], a[505];
    10     int n,i,check;
    11     while(cin>>n && n>0) {
    12         for(i=0; i<n; i++) cin>>a[i];
    13         memset(xxx, 0, sizeof(xxx));
    14         for(i=0; i<n; i++)
    15             get_xxx(a[i],xxx);
    16         check=1;
    17         for(i=n-1; i>=0; i--)
    18             if(xxx[a[i]] == 0) {
    19                 if(check==1) cout<<a[i];
    20                 else cout<<" "<<a[i];
    21                 check=0;
    22             }
    23         cout<<endl;
    24     }
    25     return 0;
    26 }
    27 
    28 void get_xxx(int x, int xxx[]) {
    29     if(x==1) return ;
    30     if(x%2==1) 
    31         x = (3*x+1)/2 ;
    32     else 
    33         x/=2;
    34     xxx[x]=1;
    35     get_xxx(x, xxx);    
    36 }
  • 相关阅读:
    laravel md5+salt 密码
    sql语句 当前时间查找重复 时间戳转换
    Supesite 参数说明
    ajax
    PDO操作
    laravel paginate动态分页
    PHP iconv()函数转字符编码的问题(转)
    计算几何基础模板(2014.10.6一直沿用)
    hdu 4893
    2014 ACM/ICPC 鞍山赛区网络赛(清华命题)
  • 原文地址:https://www.cnblogs.com/wizzhangquan/p/2954545.html
Copyright © 2011-2022 走看看