摘要:
题意:平面上有一些点,现要求用一些圆心在x轴上的圆(雷达)来覆盖这些点,问最少需要多少雷达。分析:我的解法是把点按横坐标排序,然后把每个点的雷达尽量往右放,然后每放一个雷达都要保证雷达左面的岛都被雷达所覆盖。所以我们可以按一个点靠右放完雷达后,再根据后面的在雷达位置左面的点,把雷达向左移。一个雷达经过了移的过程,就一定是能覆盖左面的岛。所以排好序后,只需O(n)。注意:unique函数的返回值是结尾指针,所以可以用被注释掉两行的方法来获得数组长度。标准方法是把每个点的放置雷达的区间求出,然后按照区间排序。排好序后,从左至右看,当发现下一个区间的起始点大于前面所有区间的最小结束点的时候,答案加一 阅读全文
摘要:
本来想二分,后来发现一个函数就解决了。 阅读全文
摘要:
本题中最多5个命题变项:p,q,r,s,t 每个有0,1两种取值,所以总共32种情况,分别枚举即可。 对于每种情况,计算表达式的值,如果有结果为0的则输出not 难点在于如何计算表达式的值,我们采用递归的方法,把表达式分为一或两个子表达式,并把参数end(本表达式的结束位置)传给上一层,一遍上一层获取第二个子表达式的起始位置。最后通过两个子表达式的结束位置,得到整个表达式的结束位置。 en... 阅读全文
摘要:
最大的难点在于读题,全年十二个月,有8个连续的五个月,1~5,2~6,…… 确定了s和d,8次报告中每次报告有五种选择(i次s,(5-i)次d,i = 0~4),在这五种情况中必然是选择最优的,即亏损且亏损值最小。假设我们按某种顺序安排好了这五个月哪些是亏,哪些是盈。我们就可以让12个月以此5个月为循环构成。然而想要让d在12个月中出现得尽量少,就必须在安排5个月的时候把s排在前面,d排在后面。... 阅读全文
摘要:
本题的图与其他题稍有不同,本题以左下角为(0,0)点,列号对应x,行号对应y。 完全模拟即可。 阅读全文