A
给出起始时刻和时间间隔,求终点时刻。选取元年1月1日0时0分0秒为原点,将起始时刻转化为以该原点为基准的t1秒,t2=t1+t,将t2再通过取模得到天数和时分秒,天数通过取分闰年平年及每月月份来确定年月日。
B
模数的范围为2^60,故两数相乘即数据越界,所以不能直接用long long来进行快速幂。
两个2^60范围的数相乘有两种方法,一是两个大数的乘法,二是将第二个数转化为二进制每一位与第一个数边乘边取模,(类似大数幂窗口算法)。
C
给出的为跑道个数和每个时刻请求降落及起飞的飞机数量。因为数据很小,可以直接一个一个单位时间的模拟。每个时刻,记录输出所需要的数据包括等待时间和跑道忙碌时间。全部模拟完统计对应的数据输出即可
D
DP:给出底层的块数n,对于每个上层的块数至少比下层少m。
状态转移方程为n^2:f(n)=m*f(n-m)+(m-1)*f(n-m-1)+...+1,推导可得复杂度线性公式F(n)=2F(n-1)-F(n-2)+kF(n-k)-(k-1)F(n-k-1)。
E
(1)先求[1,a]与[1,b]中取出x,y使得gcd(x,y)=k的对数f(a,b)。
gcd(x, y)=k 问题就转化为了求[1,a/k] 和 [1,b/k]间互质对数。可以把a设置为小的那个数, 那么以y>x来保持唯一性。
1. y <= a , 那么对数就是 1~a的欧拉函数的累计和
2. y >= a , 可以用容斥原理,把y与1~a互质对数问题转换为y的质数因子在1~a范围内能整除的个数(质数分解和容斥关系),dfs即可。
(2)再根据容斥可得,[a,b]和[c,d]的符合题意对数为f(b,d)-f(a-1,d)-f(b,c-1)+f(a-1,c-1)。
F
解法一: spfa网络流算法。将m个人拆为2m个点,在与源点汇点相连。流量都为1,费用顺向为-1,跑spfa的最小费用流。
解法二:贪心思想。对于每个时刻为,统计它被几个人同时占用,若大于机器的数量,则将结束使用时间最远的那些多余的人剔除。
G
双向链表:每填满一个水坑,将其左右两侧链接,同时宽度增加给两侧低的一边。直到最后所有水坑都填充完。
H
题目要求n个凸包的交面积。先考虑两个凸包的交区域,实际上为即要求出第二个凸包每条边将第一个凸包通过半平面划分后的区域。每新加入一个凸包,考虑它与现在交面积凸包的交面积,直到第n个处理完毕。通过叉乘法凸包面积公式即可求出最终答案。
I
给出的LOVE ID格式为<username>@<hostname>[/resource]。实际上,对于每个部分按照给出的要求判断即可。
主要陷阱:@有且仅有一次,/最多出现一次,一旦出现其后必须跟一个resource。username,hostname用.隔开的每个部分以及resource的格式都为1~16个长度的由字母数字和下划线组成的连续字串。
J
由三角形面积计算公式(x1y2-x2y1+x2y3-x3y2+x3y1-x1y3)/2可知面积的奇偶性只与各点坐标与模4后的余数有关。例如:当除x1外其他坐标不变时,若x11与x12模4同余,则其最终的面积的奇偶性是相同的。所以只要将x1~y3从0~3都取遍,寻找面积可以为偶数的坐标组合,再将该三个坐标都进行移动4的倍数的拓展来求拓展的方法数。最后减去同一直线上的所有情况即为最终答案。