zoukankan      html  css  js  c++  java
  • 【CodeForces 618B】Guess the Permutation

    题意

    有个1到n的一个全排列,告诉你第i个数和全部n个数相比的较小数是多少,和自己相比时为0,于是有个主对角线为0的矩阵,求原数列

    分析

    我的想法是,给我们的每一行之和按大小排一下,就知道第i个数是数列里第几大的了。因为是n的全排列,所以第几大就是几。

    按sum排完序后,r[sum[i].id]=i;这句表示原来在id位置的数是现在第i大的,所以r就是要求的全排列了。

    代码

    #include <stdio.h>
    #include <algorithm>
    #define N 60
    using namespace std;
    long long n,ans,a,r[N];
    struct x
    {
        int v,id;
    } sum[N];
    int cmp(x a,x b)
    {
        return a.v<b.v;
    }
    int main()
    {
        scanf("%lld",&n);
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=n; j++)
            {
                scanf("%lld",&a);
                sum[i].v+=a;
            }
            sum[i].id=i;
        }
        sort(sum+1,sum+1+n,cmp);
        for(int i=1; i<=n; i++)
            r[sum[i].id]=i;
        for(int i=1; i<=n; i++)
            printf("%lld ",r[i]);
        return 0;
    }
  • 相关阅读:
    魅族--魅蓝metal
    小米2015.11.24 雷军:我所有的向往
    微软2015.10.4发布会
    创意app1
    奇怪的想法2
    奇怪想法1
    对不起,我爱你(悲剧,慎入)
    聊聊台式机1
    聊聊笔记本1--人生第一台笔记本
    聊聊路由器1
  • 原文地址:https://www.cnblogs.com/flipped/p/5186815.html
Copyright © 2011-2022 走看看