国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

1080. Graduate Admission (30)

2019-11-08 03:11:08
字體:
來源:轉載
供稿:網友

1. 原題: https://www.patest.cn/contests/pat-a-PRactise/1080

2. 思路:

題意:結構體排序。按照總分->入學分數排序。剛開始想復雜了,以為學校先錄取第一志愿的。其實不管幾志愿,一視同仁,從高分開始錄。所以,根據學生分數排名,從第一個學生去判斷他的志愿學校能否錄取就可以了,不需要考慮其他的。思路:關鍵之處是當多個排名一致時,無論是否超額,都錄取。已AC

3. 源碼

#include<iostream>#include<algorithm>//使用sort函數#include<vector>using namespace std;struct Node{	bool Operator<(const Node &b) const//重載比較運算符	{		if (sum != b.sum)			return sum > b.sum;		else			return ge > b.ge;	}	int id, ge, gi, sum;//分別為學生編號, 入學分數,面試分數,總分};const int Max = 40000 + 5;//最大學生數目int wish[Max][6];//學生志愿表int main(void){	//freopen("in.txt", "r", stdin);	int N, M, K;	scanf("%d %d %d", &N, &M, &K);	vector<int> quota(M);//學校錄取名額	vector< vector<int> > result(M);//學校錄取結果	vector<Node> stu(N);//每個學生信息	for (int i = 0; i < M; i++)//讀入數據		scanf("%d", "a[i]);	for (int i = 0; i < N; i++)	{		stu[i].id = i;		scanf("%d %d", &stu[i].ge, &stu[i].gi);		stu[i].sum = stu[i].ge + stu[i].gi;		for (int j = 0; j < K; j++)			scanf("%d", &wish[i][j]);	}	vector<Node> origin = stu;//保存原始信息	sort(stu.begin(), stu.end());//降序排序	for (int i = 0; i < N; i++)//判斷并錄取	{		for (int j = 0; j < K; j++)		{			int wishschool = wish[stu[i].id][j];//志愿學校			if (quota[wishschool] > 0)//還有名額			{				result[wishschool].push_back(stu[i].id);				quota[wishschool]--;				break;			}			else//無名額,看該學生是否和最后錄取的分數都一致,是則錄取			{				int last = *result[wishschool].rbegin();				if (stu[i].sum == origin[last].sum && stu[i].ge == origin[last].ge)				{					result[wishschool].push_back(stu[i].id);					break;				}			}		}	}	for (int i = 0; i < M; i++)//輸出	{		if (!result[i].empty())		{			sort(result[i].begin(), result[i].end());			for (int j = 0; j < result[i].size(); j++)			{				if (j == 0)					printf("%d", result[i][j]);				else					printf(" %d", result[i][j]);			}		}		printf("/n");	}	return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 扎兰屯市| 临夏县| 思茅市| 安陆市| 重庆市| 邵武市| 张家港市| 沽源县| 册亨县| 邢台县| 长阳| 子长县| 陆丰市| 和顺县| 大名县| 凌海市| 赣榆县| 玉田县| 刚察县| 冀州市| 许昌县| 文昌市| 梅州市| 四子王旗| 门头沟区| 礼泉县| 邵阳县| 招远市| 玉田县| 高青县| 宜良县| 海门市| 龙泉市| 普兰店市| 肥东县| 清河县| 民勤县| 屏东县| 乐亭县| 乌拉特后旗| 芮城县|