codeforces730D Award Ceremony(思路)

Posted 恶devil魔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces730D Award Ceremony(思路)相关的知识,希望对你有一定的参考价值。

题意:

给你n个人的成绩和改变值,问你安排一种改变的顺序使得n个人的名次变化和最大

思路:

n^2枚举每两个人之间名次的变化对结果带来的影响就可以了

/* ***********************************************
Author        :devil
************************************************ */
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <unordered_map>
#include <string>
#include <time.h>
#include <cmath>
#include <stdlib.h>
#define LL long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define ou(a) printf("%d\n",a)
#define pb push_back
#define pii pair<int,int>
#define mkp make_pair
#define IN freopen("in.txt","r",stdin);
#define OUT freopen("out.txt","w",stdout);
using namespace std;
const int inf=0x3f3f3f3f;
const int mod=1e9+7;
const int N=1e2+10;
int n,ans,ans2;
pii a[N],b[N];
bool ok(pii x,pii y,pii z)
{
    if(x>z) swap(x,z);
    return x<y&&y<z;
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d%d",&a[i].first,&b[i].first),b[i].first+=a[i].first,a[i].second=-i,b[i].second=-i;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            int p=ok(a[i],a[j],b[i])+ok(a[j],b[i],b[j]);
            if(p==2) ans+=2;else ans2+=p;
        }
    printf("%d\n",ans+ans2/2);
    return 0;
}

 

以上是关于codeforces730D Award Ceremony(思路)的主要内容,如果未能解决你的问题,请参考以下文章

波卡生态首个云数据平台,Cere Network布局跨链NFT,数据市场迎来革新者?

AMA预告Cere Network:波卡生态的去中心化版“Snowflake”,云数据平台迎来革新者...

bzoj1910: [Ctsc2002] Award 颁奖典礼

如何设置 MySQL 查询?

Workday 的 Put_Student_Award_Item 抛出“提交的任务未经授权”

依网友要求发个修改award bios的方法(刷CPU微码)