zoukankan      html  css  js  c++  java
  • XTU1202:逆序数

    题目描写叙述

    有n张卡片,分别标有数字1~n。

    有一天Silence把他们按某种序列排好。然后从第一张開始取出一张,再拿一张放到最后面。再取出一张,再拿出一张放到最后面...知道n张卡片所有取走。

    把取出的卡片按取出的顺序排好,正好是1,2。3,4,....,n。
    如今。告诉你n,Silence希望你帮他计算原来的序列的逆序数。


    比如,n=4时。原来的序列应该是1,3,2。4。这样,先取出卡片1,再把卡片3放到最后面,序列变成了2。4,3。再把2取出来,4放到后面。序列变成了3,4。再把3取出来,4放最后面,再把4取出来,这样取出卡片的顺序就是1,2。3,4了。那么原来序列(1,3。2。4)的逆序数是1.那么答案就是1啦。

    输入

    输入不超过1000个例子,每一个例子一行,一个整数n(1 <= n <= 10^9)。

    输出

    每一个例子输出一行。一个整数,为原来序列的逆序数

    例子输入

    4
    99
    

    例子输出

    1
    1631
    
    
    对于这道题,我仅仅想说
    推吧。。

    能够发现,奇偶一样的
    1,2:  0
    3,4:  1
    5,6:  4
    7,8:  7
    9,10:  14
    11,12:  19
    13,14:  28
    
    
    #include <stdio.h>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    #define ll __int64
    
    int main()
    {
        ll n;
        while(~scanf("%I64d",&n))
        {
            LL ans=0;
            if(n%2==1) n++;
            while(n>2)
            {
                ans+=(n/2-1)*(n/2)/2;
                n=n/2;
                if(n%2) n++;
            }
            printf("%I64d
    ",ans);
        }
        return 0;
    }
    


    
    
    
       
    
  • 相关阅读:
    vue从详情页回到列表页,停留在之前的tab上
    vue-touch监听手指左滑右滑事件
    vue事件代理
    vue通过ref获取组件渲染后的dom(this.$refs.xxxRef.$el)
    vue水印-第二种方法:通过指令
    # 有时候代码超时
    # 今天的leetcode1268又用上了二分搜索。
    # linux命令小常识
    # 大家好
    今天尝试配置maven的时候
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7010665.html
Copyright © 2011-2022 走看看