考试时间:120分钟
1. 平行四边形
给定A,B,C三点,找出对应的D,E,F,使得ABDC、ABCE,AFBC皆为平行四边形
输入:A,B,C三点平面座标(x,y)
输出:D,E,F三点平面座标(x,y)
解:基本输入输出、高中数学
2. 违停脚踏车与停车位
地图上会有n个停车格与m个违停脚踏车
每个停车格i会有一个容量ci,代表最多能停放几辆脚踏车
将每一台违停脚踏车移动到离它最近的停车位
“距离”定义为 d=|x1-x2|+|y1-y2|
如果该停车位的容量满了,就移动到第二近的停车位
如果有两个最近的停车位,移动到x座标比较小的那个
如果x座标也一样,移动到y座标比较小的那个
保证所有停车格的容量总和一定比违停车辆数还多
输入:一个整数n,接下来n行数组为n个相异停车位的座标与容量(xi,yi,ci)
一个整数m,接下来m行数组为m个相异的违停脚踏车座标(xi,yi)
n≦10, m≦100000, -10000≦x,y≦10000
输出:输入的车辆顺序即为移动车辆的顺序
跟据此顺序输出各停车格最终停放的脚踏车数量
解:条件判断、模拟(不须优化)
3. 朋友距离 欺负BANG缘人没朋友喔
给定n(≦11)个人,人名以大写字母的字典序前n个字母表示(A,B,C...)
给定m个朋友关系,将n个人排成一列
请最小化队列之中是朋友的两人之间距离的最大值
举例:假设现在有5个人,其中AB,BE,CE为朋友
队伍ABCDE之中,AB的距离为1,BE的距离为3,CE的距离为2
则此例中的朋友距离最大值为3
输入:第一行为两个整数n,m
接下来m行为两个大写字母X Y(中间空一格),表示此两人互为朋友
95%测资:N≦10
5%测资:N≦11
输出:第一行请输出最大朋友距离的最小值(整数)
第二行请输出具有此最小值的队伍(字母间空1格),以字典序最前者为解
提示:N≦11的测资请使用剪枝,也就是当你发现目前的排法之朋友距离最大值
已经超过你目前计算过的最小值时,就不需要继续尝试这个排法的后续了
解:递回,暴搜会得95分 (题目已经告诉你全部要怎么做了)