poj2379 结构体复杂应用
来源:互联网 发布:电脑动画制作软件 编辑:程序博客网 时间:2024/04/30 03:23
题目给的数据不是按照时间来的,而是打乱的,需要先进行排序
输入数据后进行一次快排,结构体快排需要熟练
然后进行统计各个队的成绩,注意可能会A了之后还会A或者WA一次
之后再对统计结构进行排序:按照做题数目-> 时间 -> 序号 输出
#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;struct str{ int c,p,t,r;}a[1005];struct strans{ int tn,pos; int pro[25]; int tag[25]; int sum;}b[1005];int cmpa(const void *x,const void *y){ struct str *A=(struct str *)x; struct str *B=(struct str *)y; if(A->c==B->c){ if(A->p==B->p) return A->t-B->t; return A->p-B->p; } return A->c-B->c;}int cmpb(const void *x,const void *y){ struct strans *A=(struct strans *)x; struct strans *B=(struct strans *)y; if(A->sum==B->sum){ if(A->tn==B->tn) return A->pos-B->pos; if(A->tn!=0&&B->tn!=0) return A->tn-B->tn; return B->tn-A->tn; } return B->sum-A->sum;}int main(){ int N,C; scanf("%d%d",&C,&N); for(int i=1;i<=N;i++) scanf("%d%d%d%d",&a[i].c,&a[i].p,&a[i].t,&a[i].r); qsort(a+1,N,sizeof(a[0]),cmpa); memset(b,0,sizeof(b)); for(int i=1;i<=C;i++) b[i].pos=i; for(int i=1;i<=N;i++){ if(a[i].r&&b[a[i].c].tag[a[i].p]==0){ b[a[i].c].tn+=a[i].t+b[a[i].c].pro[a[i].p]*1200; b[a[i].c].tag[a[i].p]=1; b[a[i].c].sum++; } else b[a[i].c].pro[a[i].p]++; } qsort(b+1,C,sizeof(b[0]),cmpb); for(int i=1;i<C;i++) printf("%d ",b[i].pos); printf("%d\n",b[C].pos); return 0;}
0 0
- poj2379 结构体复杂应用
- poj2379
- poj2379 排序
- c# 平台调用 复杂结构体 指针
- C++复杂结构体的C#封装
- C#调用DLL复杂函数结构体
- 【C++ -> 容器初始化】结构体嵌套复杂结构初始化
- 排序系列 poj2379
- 复杂分支结构逆向
- Hive复杂结构表示
- malloc_free复杂结构
- 01 复杂系统结构
- Java复杂选择结构
- 动态大系统方法导论(四)-结构可控性及其在复杂网络中的应用
- 为什么判断结构体相等要这么复杂呢?
- 采用C语言序列化复杂结构体的方法。
- C语言程序设计教程笔记_复杂数据类型_结构体
- python调用dll, 复杂结构体做参数。
- linux kernel 中的链表(二)
- 为什么用Java(转载知乎)
- 一天一命令 <mkdir\rmdir\rm\mv>
- git远程仓库不完全的解决方法
- Hadoop学习资料
- poj2379 结构体复杂应用
- JavaSE学习笔记_17:Java-Math&Random类
- Android中EditText输入字数统计和限制
- Fibonacci numbers
- Activity之间使用Intent和Bundle传值的区别
- ios定位
- 多重继承
- SODBASE实时大数据基础(一):实时同步Mysql数据库到Kafka
- 小小ARC造福无数码农