ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

AcWing-4001. 训练

2021-10-23 21:01:14  阅读:172  来源: 互联网

标签:战士 训练 10 int 4001 skr sky include AcWing


题干:

达尔星有 nn 个强大的下级战士,编号 1∼n1∼n。

其中第 ii 名战士的战斗力为 riri。

战士 aa 可以成为战士 bb 的战斗导师,当且仅当 ra>rbra>rb 且两人之间不存在矛盾。

给定每个战士的战斗力值以及战士之间存在的 kk 对矛盾关系。

请你计算,每个战士可以成为多少战士的战斗导师。

输入格式

第一行包含两个整数 nn 和 kk。

第二行包含 nn 个整数 r1,r2,…,rnr1,r2,…,rn。

接下来 kk 行,每行包含两个整数 x,yx,y,表示战士 xx 和战士 yy 之间存在矛盾。同一对矛盾关系不会在输入中重复给出,即出现了 x,yx,y 以后,后面就不会再次出现 x,yx,y 或 y,xy,x。

输出格式

共一行,nn 个整数,表示每个战士可以作为战斗导师的战士数量。

数据范围

前三个测试点满足,2≤n≤102≤n≤10,0≤k≤100≤k≤10。
所有测试点满足,2≤n≤2×1052≤n≤2×105,0≤k≤min(2×105,n(n−1)2)0≤k≤min(2×105,n(n−1)2),1≤ri≤1091≤ri≤109,1≤x,y≤n1≤x,y≤n,x≠yx≠y。

输入样例:

4 2
10 4 10 15
1 2
4 3

输出样例:

0 0 1 2

代码:

#include <iostream>
#include <cstring>
#include <algorithm>
#include <map>

using namespace std;
const int N = 2e5+10;
struct skr{
    int x,y,z;
};
int arr[N];
skr sky[N];
bool cmp1(skr zerg,skr protoss)
{
    return zerg.y<protoss.y;
}
bool cmp2(skr zerg,skr protoss)
{
    return zerg.x<protoss.x;
}
int main()
{
    map<int,int>mp;
    int n,k;
    cin>>n>>k;
    for (int i = 1; i <= n; i ++ )
    {
        cin>>sky[i].y;
        sky[i].x=i;
    }
    for (int i = 0; i < k; i ++ )
    {
        int a,b;
        cin>>a>>b;
        if(sky[a].y>sky[b].y)
        mp[a]++;
        if(sky[a].y<sky[b].y)
        mp[b]++;
    }
    sort(sky+1,sky+n+1,cmp1);
    /*for (int i = 1; i <= n; i ++ )
    cout<<sky[i].x<<' ';
    cout<<endl;*/
    for (int i = 1; i <= n; i ++ )
    {
        if(sky[i].y==sky[i-1].y)
        sky[i].z=sky[i-1].z;
        else
        sky[i].z=i-1;
    }
    sort(sky+1,sky+n+1,cmp2);
    /*for (int i = 1; i <= n; i ++ )
    cout<<sky[i].y<<' ';
    cout<<endl;*/
    /*for (int i = 1; i <= n; i ++ )
    cout<<sky[i].z<<' ';
    cout<<endl;*/
    for (int i = 1; i <= n; i ++ )
    cout<<sky[i].z-mp[i]<<' ';
}

标签:战士,训练,10,int,4001,skr,sky,include,AcWing
来源: https://blog.csdn.net/m0_57094519/article/details/120926076

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有