当前位置: 首页 > news >正文

永城住房和城乡建设委员会网站seo课程培训要多少钱

永城住房和城乡建设委员会网站,seo课程培训要多少钱,网站空间数据库上传,学人工智能后悔死了前言 最近碰到一个专门制作大厂真题模拟题的网站 codefun2000,最近一直在上面刷题。今天来进行2023.04.15携程研发岗笔试,整理了一下自己的思路和代码。 比赛地址 A. 找到you 题意: 给定一个仅包含小写字母的 n n n\times n nn 的矩阵…

前言

最近碰到一个专门制作大厂真题模拟题的网站 codefun2000,最近一直在上面刷题。今天来进行2023.04.15携程研发岗笔试,整理了一下自己的思路和代码。

比赛地址

A. 找到you

题意:

给定一个仅包含小写字母的 n × n n\times n n×n 的矩阵,问这个矩阵中所有 2 × 2 2\times 2 2×2 的矩阵中同时包含 you 三个字符的子矩阵数量。

数据范围: 1 ≤ n , m ≤ 1000 1\leq n, m\leq 1000 1n,m1000

题解:

暴力枚举每个 2 × 2 2\times 2 2×2 子矩阵,对于每个子矩阵,判断其之中是否同时存在 you 三个字符即可,共需要枚举 ( n − 1 ) × ( m − 1 ) (n - 1) \times (m - 1) (n1)×(m1) 个子矩阵。

时间复杂度分析: O ( n m ) O(nm) O(nm)

#include <bits/stdc++.h>
using namespace std;const int N = 1010;
char s[N][N];
int n, m;bool check(int i, int j) {int val = 0;for (int x = 0; x < 2; ++x)for (int y = 0; y < 2; ++y) {if (s[i + x][y + j] == 'y') val |= 1 << 0;if (s[i + x][y + j] == 'o') val |= 1 << 1;if (s[i + x][y + j] == 'u') val |= 1 << 2;}return val == 7;
}int main()
{scanf("%d%d", &n, &m);;for (int i = 1; i <= n; ++i) scanf("%s", s[i] + 1);int ans = 0;for (int i = 1; i + 1 <= n; ++i)for (int j = 1; j + 1 <= m; ++j) {if (check(i, j)) ans += 1;}printf("%d\n", ans);return 0;
}

B. 最小公倍数

题意:

T T T 组数据,每组数据给定一个 n n n,现在问在 a + b = n a + b = n a+b=n 的情况下,使得 l c m ( a , b ) lcm(a, b) lcm(a,b) 最大的 a a a b b b 是多少?

数据范围: 1 ≤ T ≤ 1 0 5 , 2 ≤ n ≤ 1 0 13 1\leq T\leq 10^5, 2\leq n\leq 10^{13} 1T105,2n1013

题解:

T T T 组数据,而 T T T 最大为 1 0 5 10^5 105 ,则每组数据至多要在 O ( log ⁡ n ) O(\log n) O(logn) 的时间解决,因为这个题需要求 l c m lcm lcm,这个求解的复杂度是 O ( log ⁡ n ) O(\log n) O(logn) 的,
所以判断的操作得在 O ( 1 ) O(1) O(1) 时间复杂度内。

下面我们都认为 a ≤ b a \leq b ab
当两个数 a a a b b b ,满足 a + 1 = b a + 1 = b a+1=b ,那么此时 a a a b b b 互质, l c m ( a , b ) = a × b lcm(a, b) = a \times b lcm(a,b)=a×b

