我是靠谱客的博主 听话大象,最近开发中收集的这篇文章主要介绍2019 ICPC 徐州站 部分题解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 徐州站 部分题解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部