A.zx学长与失落城
使用筛法将小于1e6的素数输出,注意格式输出即可.
下面是标程代码
#include
#include
#include
#include
B.zx学长与城池守卫
O(n2)O(n^2)O(n2)枚举所有组合,素数判断加简单模拟即可得出答案.先使用筛法将素数筛出,已便后续判断.
下面是标程代码
#include
#include
#include
#include
C.zx学长与素数国王
先用筛法将素数筛出,然后对于prime数组进行二分查找两个端点l,r,即可得出三个答案.
下面是标程代码:
#include
#include
#include
#include
D.zx学长与游戏神特图
依据题意,我们要找每个数的最小非1因子,显然无论是欧拉筛还是埃氏筛,都可以完成这个任务,(因为欧拉筛会得出每个数的最小质因子,埃氏筛可以得出每个数的所有因子),标程使用埃氏筛.
下面是标程代码:
#include
#include
#include
#include
E.zx学长与王国保卫战
首先我们通过筛选,我们发现前2e4个数中有2e3左右的素数,提示我们使用O(n2)O(n^2)O(n2)预处理,然后可以O(logn)O(logn)O(logn)查询,具体做法是,如果我们定义dp[l][r]dp[l][r]dp[l][r]为区间[pl,pr][p_l,p_r][pl,pr](分别表示第l和第r个素数)中符合要求的数对的数量,那么我针对一个素数对(px,py)(p_x,p_y)(px,py)如果有px+py−1p_x+p_y-1px+py−1为素数,那么这个素数对,将会在dp[1→x][y→n]dp[1\rightarrow x][y\rightarrow n]dp[1→x][y→n]的范围内提供一个有效对.这时我们发现,其是一个以(1,py)(1,p_y)(1,py)为左上角(px,n)(p_x,n)(px,n)为右下角的矩形范围,所以针对每个符合要求的素数对,可以使用二维差分进行O(1)O(1)O(1)修改,然后然后进行二维前缀和的求取(O(n2)O(n^2)O(n2)),此时我们完成O(n2)O(n^2)O(n2)的预处理,得到dpdpdp二维数组,然后针对每次查询,我们都进行二分操作,查询在那两个素数范围内,输出相应的dpdpdp值即可(筛选素数时筛到4e4!,因为要判断p1+p2−1p_1+p_2-1p1+p2−1是否为素数).
下面是标程代码:
#include
#include
#include
#include
F.zx学长与神庙传说
我们不妨定义数组dp[i]dp[i]dp[i],如果dp[i]==1dp[i]==1dp[i]==1我们就认定当数字是iii时,先报数的人将会取胜,否则如果dp[i]==0dp[i]==0dp[i]==0,则意味着,先报数的人会输掉,那么我们如果可以求出当前数nnn的dpdpdp值,即可得出zx学长可不可以赢,那么我们可以使用搜索,对于一个数iii来说,经过一次喊数后,它可以转移成i−pi-pi−p,其中ppp是所有小于iii的素数,那么在iii所有的可转移状态中如果有某个pkp_kpk它的dp[i−pk]==1dp[i-p_k]==1dp[i−pk]==1,就是说
转移到这个数字是先报数的必输,那么iii局面的先手,也就是先报数的人,将可以报数pkp_kpk,令局面进入先手必败态(下一回合的先手就是这个局面先手的敌人),所以iii局面是一个先手必胜态,即dp[i]==1dp[i]==1dp[i]==1,而试想一下,如果所有的可转移局面都没有一个值等于1,也就是说,对于iii状态的先手,他无论报什么数,都会进入先手必胜态,所以iii局面就是先手必败态,即dp[i]==0dp[i]==0dp[i]==0(有兴趣的同学可以了解一下博弈论的相关知识,了解一下一些简单经典博弈论模型,在省赛和国赛中均有可能遇到)
下面是标程代码:
#include
#include
#include
#include
G.zx学长与魔镜
这个题是比较麻烦的题,但是比较容易理解,我们就寻找所有可能的相遇点,然后让zx学长的路线是最短路,国王的路线是最长路,即可找到在该相遇点下的最坏情况,然后比较所有可能的相遇点,取最大值,这个值就是最坏情况,然后和K比较即可.可能相遇点是,zx学长走到着的距离,大于等于国王的距离,而且,要注意的是应该是最短路径!!,且国王和zx学长能走的方向,zx学长和国王不可以一下一上,或者数一右一左的相遇,只能是一上一下,一左一右.
下面是标程代码:
#include
#include
#include
#include
H.无题
统计所有n个数质因子种类的数量,我们进行试除,不过是用所有质数试除,然后我们每选择一个素数,就把场上所有这个因子除完,然后换下一个数,最终答案就是所有n个数质因子种类的数量.
下面是标程代码:
#include
#include
#include
#include
作者:KalznAsawind
大学
素数
软件