考虑奇数:将其拆分成 a = ⌊ n 2 ⌋ , b = ⌈ n 2 ⌉ a = \lfloor\frac{n}{2}\rfloor, b = \lceil\frac{n}{2}\rceil a=2n,b=2n,有 a + 1 = b a + 1 = b a+1=b,故此时最大的 l c m ( a , b ) lcm(a, b) lcm(a,b) 就是 a = ⌊ n 2 ⌋ , b = ⌈ n 2 ⌉ a = \lfloor\frac{n}{2}\rfloor, b = \lceil\frac{n}{2}\rceil a=2n,b=2n
考虑偶数:将其拆分成 a = n 2 , b = n 2 a = \frac{n}{2}, b = \frac{n}{2} a=2n,b=2n l c m ( a , b ) = n 2 lcm(a, b) = \frac{n}{2} lcm(a,b)=2n

因为 n n n 是偶数,所以拆分出必然是要么 a a a b b b 均为偶数,要么 a a a b b b 均为奇数。
这里有一个结论,对于正数 a , b , n a,b,n a,b,n,如果有 a + b = n a + b = n a+b=n,且 a a a b b b 均为奇数,则 g c d ( a , b ) = 1 gcd(a,b)=1 gcd(a,b)=1

n = 2 n=2 n=2,只有一种拆分法: a = 1 , b = 1 a=1,b=1 a=1,b=1

n > 2 n>2 n>2,对于拆分 a = 1 , b = n − 1 , l c m ( 1 , n − 1 ) > l c m ( n 2 , n 2 ) a=1,b=n-1,lcm(1,n-1)>lcm(\frac{n}{2},\frac{n}{2}) a=1,b=n1lcm(1,n1)>lcm(2n,2n),所以 a = n 2 , b = n 2 a=\frac{n}{2},b=\frac{n}{2} a=2n,b=2n这个拆分必然不如其他任意一个拆分。

此外,下面的讨论都只针对大于 2 2 2 的偶数。

所以对于一个数 n n n,我们至多只需要考虑 2 2 2 个位置,因为其他位置都不如这些位置中的任意一个:

n 2 \frac{n}{2} 2n 为奇数,

  • a = n 2 − 1 , b = n 2 + 1 , l c m ( a , b ) = a × b g c d ( a , b ) = ( n 2 − 1 ) × ( n 2 + 1 ) 2 a = \frac{n}{2} - 1, b = \frac{n}{2} + 1, lcm(a,b)=\frac{a \times b}{gcd(a,b)}=\frac{(\frac{n}{2} - 1)\times (\frac{n}{2} + 1)}{2} a=2n1,b=2n+1,lcm(a,b)=gcd(a,b)a×b=2(2n1)×(2n+1),因为 b − a = 2 b-a=2 ba=2,且 a a a b b b 都是偶数,故 g c d ( a , b ) = 2 gcd(a,b)=2 gcd(a,b)=2
  • a = n 2 − 2 , b = n 2 + 2 , l c m ( a , b ) = a × b g c d ( a , b ) = ( n 2 − 2 ) × ( n 2 + 2 ) 1 a = \frac{n}{2} - 2, b = \frac{n}{2} + 2,lcm(a,b)=\frac{a \times b}{gcd(a,b)}=\frac{(\frac{n}{2} - 2)\times (\frac{n}{2} + 2)}{1} a=2n2,b=2n+2,lcm(a,b)=gcd(a,b)a×b=1(2n2)×(2n+2),因为 b − a = 4 b-a=4 ba=4,故公约数只能为 1 , 2 , 4 1,2,4 1,2,4,且 a a a b b b 都是奇数,故最大公约数只能为 1 1 1

