THU2015 fall 1-1 Team
来源:互联网 发布:灵格斯for mac 编辑:程序博客网 时间:2024/04/30 08:42
THU2015 fall 1-1 Team
描述
教练员A、B和C将要从编号为1到n的队员中挑选自己的队员。为公平起见,每个教练都根据自己的喜好程度将队员排序;你负责根据以下规则为他们分配队员。
你拿到的数据是a、b、c三个数组,表示三个教练对队员的喜好程度排序,每个数组都是数字1到n的一个排列,下标越小表示教练越喜欢该队员。你的分组规则是,从还未被分配的队员中找一个教练A最喜欢的队员分到A组;然后,在未分配的队员中分配教练B最喜欢的队员到B组;然后是教练C;再是教练A、B......依次类推直到所有队员分配完毕。
现在队员k希望知道自己被分配给哪位教练,请你来告诉他。
输入
共5行。
第1行包含一个整数n。
第2至4行依次是数组a、b和c,每行都是整数[1, n]的一个排列。
第5行包含一个整数k。
输出
仅一个字符,A、B或C,表示队员k被分配给哪位教练。
输入样例1
31231231233
输出样例1
C
输入样例2
51234513542543214
输出样例2
B
限制
1 <= n <= 500,000
1 <= k <= n
时间:1 sec
空间:256 MB
提示
一级提示
大体上,1 sec内,O(n)的算法可以通过n = 10,000,000规模的数据,O(nlogn)通过500,000规模,O(n^2)通过5,000规模。
本题等一些复杂度是O(n)的题目受限于scanf(“%d”, ...)的读入速度,但又不希望通过读取二进制文件等不直观的方式增加同学们的负担。
代码如下:
#include <stdio.h>#include <string.h>const int SZ = 1 << 20; //提升IO buff struct fastio{char inbuf[SZ];char outbuf[SZ];fastio(){setvbuf(stdin, inbuf, _IOFBF, SZ);setvbuf(stdout, outbuf, _IOFBF, SZ);}}io;#define N 500001int dp[4][N];int mark[N]; // 0:未选 1:已选char ret[N];void team(int n, int *mark){int a = 1, b = 1, c = 1;int t;for (int i = 0; i < n; i++){t = i % 3;switch (t){case 0:while (mark[dp[t][a]] == 1) a++;mark[dp[t][a]] = 1;ret[dp[t][a]] = 'A';break;case 1:while (mark[dp[t][b]] == 1) b++;mark[dp[t][b]] = 1;ret[dp[t][b]] = 'B';break;case 2:while (mark[dp[t][c]] == 1) c++;mark[dp[t][c]] = 1;ret[dp[t][c]] = 'C';break;}}}int main(){int n;int k;scanf("%d", &n);for (int i = 0; i < 3; i++){for (int j = 1; j <= n; j++)scanf("%d", &dp[i][j]);}memset(mark, 0, n);team(n, mark);scanf("%d", &k);printf("%c\n", ret[k]);return 0;}
0 0
- THU2015 fall 1-1 Team
- THU2015 fall 1-3 Interview
- THU2015 fall 1-2 Company
- THU2015 fall 2-4 Queap
- THU2015 fall 2-3 Rebuild
- THU2015 fall 2-2 Train
- 2017 Fall Software Engineering Learning (1)
- 《CS PhD Journey》Chapter 1 Fall 2017
- MIT6.828 Fall 2012 Lab 1: Booting a PC
- Team Explorer 使用教程1
- (RHCE)1 team/bridge配置
- Tales of Mystery and Imagination——1、The Fall of the house of Usher
- ResEd v1.1.3.1 by RadASM Team
- Project Management Orientation - Team Management(Concepts-1)
- 微软Team Foundation项目管理员 (1)
- 微软Team Foundation项目主管 (1)
- 微软Team Foundation项目主管 (1)
- CC Team project Live Test 1
- GeoServer发布影像 去黑边
- html name 和 id 区别
- 如何在xcode中上使用OC无缝调用Swift
- java自定义异常处理
- Torch7平台学习_CmdLine()总结
- THU2015 fall 1-1 Team
- 【总结】10月训练赛第6场
- discuz开启门户的功能
- sql常见笔试题
- 关于编写QT国际化程序中需要注意的问题
- 各种细节(RP++)
- Linux 用makefile编译程序
- Android Studio使用HttpClient相关类库
- SVM松弛变量