zoukankan      html  css  js  c++  java
  • [HDOJ5878]I Count Two Three(暴力枚举,二分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5878

    两种做法

     1 #include <algorithm>
     2 #include <iostream>
     3 #include <iomanip>
     4 #include <cstring>
     5 #include <climits>
     6 #include <complex>
     7 #include <fstream>
     8 #include <cassert>
     9 #include <cstdio>
    10 #include <bitset>
    11 #include <vector>
    12 #include <deque>
    13 #include <queue>
    14 #include <stack>
    15 #include <ctime>
    16 #include <set>
    17 #include <map>
    18 #include <cmath>
    19 using namespace std;
    20 #define fr first
    21 #define sc second
    22 #define cl clear
    23 #define BUG puts("here!!!")
    24 #define W(a) while(a--)
    25 #define pb(a) push_back(a)
    26 #define Rint(a) scanf("%d", &a)
    27 #define Rll(a) scanf("%I64d", &a)
    28 #define Rs(a) scanf("%s", a)
    29 #define Cin(a) cin >> a
    30 #define FRead() freopen("in", "r", stdin)
    31 #define FWrite() freopen("out", "w", stdout)
    32 #define Rep(i, len) for(int i = 0; i < (len); i++)
    33 #define For(i, a, len) for(int i = (a); i < (len); i++)
    34 #define Cls(a) memset((a), 0, sizeof(a))
    35 #define Clr(a, x) memset((a), (x), sizeof(a))
    36 #define Full(a) memset((a), 0x7f7f7f, sizeof(a))
    37 #define lrt rt << 1
    38 #define rrt rt << 1 | 1
    39 #define pi 3.14159265359
    40 #define RT return
    41 #define lowbit(x) x & (-x)
    42 #define onecnt(x) __builtin_popcount(x)
    43 typedef long long LL;
    44 typedef long double LD;
    45 typedef unsigned long long ULL;
    46 typedef pair<int, int> pii;
    47 typedef pair<string, int> psi;
    48 typedef pair<LL, LL> pll;
    49 typedef map<string, int> msi;
    50 typedef vector<int> vi;
    51 typedef vector<LL> vl;
    52 typedef vector<vl> vvl;
    53 typedef vector<bool> vb;
    54 
    55 const int maxn = 33;
    56 int n;
    57 int x2[maxn], x3[maxn], x5[maxn], x7[maxn];
    58 vector<int> ret;
    59 
    60 signed main() {
    61     // FRead();
    62     Cls(x2); Cls(x3); Cls(x5); Cls(x7); ret.clear();
    63     x2[0] = 1; x3[0] = 1; x5[0] = 1; x7[0] = 1;
    64     x2[1] = 2; x3[1] = 3; x5[1] = 5; x7[1] = 7;
    65     ret.push_back(1);
    66     ret.push_back(2);
    67     ret.push_back(3);
    68     ret.push_back(5);
    69     ret.push_back(7);
    70     For(i, 2, 31) {
    71         x2[i] = x2[i-1] * 2;
    72         x3[i] = x3[i-1] * 3;
    73         x5[i] = x5[i-1] * 5;
    74         x7[i] = x7[i-1] * 7;
    75     }
    76     For(a, 0, 31) {
    77         For(b, 0, 31) {
    78             For(c, 0, 31) {
    79                 For(d, 0, 31) {
    80                     int tmp = x2[a]*x3[b]*x5[c]*x7[d];
    81                     if(tmp > 0 && tmp <= 1000000000LL) {
    82                         ret.push_back(tmp);
    83                     }
    84                 }
    85             }
    86         }
    87     }
    88     sort(ret.begin(), ret.end());
    89     int T;
    90     Rint(T);
    91     W(T) {
    92         scanf("%I64d", &n);
    93         printf("%I64d
    ", *lower_bound(ret.begin(), ret.end(), n));
    94     }
    95     RT 0;
    96 }
    1
     1 #include <algorithm>
     2 #include <iostream>
     3 #include <iomanip>
     4 #include <cstring>
     5 #include <climits>
     6 #include <complex>
     7 #include <fstream>
     8 #include <cassert>
     9 #include <cstdio>
    10 #include <bitset>
    11 #include <vector>
    12 #include <deque>
    13 #include <queue>
    14 #include <stack>
    15 #include <ctime>
    16 #include <set>
    17 #include <map>
    18 #include <cmath>
    19 using namespace std;
    20 #define fr first
    21 #define sc second
    22 #define cl clear
    23 #define BUG puts("here!!!")
    24 #define W(a) while(a--)
    25 #define pb(a) push_back(a)
    26 #define Rint(a) scanf("%d", &a)
    27 #define Rll(a) scanf("%I64d", &a)
    28 #define Rs(a) scanf("%s", a)
    29 #define Cin(a) cin >> a
    30 #define FRead() freopen("in", "r", stdin)
    31 #define FWrite() freopen("out", "w", stdout)
    32 #define Rep(i, len) for(int i = 0; i < (len); i++)
    33 #define For(i, a, len) for(int i = (a); i < (len); i++)
    34 #define Cls(a) memset((a), 0, sizeof(a))
    35 #define Clr(a, x) memset((a), (x), sizeof(a))
    36 #define Full(a) memset((a), 0x7f7f7f, sizeof(a))
    37 #define lrt rt << 1
    38 #define rrt rt << 1 | 1
    39 #define pi 3.14159265359
    40 #define RT return
    41 #define lowbit(x) x & (-x)
    42 #define onecnt(x) __builtin_popcount(x)
    43 typedef long long LL;
    44 typedef long double LD;
    45 typedef unsigned long long ULL;
    46 typedef pair<int, int> pii;
    47 typedef pair<string, int> psi;
    48 typedef pair<LL, LL> pll;
    49 typedef map<string, int> msi;
    50 typedef vector<int> vi;
    51 typedef vector<LL> vl;
    52 typedef vector<vl> vvl;
    53 typedef vector<bool> vb;
    54 
    55 inline bool scan_d(LL &num) {
    56     char in;bool IsN=false;
    57     in=getchar();
    58     if(in==EOF) return false;
    59     while(in!='-'&&(in<'0'||in>'9')) in=getchar();
    60     if(in=='-'){ IsN=true;num=0;}
    61     else num=in-'0';
    62     while(in=getchar(),in>='0'&&in<='9'){
    63         num*=10,num+=in-'0';
    64     }
    65     if(IsN) num=-num;
    66     return true;
    67 }
    68 
    69 const int maxn = 33;
    70 LL n;
    71 LL k[5] = {2,3,5,7};
    72 vector<LL> ret;
    73 
    74 void dfs(LL cur, int depth) {
    75     if(depth == 4) ret.push_back(cur);
    76     else {
    77         for(LL i = 1; cur * i <= 1000000000LL; i *= k[depth]) {
    78             dfs(LL(cur*i), depth+1);
    79         }
    80     }
    81 }
    82 
    83 signed main() {
    84     // FRead();
    85     int T;
    86     Rint(T);
    87     dfs(1LL, 0);
    88     sort(ret.begin(), ret.end());
    89     W(T) {
    90         scan_d(n);
    91         printf("%I64d
    ", *lower_bound(ret.begin(), ret.end(), n));
    92     }
    93     RT 0;
    94 }
    2
  • 相关阅读:
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Path Sum
    Symmetric Tree
    Solve Tree Problems Recursively
    632. Smallest Range(priority_queue)
    609. Find Duplicate File in System
    poj3159最短路spfa+邻接表
  • 原文地址:https://www.cnblogs.com/kirai/p/5885743.html
Copyright © 2011-2022 走看看