省赛前的刷题训练(三)
省赛刷题训练(三)
[Goldbach`s Conjecture](https://vjudge.net/contest/283110#problem/J)
LightOJ 1259
验证任何一个大于2的偶数都已可表示成两个素数的和。第一次只用了is[]数组,这样的话需要多找一些不必要的数对,同时也会超时。用了prime[]数组后,就可以只遍历素数对了。
1 |
|
POJ 1019
是一个思维题,我们需要记录的是每个组中有多少个数字,以及前i组中一共有多少个数字,当我们输入一个位置pos之后,可以判断出它在哪个组中,然后判断出它在这个组中的某个数字num当中,算到这,我们已经知道了在这个组中直到num一共有多少位数字sum,同时也知道了pos这个位置在这个组中的具体位置n,那么用最后的公式就可以求出来最终的答案。
1 |
|
山东省第三届省赛C题
反向建图,需要我们求出来在最短路径中离0点最近的点,同时下标最小。反向建图时,我们先保存一下与起点相连的点。最后求出最短路径之后,在验证一下这个点可不可以是最短路径上的点。明明记得反向建图,但是还是在add时没有写对,让我一度怀疑链式前向星的问题。注意输出-1的情况,同时求出的这个点恰好就是n + 1点,说明这个图中的最短路径只有 0 点和 n + 1点,因此就把此时的情况输出为0,剩下的就是普通情况了。
1 |
|
HDU 1896
扔石子游戏,只能扔奇数块的石头,在某一个位置可以扔那个位置上的石头,扔的距离由你输入的决定,一块石头扔出去之后会到达另一个位置。问最后石头到达的最远的位置是什么。优先队列模拟。
1 |
|