概述
A题
1-1e18的数
给一个LR区间还有一个S,找一个区间使得区间内的所有数的抑或小于等于S,求这个区间的最大长度。
LR都是超大的数,不可能遍历啊,只能找规律。
列了前面一些,发现偶数和相邻的一个奇数的抑或等于1,那么以任意偶数开头的四个相邻的数抑或起来就是0,也就是可以忽略了。
如果R是奇数,那么直接从R开始往前删掉4k个数,然后剩下的数暴力枚举。
如果R是偶数,那么从R-1的位置开始往前删掉4k个数,然后剩下的数和最后一个R放在一起暴力枚举。
如果区间长度小于5直接暴力枚举。
代码:(下次再补)
C题
也是1-1e18的数
给定一个区间,然后判断这个区间里素数的个数是不是小于区间长度的三分之一。
首先需要推出一个结论。一个常识就是素数越往后是越来越分散的。那么打表出来发现前100个数就只有不到30个素数,那么也就是所区间长度大于100的直接判断就行了。然后区间长度小于100的可以用区间筛筛出素数暴力判断。为 了保险起见还把100改成了10000。最后是一发过了。判断条件为100的没有提交。
代码(下次再补)
F题:
给定一个X,找到一个- 5000 <= a,b,c <= 5000 使得,a3+b3+c3 = x
首先先暴力枚举a,b a从0-5000,b从-5000 - 5000,计算a3+b3,并用结构体存起来,a,b的值也存起来。然后按值排序。
最后枚举c从-5000到5000,然后去二分查找这个值又没有枚举到,有就输出,否则impossible。
但是这题坑的是,结构体排序的时候就已经超时了,所以代码不可能通过的,但是,题目输入只有200个。可以打表先把所有的答案找出来,然后提交O(1)的
代码。
代码:(以后再补)
最后
以上就是听话大象为你收集整理的2019 ICPC 徐州站 部分题解的全部内容,希望文章能够帮你解决2019 ICPC 徐州站 部分题解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复