首页 > 其他分享 >Codeforces Global Round 14 C. Phoenix and Towers(思维)

Codeforces Global Round 14 C. Phoenix and Towers(思维)

时间:2022-12-26 20:33:50浏览次数:60  
标签:14 Phoenix Towers LL 高度 int YES 方块 cout

https://codeforces.com/contest/1515/problem/C

题目大意:

给定一个长度为n的序列a,ai表示方块的高度。每一个方块的高度都在1和q之间。

让我们用这n个方块搭建m座塔,两两之间高度差不能超过q。
input 
2
5 2 3
1 2 3 1 2
4 3 3
1 1 2 3
output 
YES
1 1 1 2 2
YES
1 2 2 3
  • 因为每一个方块的高度范围都在[1,q]之内,每次我得到一个方块的时候把它加入到最低高度的塔中,它的高度对于全体塔高来说,无异于两种情况:
  • 不高于最高的塔,不会超过q的高度差;
  • 高过最高的塔,它变成最高的塔,和此时的最低的塔也不会超过范围。
  • 因此是一定只有YES的情况。
    eg样例一
    1 2 3 1 2
    0 0 1
    0 1 2
    1 2 3
    2 2 3
    2 3 4
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=2002;
LL a[N];
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    int T=1;
    cin>>T;
    while(T--)
    {
        LL n,m,q;
        cin>>n>>m>>q;
        cout<<"YES"<<endl;
        set<PII> st;
        for(int i=1;i<=m;i++)//m个独立的塔,每座塔的初始化高度为0
        {
            st.insert({0,i});
        }
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            PII top=*st.begin();
            st.erase(top);
            cout<<top.second<<" ";//每次插入到最小位置上
            st.insert({top.first+a[i],top.second});
        }
        cout<<endl;
    }
    return 0;
}

标签:14,Phoenix,Towers,LL,高度,int,YES,方块,cout
From: https://www.cnblogs.com/Vivian-0918/p/17006785.html

相关文章

  • AcWing. 1146 新的开始
    传送门题目大意\(\qquad\)给一张图,每个点有对应的点权,每条边有对应的边权。可以有如下几种选择:\(\qquad\quad\)\(1.\)选择一个没通电的点,花费\(v_i\)。\(\qquad\quad\)......
  • ts14抽象类
    (function(){abstractclassAnimal{//abstract开头的类是抽象类//抽象类和其他类区别不大只是不能用来创建对象//抽象类就是专门......
  • AcWing1144. 连接格点
    传送门题目描述有一个\(m\)行\(n\)列的点阵,相邻两点可以相连。一条纵向的连线花费一个单位,一条横向的连线花费两个单位。某些点之间已经有连线了,试问至少还需要花......
  • ts14_super关键字
    (function(){classAnimal{name:stringconstructor(name:string){this.name=name}sayhello(){......
  • 老男孩教育 | 27岁转行做运维,收获月薪14K Offer,用实力证明自己!
    不得不说,赚钱对于普通人来说真的是一件很难的事情,因为我们习惯了上班,习惯了每天的两点一线,习惯了每月领取那点微薄的收入。尤其是在X情时代,很多人不敢做出改变,选择了安于现......
  • 001.phoenix-修改表的字段长度
     登录phoenixcd/usr/hdp/2.6.5.0-292/phoenix/bin./sqlline-thin.py查看表结构!tables!describeorder_center.tr_order 查询系统表设置selectTENANT_ID,T......
  • AcWing1143. 联络员
    传送门题目大意\(\qquad\)给定一张无向图,其中无向图的边有两种类型:\(\qquad\)\(\qquad\)\(1.\)这类边是必须选择的。\(\qquad\)\(\qquad\)\(2.\)这类边是不必须选择的......
  • 2022年7月14日
    感谢师兄&帅帅昨天晚上跟朋友出去吃烧烤,9点半回来才发现没做核酸,进不了学校,最后帅帅开小电驴带我去中医院做了核酸。本来我都打算走过去了,要是下班了我就在街上逛一个晚上......
  • 只有一个程序员开发和运营,BuiltWith网站年入1400万美元是怎么做到的?
    国外有一位程序员叫GaryBrewer,他一人撑起了一个公司,这个公司还年入1400万美元,约人民币1亿元。对此,你是啥想法?先别着急说不可能,这事儿确实是真的:这名程序员名为Gar......
  • 洛谷P4146 序列终结者 题解 splay tree
    题目链接:https://www.luogu.com.cn/problem/P4146题目大意:支持:区间更新(+x)区间翻转区间查询(最大值)解题思路:几乎和AcWing2437.Splay这题一模一样。示例程序:#inc......