zoukankan      html  css  js  c++  java
  • Codeforces 479【D】div3

    题目链接:http://codeforces.com/problemset/problem/977/D

    题意:给你一个数字序列,定了一个游戏规则。你可以对当前数字进行两个操作

    1、/ 3  如果这个数字能被3整除

    2、* 2

    你就是要组成一个新的序列,使得这个游戏规则能够成立。

    题解:这个规律是猜的。因为题目保证有解,所以能整除3的肯定都会先放在前面。所以排序的时候整除3的放前面,在整除3的这一部分,大的肯定要放在后面啊。因为不放在后面的话就不能构成*2的条件了嘛。QWQ瞎搞瞎搞。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #define ll long long
     5 #define Max 105 
     6 using namespace std;
     7 
     8 
     9 int n;
    10 struct node{
    11     ll val;
    12     ll count;
    13 };
    14 
    15 node num[Max + 5];
    16 
    17 bool cmp(node x,node y){
    18     if(x.count == y.count){
    19         return x.val < y.val;
    20     }
    21     else{
    22         return x.count > y.count;
    23     }
    24 }
    25 
    26 int div(ll x){
    27     int cnt = 0;
    28     while(x % 3 == 0){
    29         x /= 3;
    30         cnt++;
    31     }
    32     return cnt;
    33 }
    34 
    35 
    36 int main(){
    37     scanf("%d",&n);
    38     for(int i = 0; i < n; i++){
    39         scanf("%lld",&num[i].val);
    40         num[i].count = div(num[i].val);
    41 
    42     }
    43     sort(num,num+n,cmp);
    44 
    45     for(int i = 0 ; i < n; i++)
    46         printf("%lld ",num[i].val);
    47 }
    View Code
  • 相关阅读:
    Qt进程间通信
    reinterpret
    vs调试技巧
    利用QSystemSemaphore和QSharedMemory实现进程间通讯
    QLocalSocket
    QShareMemory
    qt动态库实现无边框窗体的消息处理 nativeEvent的使用
    BCB6常用快捷键
    1219个人总结
    冲刺二 12.6
  • 原文地址:https://www.cnblogs.com/Asumi/p/9005736.html
Copyright © 2011-2022 走看看