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

国际贸易英文网站市场调研报告800字

国际贸易英文网站,市场调研报告800字,360优化大师旧版,毕业设计网站方向这届比赛的题目数量总共有八道,比之前少了两道,而且 Python 组题目的难度比去年下降了不少,同时也是所有组里面难度最低的。不知道是不是为了照顾参赛的选手水平。去年 Python 组的题太难了,我到现在还有好几道不会的题&#x1fa…

这届比赛的题目数量总共有八道,比之前少了两道,而且 Python 组题目的难度比去年下降了不少,同时也是所有组里面难度最低的。不知道是不是为了照顾参赛的选手水平。去年 Python 组的题太难了,我到现在还有好几道不会的题🫢😥。

A:穿越时空之门

考察:字符串、枚举

3a4ce28a8bccb87bdb2572fe7a91ec8a.png

解题思路

从 1 枚举到 2024,遇到符合条件的数就计数器加一,最后输出计数器即可。

代码

ans = 0def check(x): # 判断是否符合条件s1, s2 = sum(int(i) for i in bin(x)[2:]), 0while x:s2 += x % 4x //= 4return s1 == s2for i in range(1, 2025):ans += check(i)print(ans) # 63

最后答案为: 63

B:数字串个数

考察:容斥原理、快速幂取余

c109b8a546997001c736694d484ef474.png

解题思路

根据条件一:该数字串只能由数字 1 ~ 9 组成。

根据条件二:要减去不包含数字 3 或 7 的。用容斥原理做,集合总大小为:9^10000,减去两个8^10000,由于多减了一个两个都不含的,再加上一个 7^10000。

快速幂取模可以用 Python 的内置函数 pow 实现。

代码

mod = 10**9 + 7# 157509472
print((pow(9, 10000, mod) - 2 * pow(8, 10000, mod) + pow(7, 10000, mod)) % mod)

最后答案为:157509472

C:连连看

考察:枚举、哈希表

b2578c9850267df156b80ba2faa58322.png

8573290dd921b4bdb774f14d8a8c932a.png

解题思路

由于要寻找横纵坐标差的绝对值相同的格子对的数量,所以有左上、右上、左下、右下四个方向。

如果使用枚举的方式来统计的话,时间复杂度是 O(n^3) 会超时,所以这里可以用一个哈希表来记录从左上到右下,或者从左下到右上方向的同一斜线方向上某个值出现的次数。然后由于同一斜向上每两个值相同,但位置不同的元素都能组成一对,所以用 c[x] 代表这一方向上 x 出现的个数,2C^2_{c[x]} 就是格子对数。

然后再枚举不同斜线方向上的 c 并累加就行。

这里用一个函数来计算左上到右下方向上的,从左下到右上方向上的再把数组每一行逆序一下再计算就行了。

代码

from collections import *n, m = map(int, input().split())
a = [list(map(int, input().split())) for _ in range(n)]def acc(a): # 统计从左上到右下方向上的格子对数量res = 0for k in range(-(n - 1), m):i, j = -k * (k < 0), k * (k > 0) # 该方向上第一个位置c = Counter()while i < n and j < m:c[a[i][j]] += 1i += 1; j += 1for v in c.values():res += v * (v - 1)return resprint(acc(a) + acc([a[i][::-1] for i in range(n)]))

测试样例

样例一

输入:

3 2
1 2
2 3
3 2

输出:

6

样例二

输入:

3 3
3 2 3
2 3 2
3 2 3

输出:

20

D:神奇闹钟

考察:时间处理

9bae0172ece20dbb3d95c0983286d1da.png

06f724529cbea0719d3387eb18809937.png

解题思路

可以使用 Python 标准库中的 datetime 模块来解决此题。

本题中的输入是标准的 iso 格式日期时间,所以可以直接解析为 datetime 对象。

计算上一次响的时间:用总的分钟数减去对时间间隔求余的余数得到上次响的分钟数,再加上起始时间,转化为 datetime 对象,最后输出即可。

代码

from datetime import *bg = datetime.fromisoformat('1970-01-01 00:00:00')for _ in range(int(input())):date, time, dif = input().split()dt = datetime.fromisoformat(date + ' ' + time)nows = int((dt - bg).total_seconds()) // 60 # 分钟数nows -= nows % int(dif)print(bg + timedelta(minutes=nows))

测试样例

样例一

输入:

2
2016-09-07 18:24:33 10
2037-01-05 01:40:43 30

输出:

2016-09-07 18:20:00
2037-01-05 01:30:00

E:蓝桥村的真相

考察:分类讨论、找规律

ceb435121246feefdd537c83f887387c.png

b469d75bfe97be861ec4b41820042ea4.png

解题思路

分别讨论一个村民的断言为假话、真话和后面的村民的断言为假话、真话的情况。再往后的村民的断言真假都可以通过前面的断言真假推断出来。

51654d647a3eed9a1b2307f4f5787c97.png

 再往后就是之前的重复了。

注意上面前三个分支需要村民个数为 3 的倍数才行,这时“假”的个数为 2n;如果不为 3 的倍数,则只有最后一个情况符合条件,这时“假”的个数为 n。

