博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jobdu 1005
阅读量:5171 次
发布时间:2019-06-13

本文共 1863 字,大约阅读时间需要 6 分钟。

地址:

题意:n个学生,m个学校,每个学校q[i]个名额。主旨是学生选学校。每个学生有k个选择,选择优先权是从高到低,每个学生有两个分数ge和gi,如果(ge+gi)/2比较高,则排名    高,如果相等则比较ge,如果仍然相等,则排名相等。学生按照排名先后选择学校,轮到该学生选择学校时,如果当前选择的学校名额已满,就看选择的下一个学校,以此类    推,如果所有学校都满,则无学校可选。特殊情况:当同等排名的学生且选到相同学校,如果该学校名额不够分配给同等排名的学生,会破格录取这些学生。

mark:该题用C++STL的set很方便的解决问题。set的有关说明

代码:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long LL;typedef struct{ int num; int ge,gi; int pre[5];}ss;int n,m,k;int q[110];ss s[40010];set
vv[100];set
::iterator it;bool vst[40010];int cmp(const void *a, const void *b){ ss *aa = (ss *)a, *bb = (ss *)b; if(aa->ge+aa->gi == bb->ge+bb->gi) { if(aa->ge == bb->ge) return aa->num - bb->num; return bb->ge - aa->ge; } return bb->ge+bb->gi-aa->ge-aa->gi;}int main(int argc, char **argv){ int i,j; while(cin >> n >> m >> k) { for(i = 0; i < m; i++) { vv[i].clear(); cin >> q[i]; } for(i = 0; i < n; i++) { s[i].num = i; cin >> s[i].ge >> s[i].gi; for(j = 0; j < k; j++) cin >> s[i].pre[j]; } qsort(s, n, sizeof(ss), cmp); memset(vst, 0, sizeof(vst)); for(i = 0; i < n; i++) { if(vst[i]) continue; for(j = 0; j < k; j++) { if(!q[s[i].pre[j]]) continue; vv[s[i].pre[j]].insert(s[i].num); if(q[s[i].pre[j]] > 1) { q[s[i].pre[j]]--; break; } int p = i+1; while(s[i].ge == s[p].ge && s[i].ge+s[i].gi == s[p].ge+s[p].gi) { for(int x = 0; x < k; x++) { if(!q[s[p].pre[x]]) continue; if(s[p].pre[x] == s[i].pre[j]) { vv[s[i].pre[j]].insert(s[p].num); vst[p] = 1; } else break; } p++; } q[s[i].pre[j]]--; break; } } for(i = 0; i < m; i++) { j = 0; for(it = vv[i].begin(); it != vv[i].end(); it++) { if(j++) cout << ' '; cout << *it; } cout << endl; } } return 0;}

 

转载于:https://www.cnblogs.com/andre0506/archive/2013/05/27/3102841.html

你可能感兴趣的文章
Android Studio 自定义字体显示英文音标
查看>>
登录首页时报错:java.lang.IllegalArgumentException (不合法的参数异常)
查看>>
【深度解析】Google第二代深度学习引擎TensorFlow开源
查看>>
block
查看>>
作业三——改进目标
查看>>
【校园电子书城】测试及部署
查看>>
WAMP(Windows+Apache+Mysql+PHP)环境搭建
查看>>
golang调用c++的dll库文件
查看>>
知识点篇:7)企业标准体系制定要求
查看>>
php’s explode() 函数
查看>>
Spring AOP的实现思想之动态代理
查看>>
VSCode设置中文语言
查看>>
Kafka 几个实现细节
查看>>
UWP学习目录整理
查看>>
Centos7-安装Gradle4.10
查看>>
四则运算1
查看>>
Web API框架学习——消息管道(二)
查看>>
【转】请求处理机制其二:Django中间件的解析
查看>>
如何让Div层悬浮在Flash Object对象之上(转载)
查看>>
Visual Studio Code compile error - launch.json must be configured...
查看>>