国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 炉霍县| 金山区| 无为县| 齐齐哈尔市| 淮南市| 宁武县| 布尔津县| 伊春市| 安岳县| 德清县| 全州县| 宕昌县| 慈溪市| 郓城县| 蓬安县| 颍上县| 余庆县| 玉树县| 肃北| 鄂伦春自治旗| 陆丰市| 武隆县| 新竹市| 博罗县| 定襄县| 常宁市| 康平县| 茶陵县| 桃源县| 巴彦淖尔市| 乌拉特前旗| 平邑县| 云龙县| 屯门区| 石柱| 清镇市| 高邮市| 托里县| 和田县| 建阳市| 武义县|