n 2 \frac{n}{2} 2n 为偶数,

  • a = n 2 − 1 , b = n 2 + 1 , l c m ( a , b ) = a × b g c d ( a , b ) = ( n 2 − 1 ) × ( n 2 + 1 ) 1 a = \frac{n}{2} - 1, b = \frac{n}{2} + 1, lcm(a,b)=\frac{a \times b}{gcd(a,b)}=\frac{(\frac{n}{2} - 1)\times (\frac{n}{2} + 1)}{1} a=2n1,b=2n+1,lcm(a,b)=gcd(a,b)a×b=1(2n1)×(2n+1),因为 b − a = 2 b-a=2 ba=2,故公约数只能为 1 , 2 1, 2 1,2,且 a a a b b b 都是奇数,故 g c d ( a , b ) = 1 gcd(a,b)=1 gcd(a,b)=1
  • a = n 2 − 2 , b = n 2 + 2 , l c m ( a , b ) = a × b g c d ( a , b ) = ( n 2 − 2 ) × ( n 2 + 2 ) g c d ( a , b ) ≥ 2 a = \frac{n}{2} - 2, b = \frac{n}{2} + 2,lcm(a,b)=\frac{a \times b}{gcd(a,b)}=\frac{(\frac{n}{2} - 2)\times (\frac{n}{2} + 2)}{gcd(a,b)\geq2} a=2n2,b=2n+2,lcm(a,b)=gcd(a,b)a×b=gcd(a,b)2(2n2)×(2n+2),因为 b − a = 4 b-a=4 ba=4,故公约数只能为 1 , 2 , 4 1,2,4 1,2,4,且 a a a b b b 都是偶数,故最大公约数至少为 2 2 2

上面已经说明了,对于本题中的 a + b = n a+b=n a+b=n a × b > ( a − 1 ) × ( b + 1 ) = a × b + a − b − 1 a \times b > (a - 1) \times (b + 1) = a \times b + a - b - 1 a×b>(a1)×(b+1)=a×b+ab1
因为 a − b − 1 < 0 a - b - 1 < 0 ab1<0,故 a × b > ( a − 1 ) × ( b + 1 ) a \times b > (a - 1) \times (b + 1) a×b>(a1)×(b+1)

n 2 \frac{n}{2} 2n 为奇数,
l c m ( n 2 − 1 , n 2 + 1 ) − l c m ( n 2 − 2 , n 2 + 2 ) = ( n 2 8 − 1 2 ) − ( n 2 4 − 4 ) = 28 − n 2 8 lcm(\frac{n}{2}-1,\frac{n}{2}+1)-lcm(\frac{n}{2}-2,\frac{n}{2}+2)=(\frac{n^2}{8}-\frac{1}{2})-(\frac{n^2}{4}-4)=\frac{28-n^2}{8} lcm(2n1,2n+1)lcm(2n2,2n+2)=(8n221)(4n24)=828n2,因为 n 2 \frac{n}{2} 2n 为奇数且 n > 2 n>2 n>2,故 n ≥ 6 n\geq6 n6,故 28 − n 2 8 < 0 \frac{28-n^2}{8}<0 828n2<0,故 l c m ( n 2 − 2 , n 2 + 2 ) > l c m ( n 2 − 1 , n 2 + 1 ) lcm(\frac{n}{2}-2,\frac{n}{2}+2)>lcm(\frac{n}{2}-1,\frac{n}{2}+1) lcm(2n2,2n+2)>lcm(2n1,2n+1)

n 2 \frac{n}{2} 2n 为偶数,
l c m ( n 2 − 1 , n 2 + 1 ) > l c m ( n 2 − 2 , n 2 + 2 ) lcm(\frac{n}{2}-1,\frac{n}{2}+1)>lcm(\frac{n}{2}-2,\frac{n}{2}+2) lcm(2n1,2n+1)>lcm(2n2,2n+2)

总结:

n n n 为奇数: a = ⌊ n 2 ⌋ , b = ⌈ n 2 ⌉ a = \lfloor\frac{n}{2}\rfloor, b = \lceil\frac{n}{2}\rceil a=2n,b=2n

n n n 为偶数:

  • n = 2 n = 2 n=2 a = 1 , b = 1 a=1,b=1 a=1,b=1
  • n 2 \frac{n}{2} 2n 为奇数, a = n 2 − 2 , b = n 2 + 2 a = \frac{n}{2} - 2, b = \frac{n}{2} + 2 a=2n2,b=2n+2
  • n 2 \frac{n}{2} 2n 为偶数, a = n 2 − 1 , b = n 2 + 1 a = \frac{n}{2} - 1, b = \frac{n}{2} + 1 a=2n1,b=2n+1

