zoukankan      html  css  js  c++  java
  • 【HDOJ】3029 Scales

    CF上有道类似的,做了那个这个简单多了。思路是取模。模等于1如何处理,模等于2如何分类分类讨论后。可解。
    解得对数据排序后再输出。

      1 /* 3029 */
      2 #include <iostream>
      3 #include <string>
      4 #include <map>
      5 #include <queue>
      6 #include <set>
      7 #include <stack>
      8 #include <vector>
      9 #include <deque>
     10 #include <algorithm>
     11 #include <cstdio>
     12 #include <cmath>
     13 #include <ctime>
     14 #include <cstring>
     15 #include <climits>
     16 #include <cctype>
     17 #include <cassert>
     18 #include <functional>
     19 using namespace std;
     20 //#pragma comment(linker,"/STACK:102400000,1024000")
     21 
     22 #define mpii            map<int,int>
     23 #define vi                vector<int>
     24 #define pii                pair<int,int>
     25 #define vpii            vector<pair<int,int> >
     26 #define rep(i, a, n)     for (int i=a;i<n;++i)
     27 #define per(i, a, n)     for (int i=n-1;i>=a;--i)
     28 #define clr                clear
     29 #define pb                 push_back
     30 #define mp                 make_pair
     31 #define fir                first
     32 #define sec                second
     33 #define all(x)             (x).begin(),(x).end()
     34 #define SZ(x)             ((int)(x).size())
     35 #define lson            l, mid, rt<<1
     36 #define rson            mid+1, r, rt<<1|1
     37 
     38 vi l, r;
     39 
     40 void dfs(int m) {
     41     int tmp = m % 3;
     42     int m_;
     43 
     44     if (m == 0)
     45         return ;
     46 
     47     if (tmp == 2) {
     48         m_ = m/3+1;
     49     } else {
     50         m_ = m/3;
     51     }
     52 
     53     dfs(m_);
     54 
     55     rep(i, 0, SZ(l))
     56         l[i] *= 3;
     57     rep(i, 0, SZ(r))
     58         r[i] *= 3;
     59 
     60     if (tmp == 2) {
     61         r.pb(1);
     62     } else if (tmp == 1) {
     63         l.pb(1);
     64     }
     65 }
     66 
     67 int main() {
     68     ios::sync_with_stdio(false);
     69     #ifndef ONLINE_JUDGE
     70         freopen("data.in", "r", stdin);
     71         freopen("data.out", "w", stdout);
     72     #endif
     73 
     74     int m;
     75     int lsz, rsz;
     76 
     77     while (scanf("%d",&m)!=EOF) {
     78         l.clear();
     79         r.clear();
     80         dfs(m);
     81         sort(all(l));
     82         sort(all(r));
     83         lsz = SZ(l);
     84         rsz = SZ(r);
     85         printf("%d", rsz);
     86         rep(i, 0, rsz)
     87             printf(" %d", r[i]);
     88         putchar('
    ');
     89 
     90         printf("%d", lsz);
     91         rep(i, 0, lsz)
     92             printf(" %d", l[i]);
     93         putchar('
    ');
     94     }
     95 
     96     #ifndef ONLINE_JUDGE
     97         printf("time = %d.
    ", (int)clock());
     98     #endif
     99 
    100     return 0;
    101 }
  • 相关阅读:
    MVVM模式和在WPF中的实现(一)MVVM模式简介
    C#中实现并发的几种方法的性能测试
    搞笑:儿子的日记,叔叔妈妈
    MSN头像中小黄鸭子是什么?
    某人分析的70后,80后,90后
    有趣的纹身
    百度首页人物logo第一期:许三多
    关于微软Windows未来的一点畅想
    我把最难的21个汉字写进一篇文章
    百度还可以这样玩!
  • 原文地址:https://www.cnblogs.com/bombe1013/p/4608418.html
Copyright © 2011-2022 走看看