代码

for _ in range(int(input())):n = int(input())print(n * (1 + (not n % 3)))

F:魔法巡游

考察:哈希表、DP

fd0c82f59bdc78bcbf5203f3f3c279b0.png

9c2be0846251fb8fd77332cd98e3d82d.png

解题思路

用两个哈希表 f1、f2 分别统计 s、t 序列中上一个包含 0、2、4 的符石作为序列末尾的最长序列长度。

注意要使用更新前的 f1 来更新 f2 和用更新前的 f2 更新 f1,所以需要对其中一个哈希表拷贝一下。

最后输出两个哈希表中的最大值即可。

代码

cin = lambda: list(map(int, input().split()))input()
f1, f2 = [-1] * 5, [-1] * 5
digs = (0, 2, 4)def update(s, f1, f2):for d in digs:if str(d) in s:f1[d] = max(f1[d], max(f2[i] + 1 for i in digs if str(i) in s))for s, t in zip(cin(), cin()):s, t = str(s), str(t)f2_ = f2.copy() # 拷贝update(t, f2, f1)for d in digs:if str(d) in s and f1[d] < 0:f1[d] = max(*f1, 1) # 确保先从 s 开始走update(s, f1, f2_)print(max(f1 + f2))

测试样例

样例一

输入:

5
126 393 581 42 44
204 990 240 46 52

输出:

4

样例二

输入:

5
10 42 44 42 22
24 40 52 42 44

输出:

5

G:缴纳过路费

考察:缩点、并查集、DFS

a8605a52156f7de9937a8cd9aba6aba8.png

afba188b1075f410ab557553f8d831ed.png

解题思路

分析:由于要满足路径中最贵的一次收费在 [L, R] 区间内,所以收费大于 R 的路径是一定不可以经过的,而对于收费小于 L 的路径可以经过,但是不能让整条路径的收费全部小于 L,要不然路径的最大值也小于 L 了。

对此,我们要:将所有小于 L 的边连接的点缩成一个点(缩点),并记录缩后的点数(就是记录有多少个点缩成了这一个点),大于 R 的边则直接舍弃(不加到图中)。

然后再搜索满足条件的点对的数量,比如:有 3 个点缩成的点 A 和 2 个点缩成的点 B 之间有一条 [L, R] 之间的边,那么就有 2 x 3 = 6 个点对。示意图如下:

45a6be6a300fa1c6d2c53edf23870473.png

 对应的点对分别为:(1, 4)、(1, 5)、(2, 4)、(2, 5)、(3, 4)、(3, 5)。

怎么实现缩点呢?并查集!将所有小于 L 的边连接的点用并查集来合并,让集合的根作为合并后的新点。注意记录集合的大小(也就是新点是由多少旧点合并来的)。

最后使用 DFS 累加点对数量(也可以用再用一个并查集找联通块)。比如点 A 是由 3 个旧点合并而来,与其连通的有 2 个新点,对应 5 个旧点,那么以 A 为第一个坐标的点对就有 3 x (8 - 3) 对。

注意累加的点对有重复((1, 2)、(2, 1) 是同一对),最后要除以二。

代码

