2017多校-6

来源:互联网 发布:淘宝店铺换身份证 编辑:程序博客网 时间:2024/06/05 06:14

Inversion
http://acm.hdu.edu.cn/showproblem.php?pid=6098
用二维数组存a中的数和下标,从大到小排个序,然后枚举判下表是否为i的倍数

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;typedef long long ll;int cmp(const void *a,const void *b){    int *c = (int *)a;    int *d = (int *)b;    return *d - *c;}ll a[100000][2];int main(){    ll b[100000];    int n,i,t,j;    scanf("%d",&t);    while(t--)    {        scanf("%d",&n);        a[0][0]=0;        a[0][1]=0;        for(i=1;i<=n;i++)        {            scanf("%I64d",&a[i][0]);            a[i][1]=i;        }        qsort(a,n+1,sizeof(a[0]),cmp);        for(i=2;i<=n;i++)        {            for(j=0;j<n;j++)            {                if(a[j][1]>=i)                {                    if((a[j][1]%i)!=0)                    {                        b[i-2]=a[j][0];                        break;                    }                }                else if(a[j][1]<i)                {                    b[i-2]=a[j][0];                    break;                }            }        }        for(i=0;i<n-1;i++)        {            printf("%I64d",b[i]);            if(i!=n-2)                printf(" ");        }        printf("\n");    }    return 0;}

Classes
http://acm.hdu.edu.cn/showproblem.php?pid=6106
简单题

#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>using namespace std;int main(){    int t;    scanf("%d",&t);    while(t--)    {        int n;        scanf("%d",&n);        int max1=0;        while(n--)        {            int a,b,c,ab,bc,ac,abc;            scanf("%d%d%d%d%d%d%d",&a,&b,&c,&ab,&bc,&ac,&abc);            ab=ab-abc;//只报ab课的人数            bc=bc-abc;//只报bc课的人数            ac=ac-abc;//只报ac课的人数            a=a-ab-ac-abc;//只报a课的人数            b=b-ab-bc-abc;//只报b课的人数            c=c-ac-bc-abc;//只报c课的人数            if(a<0||b<0||c<0||ab<0||bc<0||ac<0||abc<0)//判断数据是否有错            {                continue;            }            int s=0;            s=a+b+c+ab+bc+ac+abc;            max1=max(max1,s);        }        printf("%d\n",max1);    }    return 0;}
原创粉丝点击