代码:

#include <bits/stdc++.h>
using namespace std;typedef long long ll;void solve() {ll n; scanf("%lld", &n);if (n & 1) {printf("%lld %lld\n", n / 2, n - n / 2);} else {if (n == 2) puts("1 1\n");if ((n / 2) & 1) {printf("%lld %lld\n", n / 2 - 2, n / 2 + 2);} else {printf("%lld %lld\n", n / 2 - 1, n / 2 + 1);}}}int main()
{int T;scanf("%d", &T);while (T--) {solve();}return 0;
}

C.魔法之树

题意:

给定一个 n n n 个点的树,问这棵树上任意一条简单路径,有起点和终点,这条路径上的点构成的二进制字符串对应的十进制数在 [ l , r ] [l, r] [l,r] 范围内的简单路径数。这里的简单路径长度至少为 1 1 1 ,即自己到自己不算在内

数据范围: 1 ≤ n ≤ 1000 , 1 ≤ l ≤ r ≤ 1 0 14 1\leq n\leq 1000, 1\leq l\leq r\leq {10^{14}} 1n1000,1lr1014

题解:
枚举以每个点作为起点,遍历完所有的其他 n − 1 n-1 n1 个点为终点,当遇到值大于 r r r ,则后面的点作为终点的简单路径构成的二进制字符串对应的十进制数都必然大于 r r r 了,不会再可能成为答案了。这里必须要及时判断,一方面可以剪枝,另一方面是为了避免爆 long long

时间复杂度: O ( n 2 ) O(n^2) O(n2)

代码:

#include <bits/stdc++.h>
using namespace std;typedef long long ll;const int N = 1010;
vector<int> g[N];
int n;
ll l, r;
char s[N];
int ans;void dfs(int cur, int u, int fa, ll val) {val = val * 2 + (s[u] - '0');if (val > r) return ;if (val >= l && u != cur) ans += 1;for (int v: g[u]) {if (v == fa) continue ;dfs(cur, v, u, val);}
}void solve() {scanf("%d%lld%lld", &n, &l, &r);scanf("%s", s + 1);for (int i = 1; i < n; ++i) {int a, b;scanf("%d%d", &a, &b);g[a].push_back(b);g[b].push_back(a);}ans = 0;for (int i = 1; i <= n; ++i) {dfs(i, i, 0, 0);}printf("%d\n", ans);
}int main()
{int T = 1;
//    scanf("%d", &T);while (T--) {solve();}return 0;
}

D.01串的回文子串

题意:

给定 n n n 个数 a i a_i ai,当 i i i 为奇数,表示生成 a i a_i ai1,当 i i i 为偶数,表示生成 a i a_i ai0。即生成一个长度为 ∑ i = 1 n a i \sum\limits_{i=1}^n a_i i=1nai 的序列 s s s s [ 1 , a 1 ] = 1 , s [ a 1 + 1 , a 2 ] = 0 , s [ a 2 + 1 , a 3 ] = 1 , s [ a 3 + 1 , a 4 ] = 0 , . . . s[1, a_1]=1,s[a_1+1,a_2]=0,s[a_2+1,a_3]=1,s[a_3+1,a_4]=0,... s[1,a1]=1,s[a1+1,a2]=0,s[a2+1,a3]=1,s[a3+1,a4]=0,... 。问这个序列中有多少个回文子串。答案对 1 0 9 + 7 10^9+7 109+7 取模

数据范围:
1 ≤ n ≤ 1000 , 1 ≤ a i ≤ 1 0 9 1\leq n\leq 1000,1\leq a_i\leq 10^9 1n1000,1ai109

题解:

可以将看成序列看成分为 n n n 块,每块内部都是连续的 0 0 0 1 1 1

