世界上最难的一次C组
做了怎么久没有人AK。
个人认为这一次可以放在A组题上。
第一题:
Description
二维平面坐标系中有N个点。
从N个点选择3个点,问有多少选法使得这3个点形成直角三角形。
从N个点选择3个点,问有多少选法使得这3个点形成直角三角形。
我比赛时的做法:(30 Points)
三重循环枚举三个点。
后面请自行脑补。
正解:
斜率优化+二分
只有可爱的DH对了这道题目
第二题:
Description
你收到一项对数组进行排序的任务,数组中是1到N个一个排列。你突然想出以下一种特别的排序方法,分为以下N个阶段:
•阶段1,把数字1通过每次交换相邻两个数移到位置1;
•阶段2,用同样的方法把N移到位置N;
•阶段3,把数字2移到位置2处;
•阶段4,把数字N-1移到位置N-1处;
•依此类推。
换句话说,如果当前阶段为奇数,则把最小的未操作的数移到正确位置上,如果阶段为偶数,则把最大的未操作的数移到正确位置上。
写一个程序,给出初始的排列情况,计算每一阶段交换的次数。
•阶段1,把数字1通过每次交换相邻两个数移到位置1;
•阶段2,用同样的方法把N移到位置N;
•阶段3,把数字2移到位置2处;
•阶段4,把数字N-1移到位置N-1处;
•依此类推。
换句话说,如果当前阶段为奇数,则把最小的未操作的数移到正确位置上,如果阶段为偶数,则把最大的未操作的数移到正确位置上。
写一个程序,给出初始的排列情况,计算每一阶段交换的次数。
我比赛的时候就想到了线段树,但是很不幸的事情是我想错了。
后来我拿FFY的方法去打,结果答案错误。
第三题:运用数学方法推出连续两个,然后就能知道整条队列。
第四题:暴搜,正解仙人掌(业界毒瘤)。对了的最短才4000BYTE呢
第四题:暴搜,正解仙人掌(业界毒瘤)。对了的最短才4000BYTE呢
这次比赛我把时间全部死磕在第二题上,导致了第三第四题没看。最后一分钟我才交了一个INF上去。
下一次时间分配要更加合理!