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

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

1056. Mice and Rice (25)

2019-11-11 01:44:06
字體:
來源:轉載
供稿:網友

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號晉級。總共4個人晉級,那么未晉級的排名都是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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 承德市| 汽车| 高密市| 芦溪县| 香格里拉县| 电白县| 沂水县| 门源| 济南市| 马尔康县| 广灵县| 怀远县| 广昌县| 鄂伦春自治旗| 永州市| 宁远县| 漠河县| 宁陵县| 锦州市| 禹城市| 洛川县| 友谊县| 新干县| 广丰县| 大荔县| 邮箱| 鹰潭市| 离岛区| 朝阳区| 特克斯县| 湖州市| 志丹县| 绥阳县| 集安市| 济阳县| 普安县| 绥德县| 南宁市| 噶尔县| 子长县| 麻城市|