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

首頁 > 學院 > 開發設計 > 正文

1056. Mice and Rice (25)

2019-11-11 00:24:37
字體:
來源:轉載
供稿:網友

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

2. 思路:

題意:不得不說,每個單詞都認識,讀了n遍就是沒讀懂題(攤手)。還是對照著輸入說吧。第一行兩個數分別為總人數,一個組的pk人數。第二行對應著編號從0~N-1的參賽者在游戲里獲得的分數(可以這么理解)。第三行對應著分組順序。即 6 0 8(參賽者編號)為一組,6號的分數為19, 8號晉級。類似地,7 10 15一組, 7號晉級。9 1 4一組,9號晉級。2 3一組(不滿一組分在一組),3號晉級??偣?個人晉級,那么未晉級的排名都是5.即未晉級排名是晉級人數+1.用算法模擬上述過程就好了。用vector保存每次晉級的編號。直到vector只有1個。嗯,讀懂題比寫代碼還難。

3. 源碼(已AC):

#include<iostream>#include<vector>using namespace std;int main(void){	//freopen("in.txt", "r", stdin);	int np, ng;//總人數, 每組人數	cin >> np >> ng;	vector<int> wgt(np), list(np), rank(np);//分別為分數, pk的人員編號, 排名	for (int i = 0; i < np; i++)		cin >> wgt[i];	for (int i = 0; i < np; i++)		cin >> list[i];	while (list.size() > 1)//pk人數=1跳出循環	{		int now_rank = list.size() / ng + 1;//目前的排名		if (list.size() % ng > 0)//有多余的要+1			now_rank++;		vector<int> pro;//存儲晉級的人員		int i = 0;		while (i < list.size())		{			int max = -1;			int m_id;			for (int j = 0; j < ng && i < list.size(); j++, i++)//找出晉級人員			{				rank[list[i]] = now_rank;//排名賦值				if (wgt[list[i]] > max)				{					max = wgt[list[i]];					m_id = list[i];				}			}			pro.push_back(m_id);		}		list = pro;	}	rank[list[0]] = 1;//第一名	for (int i = 0; i < np; i++)	{		if (i == 0)			cout << rank[i];		else			cout << ' ' << rank[i];	}	cout << endl;	return 0;}參考自:http://blog.csdn.net/yangsongtao1991/article/details/43417363
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万宁市| 镇康县| 二连浩特市| 洛宁县| 柘荣县| 澜沧| 山东省| 靖江市| 白银市| 滦南县| 秦皇岛市| 商城县| 界首市| 黑河市| 闻喜县| 安平县| 名山县| 厦门市| 南木林县| 秦安县| 洮南市| 湘潭市| 崇礼县| 新津县| 镇安县| 禄劝| 响水县| 通城县| 红原县| 莆田市| 霸州市| 开江县| 潼关县| 海宁市| 武威市| 佛教| 大连市| 合水县| 曲麻莱县| 尖扎县| 罗江县|