• codeforce 853A Planning


    题目地址:http://codeforces.com/problemset/problem/853/A

    题目大意:

    本来安排了 n 架飞机,每架飞机有 ci 的重要度,

    第 i 架飞机的起飞时间为 i ,而现在,在 k 时之前不能有任何飞机起飞,每个时间点只有1架飞机能起飞,

    损失=(飞机现起飞时间-飞机原起飞时间)*该飞机的重要度.

    现在要求你排一张时间表,要求每架飞机都只能在原起飞时间及以后起飞,且使损失最小.

    题解:

    贪心

    暴力的数组模拟tle,o(≧口≦)o

    #include<bits/stdc++.h>
    using namespace std;
    int n,k;
    
    struct node
    {
        int id;
        long long c;
    }a[300005];
    int b[300005],ans[300005];
    bool vis[300005];
    long long sum;
    bool cmp(node a,node b)
    {
        if (a.c!=b.c) return a.c>b.c;
          else return a.id>b.id;
    }
    
    int main()
    {
        scanf("%d%d",&n,&k);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i].c);
            a[i].id=i;
        }
        sort(a+1,a+1+n,cmp);
        for(int i=1;i<=n;i++) {b[i]=k+i; vis[i]=0;}
        sum=0;
        for(int i=1;i<=n;i++)
        {
            int t=0;
            while(1)
            {
                int kk=lower_bound(b+t+1,b+1+n,a[i].id)-b;
                if (!vis[kk]) { vis[kk]=1; sum+=(b[kk]-a[i].id)*a[i].c;  ans[a[i].id]=b[kk]; break;}
                  else t=kk;
            }
        }
        printf("%lld
    ",sum);
        for(int i=1;i<=n;i++)
        {
            if (i-1) printf(" ");
            printf("%d",ans[i]);
            
        }
        printf("
    ");
        return 0;
    }
  • 相关阅读:
    pgloader-pg迁移神器
    PostgreSQL备份工具-pg_probackup
    5、pgpool-II高可用性(一)数据库的高可用性
    4、pgpool-II 流复制模式
    3、pgpool-II 内置复制模式
    pgpool-II 的配置
    pgpool-II安装
    PG时间相减
    PostgreSQL 流复制解惑
    PostgreSQL改造非分区表为分区表
  • 原文地址:https://www.cnblogs.com/stepping/p/7493487.html
Copyright © 2020-2023  润新知