您现在的位置是:主页 > news > 做网站外包工作怎么样/seo推广小分享
做网站外包工作怎么样/seo推广小分享
admin2025/4/30 5:00:41【news】
简介做网站外包工作怎么样,seo推广小分享,网站自动识别移动终端,美国虚拟主机火网互联这周的话由于从线上改为线下教学,时间的分配不如原来那么充足。所以也调整了一下自己的学习计划。这周的话是这样安排的:如果有大块的时间(比如每天晚上或者是有空课的时候)就做一做洛谷上的搜索题,如果比较零碎的时间…
这周的话由于从线上改为线下教学,时间的分配不如原来那么充足。所以也调整了一下自己的学习计划。这周的话是这样安排的:如果有大块的时间(比如每天晚上或者是有空课的时候)就做一做洛谷上的搜索题,如果比较零碎的时间,就看一看思维题。
先说搜索:
1.[COCI2019-2020#1] Lutrija - 洛谷
这个题首先是对素数的理解:如果两个数都是素数,那么有两种情况:一奇一偶或者是两个奇数。
如果是两个奇数的情况:由于题目要求两数之差为素数,而两个奇数之差为偶数,所以只能为2。
如果是一奇一偶的情况:其中偶数必定为2。综上,要找的素数仅可能在所给素数a的[a-2,a+2]中。
对于搜索的设定:对于两个奇数的情况:可以对2,a-2,a+2每种可能作为下一层搜索的一种方案来进行递归。对于一奇一偶的情况:如果两者之差为素数,则可以直接输出。如果两者之差不是素数,只能判断结果+2的情况。
2.[USACO06FEB]Backward Digit Sums G/S - 洛谷
这个题涉及到了杨辉三角的一些结论:
以下为代码实现:
pc[0]=pc[n-1]=1
if (n>1)for (int i=1;i*2<n;i++)pc[i]=pc[n-1-i]=(n-i)*pc[i-1]/i;
这个题我一开始的构想是设计一个类似于数组传地址的递归,但后来看完题解后发现不用。只需要设计三个指数:已经枚举的数量,当前值,当前和。如果满足题意的话,只需要用一个数组记录当前值就可以,而不需要把它当做一个整体去进行递归。如果枚举当前和的大小已经大于所给值,则可以直接剪枝。
再说思维:
1.C. 她的名字 - EOJ Monthly 2018.12 - ECNU Online Judge
这个题也和杨辉三角有关,用了另一个结论:
以下为代码实现(也即本题的预处理部分):
for(int i=0;i<=2000;i++){
c[i][0]=1;
}
for(int i=1;i<=2000;i++){
for(int j=1;j<=i;j++){
c[i][j]=(c[i-1][j]%mod+c[i-1][j-1]%mod)%mod;
}
}}
这个题可以直接从00-99暴力枚举出所有可能结果,以下为核心代码还有我写的注释:
for(int i=0;i<=9;i++)
for(int j=0;j<=9;j++){
ll cnt=0;
for(int k=len-1;k>=0;k--){
if(s[k]=='0'+j){
cnt++;
}
if(s[k]=='0'+i){
for(int l=2;l<=k+2;l++){
if(i==j)
ans[l][i*10+j]=(ans[l][i*10+j]+(c[cnt-1][1]*c[k][l-2]%mod)%mod);//因为选定结尾,所以从后往前遍历。在当前值后面在cnt中选一个(c[cnt-1][1]),当前值(*1),在当前值前随便选一个(c[k][l-2])
else ans[l][i*10+j]=(ans[l][i*10+j]+(c[cnt][1]*c[k][l-2]%mod)%mod);
}
}
}}
2.Problem - 1040B - Codeforces
这个题的思路很有意思:首先让第一个翻面,再让每隔2*k个翻面一次,由于第一个烤串已经翻了k个,所以剩下还没有翻过的一定小于或等于k。这样的话如果没有正好最大程度翻面的话,翻面的总数加一即可,而第一个翻面的点可以这样选择(n%(2*k+1))/2+1,每次加2*k+1;
3.Problem - C - Codeforces
这个题涉及到位运算的一些知识:
&:相同位的两个数字都为1,则为1;若有一个不为1,则为0;
|:相同位只要一个为1即为1;
假设答案为A,这个题可以暴力枚举0-2^9-1,是否对于每个i,都存在j,使得(ai&bj)|A=A;
4.Problem - 1284B - Codeforces
这个题很巧妙的是创建了两个vector,一个记录序列最大值,一个记录序列最小值。只需要给最大值排序,遍历最小值数组。对于每一个最小值,在最大值数组里面找值,如果最小值<最大值(可以用upper_bound来实现),答案即为当前最大值的位置到末尾有多少个数累加起来。