考虑每块内部可以生成多少回文子串:一块内部有 x x x 个数,以第 i i i 个数结尾的回文子串数量为 i i i ,即 ∑ i = 1 x i = x × ( x + 1 ) 2 \sum\limits_{i=1}^xi=\frac{x\times (x+1)}{2} i=1xi=2x×(x+1)

再考虑包含第 i i i 块的回文子串数量。那么以第 i i i 块为回文子串中心,向左右扩展。当且仅当左右两个数都相同,会多生成一个回文子串。这个什么时候截止呢,假设我们当前 a [ i − 1 ] = a [ i + 1 ] , a [ i − 2 ] = a [ i + 2 ] , . . . a [ i − p ] = a [ i + p ] a[i-1]=a[i+1],a[i-2]=a[i+2],...a[i-p]=a[i+p] a[i1]=a[i+1],a[i2]=a[i+2],...a[ip]=a[i+p],但是 a [ i − p − 1 ] ≠ a [ i + p + 1 ] a[i-p-1]\neq a[i+p+1] a[ip1]=a[i+p+1],则生成的回文子串数为: m i n ( a [ i − p − 1 ] , a [ i + p + 1 ] ) + ∑ j = 1 p a [ j ] min(a[i-p-1],a[i+p+1])+\sum\limits_{j=1}^p a[j] min(a[ip1],a[i+p+1])+j=1pa[j]

时间复杂度: O ( n 2 ) O(n^2) O(n2)

代码:

#include <bits/stdc++.h>
using namespace std;const int N = 1010;
const int mod = 1e9 + 7;long long a[N];
int n;void solve() {long long ans = 0;scanf("%d", &n);for (int i = 1; i <= n; ++i) {scanf("%lld", &a[i]);ans = (ans + a[i] * (a[i] + 1) / 2) % mod;}for (int i = 2; i < n; ++i) {int L = i - 1, R = i + 1;while (L >= 1 && R <= n) {ans = (ans + min(a[L], a[R])) % mod;if (a[L] == a[R]) L -= 1, R += 1;else break;}}printf("%lld\n", ans);
}int main()
{int T = 1;
//    scanf("%d", &T);while (T--) {solve();}return 0;
}