from sys import *setrecursionlimit(10**6)
cin = lambda: list(map(int, input().split()))n, m, l, r = cin()
e = [set() for _ in range(n + 1)]
# s[i] == i 表示 i 为新点,sz[i] 表示新点 i 的大小
s, sz = list(range(n + 1)), [1] * (n + 1)def find(x):if s[x] == x:return xs[x] = find(s[x])return s[x]edges = [cin() for _ in range(m)]
for u, v, w in edges:if w > r: continue # 舍弃su, sv = find(u), find(v)if w < l and su - sv: # 边权小于 l 且不在同一集合# 合并s[su] = svsz[sv] += sz[su]
# 以新点建图
for u, v, w in edges:if l <= w <= r:su, sv = find(u), find(v)e[su].add(sv)e[sv].add(su)vis = [False] * (n + 1)def dfs(u, block): # 寻找连通块,返回值表示该块内点的集合的总大小block.append(u)res, vis[u] = sz[u], Truefor v in e[u]:if vis[v]: continueres += dfs(v, block)return resans = 0
for i in range(1, n + 1):if s[i] == i and not vis[i]:block = []t = dfs(i, block)for u in block:ans += sz[u] * (t - sz[u])print(ans // 2)

测试样例

样例一

输入:

5 5 1 2
1 2 2
1 3 5
1 4 1
2 4 5
2 5 4

输出:

3

样例二

输入:

10 12 5 8
1 5 3
1 2 8
2 5 5
2 6 7
5 7 2
7 10 9
8 10 2
8 9 4
2 8 7
3 7 6
3 8 5
3 4 10

输出:

30

H:纯职业小组

考察:贪心、思维

9f7ba5fdfdcb525c08e00cdcdfedf446.png

02649c8032955c88d181904f3ffa15a4.png

解题思路

这道题我的思路比较抽象,大概意思就是找一个数,能恰好组成 k 组(不冗余),且这个数尽可能大。

显然只有当每一组都选完还组不成 k 组的时候输出 -1,否则一定能组成 k 组。

如果能组成 k 组,那么设一个计数器 m = k 表示还缺几组没有凑够。

先在同职业中选 1 ~ 2 个人,这不会增加组数,然后再看剩下的人数是 3 的几倍,如果这个倍数小于 m 的话就都加上。

当遍历完后,这时候 m 仍然小于 k,再加上 m * 3 - 2 就是正确答案。为什么要 -2 呢?因为最后缺的一组再加 1 个人就凑够了。

下面的代码直接用 k 来代替 m 了。

代码

from collections import *
cin = lambda: list(map(int, input().split()))for _ in range(int(input())):n, k = cin()cnt = Counter()for i in range(n):a, b = cin()cnt[a] += bif sum(c // 3 for c in cnt.values()) < k:print(-1)continueans = 0for a, b in cnt.items():ans += min(b, 2) # 1 或 2b -= min(b, 2) # 这行不加,答案也是正确的if b // 3 < k:ans += b // 3 * 3k -= b // 3print(ans + k * 3 - 2)

测试样例

样例一

输入:

2
3 2
1 3
2 3
3 3
3 5
1 3
2 3
3 3

输出:

8
-1

样例二

输入:

1
6 60
1 100
2 43
3 51
1 32
2 55
3 98

输出:

184

最后

今年蓝桥杯省赛的成绩出来了,居然是河北省B组第一名哈哈哈~

5e68f3ee79c3cb0cc2f5a9e48febf201.png

可惜的是不知道具体多少分😥

最后祝大家都能蓝桥杯榜上有名,心想事成🤪❤️!!!!

有什么问题欢迎在评论区留言。


文章转载自:

http://kKC8s0O8.khpgd.cn
http://2koRpyA5.khpgd.cn
http://yWtCsoO6.khpgd.cn
http://SKvlyM1v.khpgd.cn
http://d59JHWUO.khpgd.cn
http://O2TlgK6m.khpgd.cn
http://Jfa42AY6.khpgd.cn
http://B0GjRjrT.khpgd.cn
http://MjJipLuO.khpgd.cn
http://RzjUx5uk.khpgd.cn
http://cx4AXHX0.khpgd.cn
http://Vr1nJunR.khpgd.cn
http://4ogH4BjJ.khpgd.cn
http://swJoYy7s.khpgd.cn
http://92AJLQOT.khpgd.cn
http://xn0dENzF.khpgd.cn
http://HV650m4b.khpgd.cn
http://LNAt8Hww.khpgd.cn
http://5iTLvgIK.khpgd.cn
http://lgGmuCoA.khpgd.cn
http://WKuDNBpo.khpgd.cn
http://aQww00l3.khpgd.cn
http://PT2gYZ7k.khpgd.cn
http://E8f4uXvf.khpgd.cn
http://0zV2qjfB.khpgd.cn
http://fmhpqFb1.khpgd.cn
http://apEMr5Uf.khpgd.cn
http://9SYwhVLv.khpgd.cn
http://AI8nlpJk.khpgd.cn
http://JDi7pZPF.khpgd.cn
http://www.dtcms.com/wzjs/620099.html

相关文章:

  • 中国移动网站建设wordpress 页面文件
  • 手机端的网站怎么做的糕点网站策划书
  • 网站文章不收录的原因建筑工程网架
  • 邢台做网站费用甘肃省建设厅注册中心网站
  • 企业网站建设课程设计crm管理
  • 我要建个网站做灯箱片的设计网站
  • 做网站去哪里网站后台管理系统展望
  • 网站建设报价明细单怎么咨询网络服务商
  • ae做动画教程网站每天免费体验6小时的云电脑
  • 网站开发团队人员配置山东住房城乡建设厅网站
  • 负责网站建设和网络推广的wordpress dux主题5.0
  • h5免费制作平台火蚁邀请函南京网站seo服务
  • 网站怎么做右上角消息提醒做网站的赚钱吗
  • 广东的网站建设企业网站建设的策略
  • 嘉兴学网站建设酷乐家居在线设计
  • 常州武进区建设局网站中文博客网站模板
  • 网站免费部署瑞安规划建设局网站
  • 山东企业建站系统信息黄骅港旅游攻略
  • 增加网站流量设计接单渠道
  • 怎么用微信做网站电商网站建设浩森宇特
  • 提供虚拟主机服务的网站网站建设的文档
  • 安徽省建设工程资料上传网站重庆做的好的房产网站好
  • 运城网站建设公司有多少网站loading动画
  • 怎么做企业网站推广需要多少钱seo站内优化
  • 河南网站建设找工作网络营销外包价格
  • 郑州做网站建设公司哪家好佛山网页设计怎么做
  • 网站建设有哪些分工分网上做分销代销哪个网站好
  • 什么是企业网站pv河北建设工程信息网一体化平台
  • 优秀高端网站建设报价html所有代码大全
  • 济南网站建设及推广在线文档 wordpress