兰州网站建设推广,网页设计模板html代码我的家乡,sae wordpress 域名,电子商务网站建设与管理课程心得问题描述#xff1a;ACM机场是一个本地机场#xff0c;对于大多数人来说#xff0c;机场不是他们的终点或起点#xff0c;而是中转站。机场有一个规划图。到达的大门在机场的北边#xff08;相当于空格#xff09;。出发的大门在机场的南边#xff08;也相当于空格…问题描述 ACM机场是一个本地机场对于大多数人来说机场不是他们的终点或起点而是中转站。机场有一个规划图。到达的大门在机场的北边相当于空格。出发的大门在机场的南边也相当于空格。两个正对着的大门距离相当于大门间的距离。每一个到达的大门只对应一个城市。每一个出发的大门也是这样。乘客到达的大门对应他们的起始城市而出发大门对应他们的目标城市。因为这个问题我们只需考虑转机的乘客。 转机的乘客会产生机场的交通堵塞。我们已经知道某两个城市之间的平均客流量。用这些信息有可能能降低交通堵塞。例如Cx城到Cy城的客流量大就可以将他们安排得很近甚至是对位。 因为花园和商店无法穿越所以到达门G1和出发们G3见图的距离为123。 你需要计算几个方案的客流指数。两个大门间的客流指数等于人数乘以距离。而总的客流指数就是所有门之间的客流指数之和。 输入格式 输入文件有多组测试数据。 最后一组只有一个0。 每组测试数据的输入有两部分。先是客流数据之后是机场布局。 数据开始时一个n(1n25)表示城市数。接下来n行每行表示一个城市的数据第i行先是一个整数表示起始城市再一个1到n的整数k表示目标城市数k对整数每对描述一个目标城市第一个数是城市编号j然后是乘客数目(最多500)从i到j的人数。 机场布局部分包括1到20个方案。用一个0结束。 一个方案包括3行。第一行一个数表示编号第二行是1-n的一个排列描述到达门对应的城市的排列第三行用同样的方式描述出发大门。 输出格式 对于每个测试数据输出包括一个表格表示方案编号和客流指数按照客流指数升序输出。若客流指数相同则编号小的排在前面。见样例。注意方案编号右对齐而客流指数左对齐。样例输出前面4个空格后面9个空格然后没有空格详见未格式化的试题。 样例输入 31 2 2 10 3 152 1 3 103 2 1 12 2 2011 2 32 3 122 3 13 2 1021 1 2 1002 1 1 20011 21 221 22 100 样例输出 Configuration Load2 1191 122Configuration Load2 3001 600 问题分析 模拟题没啥分析 代码 1 #includeiostream2 #includecstring3 #includecmath4 #includealgorithm5 using namespace std;6 7 int n; //城市数量 8 int city[26][26]; //城市之间人数矩阵 9 int cityFrom[26]; //到达的门分布
10 int cityTo[26]; //去向的门分布
11 int ans[21]; //机场分布方案对应的客流指数
12 int arrange[21]; //机场分布方案的编号输出的顺序
13 int Count; //测试的机场分布的数量
14
15 void Sort(){
16 int temp;
17 for(int i1;iCount;i){
18 for(int j1;jCount-i;j){
19 if(ans[j]ans[j1]){
20 tempans[j];
21 ans[j]ans[j1];
22 ans[j1]temp;
23 temparrange[j];
24 arrange[j]arrange[j1];
25 arrange[j1]temp;
26 }
27 }
28 }
29 }
30
31 int main(){
32 while(cinnn){
33 for(int i1;i20;i){
34 arrange[i]i;
35 }
36 memset(city,0,sizeof(city));
37 memset(cityFrom,0,sizeof(cityFrom));
38 memset(cityTo,0,sizeof(cityTo));
39 memset(ans,0,sizeof(ans));
40 int from,to; //出发城市编号、目的地城市编号
41 int m; //每行第3个数字目的地城市数量
42 for(int i1;in;i){
43 cinfrom;
44 cinm;
45 for(int j1;jm;j){
46 cinto;
47 cincity[from][to];
48 }
49 }
50 int c; //机场分布编号
51 Count0;
52 while(cincc){
53 for(int i1;in;i){
54 cincityFrom[i];
55 }
56 for(int i1;in;i){
57 cincityTo[i];
58 }
59 for(int i1;in;i){
60 for(int j1;jn;j){
61 if(city[cityFrom[i]][cityTo[j]]){
62 ans[c]city[cityFrom[i]][cityTo[j]]*(1abs(i-j));
63 }
64 }
65 }
66 Count;
67 }
68 coutConfiguration Loadendl;
69 Sort(); //排序
70 for(int i1;iCount;i){
71 coutarrange[i] ans[i]endl;
72 }
73 }
74 return 0;
75 } 转载于:https://www.cnblogs.com/orangecyh/p/10268829.html