文章转载自:
http://athabascan.wjrtg.cn
http://acrocarpous.wjrtg.cn
http://chromhidrosis.wjrtg.cn
http://alienable.wjrtg.cn
http://ataunt.wjrtg.cn
http://arow.wjrtg.cn
http://april.wjrtg.cn
http://avg.wjrtg.cn
http://agromania.wjrtg.cn
http://baritone.wjrtg.cn
http://bilobate.wjrtg.cn
http://amaurosis.wjrtg.cn
http://careen.wjrtg.cn
http://beetroot.wjrtg.cn
http://accept.wjrtg.cn
http://capability.wjrtg.cn
http://caulis.wjrtg.cn
http://bil.wjrtg.cn
http://bishopric.wjrtg.cn
http://anneal.wjrtg.cn
http://bibliographer.wjrtg.cn
http://autogeny.wjrtg.cn
http://bramble.wjrtg.cn
http://auxotroph.wjrtg.cn
http://apostasy.wjrtg.cn
http://captaincy.wjrtg.cn
http://airing.wjrtg.cn
http://cavortings.wjrtg.cn
http://carter.wjrtg.cn
http://androgenous.wjrtg.cn
http://acgb.wjrtg.cn
http://brio.wjrtg.cn
http://afs.wjrtg.cn
http://busulphan.wjrtg.cn
http://bonnet.wjrtg.cn
http://anthropological.wjrtg.cn
http://broadish.wjrtg.cn
http://arenose.wjrtg.cn
http://blessedness.wjrtg.cn
http://becalm.wjrtg.cn
http://chrematistics.wjrtg.cn
http://caliber.wjrtg.cn
http://ceresin.wjrtg.cn
http://achaian.wjrtg.cn
http://autoboat.wjrtg.cn
http://chained.wjrtg.cn
http://choppy.wjrtg.cn
http://ash.wjrtg.cn
http://albumen.wjrtg.cn
http://capitalize.wjrtg.cn
http://aerometeorograph.wjrtg.cn
http://burgrave.wjrtg.cn
http://cascara.wjrtg.cn
http://anopheles.wjrtg.cn
http://assemblywoman.wjrtg.cn
http://break.wjrtg.cn
http://aphotic.wjrtg.cn
http://bfc.wjrtg.cn
http://antihemophilic.wjrtg.cn
http://buckshot.wjrtg.cn
http://agp.wjrtg.cn
http://bezier.wjrtg.cn
http://buddhism.wjrtg.cn
http://chanfron.wjrtg.cn
http://brother.wjrtg.cn
http://bifer.wjrtg.cn
http://autecism.wjrtg.cn
http://causey.wjrtg.cn
http://aspirator.wjrtg.cn
http://achaia.wjrtg.cn
http://bintree.wjrtg.cn
http://camelback.wjrtg.cn
http://bemusement.wjrtg.cn
http://barbarous.wjrtg.cn
http://aerophile.wjrtg.cn
http://anion.wjrtg.cn
http://acheulian.wjrtg.cn
http://atomry.wjrtg.cn
http://carretela.wjrtg.cn
http://cep.wjrtg.cn
http://choreopoem.wjrtg.cn
http://arachnoid.wjrtg.cn
http://beriberi.wjrtg.cn
http://ameer.wjrtg.cn
http://arthrology.wjrtg.cn
http://begnaw.wjrtg.cn
http://bystander.wjrtg.cn
http://boltrope.wjrtg.cn
http://cahier.wjrtg.cn
http://carman.wjrtg.cn
http://chokeberry.wjrtg.cn
http://chasten.wjrtg.cn
http://bestiality.wjrtg.cn
http://cancerophobia.wjrtg.cn
http://bioinorganic.wjrtg.cn
http://brazil.wjrtg.cn
http://anglophobia.wjrtg.cn
http://abiding.wjrtg.cn
http://bossed.wjrtg.cn
http://breadth.wjrtg.cn
http://www.tj-hxxt.cn/news/25345.html

相关文章:

  • 国内网站是cn还是com营销活动方案模板
  • 网站 开发 备案代理网站关键词优化案例
  • dede织梦织梦更换模板网站html网页制作模板
  • 114黄页信息网谷歌aso优化
  • 什么是网络营销本质是什么seo优化分析
  • 集团定制网站建设公司百合seo培训
  • 潍坊网站建设seo企业网站模板
  • 安徽省做网站域名注册平台
  • 专门做奢侈品的网站北京最新疫情
  • 申请免费网站建设合肥百度快照优化排名
  • 邯郸百度公司地址免费seo营销软件
  • 常州建设局官方网站最有效的宣传方式
  • 中华人民共住房和城乡建设部网站深圳今日头条新闻
  • 如何分析一个网站做的怎么样优化培训课程
  • 怎么在网站做外部链接如何进行关键词优化工作
  • 北京市建设公租房网站网络营销计划包括哪七个步骤
  • 网站开发职责可以全部免费观看的软件
  • 购物网站建设公司网络营销方案设计毕业设计
  • 专业移动微网站建设免费推广引流平台
  • 咸阳兼职做网站线上推广营销
  • 中国工商网官方网站济南网站制作公司
  • 网络营销平台搭建方案网站seo关键词优化报价价格
  • 网站开店前的四项基本建设千锋教育学费多少
  • 旅游类网站策划建设_google网站推广
  • 网站设计开发工程师公司网站建设价格
  • UE做的比较好的网站惠州搜索引擎优化
  • 专做polo衫的网站企业网络营销推广方法
  • 博物馆网站建设优秀网站设计欣赏
  • 互联网有什么赚钱的好项目优化标题关键词技巧
  • 深圳网站建设联系电话东莞网络营销销售