摘要:
pro:给定N个数的数组a[],其中一个数X的出现次数大于N/2,求X,空间很小。 sol:不能用保存数组,考虑其他做法。 由于出现次数较多,我们维护一个栈,栈中的数字相同,所以我们记录栈的元素和个数即可,如果新加入一个数与栈中数不同,则弹出一个元素(tot--),否则加入,最后保留在栈中的就是答案 阅读全文
摘要:
题意:给定N个点,Q次询问,问当前点知否在N个点组成的凸包内。 思路:由于是凸包,我们可以利用二分求解。 二分思路1:求得上凸包和下凸包,那么两次二分,如果点在对应上凸包的下面,对应下凸包的上面,那么在凸包内。 二分思路2:求得凸包(N),划分为N-2个三角形,二分求得对应位置,验证是否在三角形内。 阅读全文
摘要:
pro:N个数排成一圈。一次操作为,每个位置的数+=L*左+R*右,保留x为整数。 问S轮操作后每个位置的值。 N<=1000,S<=2^30,x<=9 。 sol:不难想到矩阵乘法,但是N为1000,显然普通的N^3矩阵乘法的复杂度不能AC。 不难发现这是经典的循环矩阵(第二行为第一行右移一格.. 阅读全文