CCF 2020年题目题解 - Python

2020年12月

2020年12月-1 期末预测之安全指数

题目链接:
		http://118.190.20.162/view.page?gpid=T123
代码:
n = int(input())
sum_s = 0
for i in range(n):
    w,score = map(int,input().split())
    sum_s += (w*score)
if sum_s < 0:
    print(0)
else:
    print(sum_s)

2020年12月-2 期末预测之最佳阈值

题目链接:
		http://118.190.20.162/view.page?gpid=T122
70分代码 也不知道哪里不对?😭:
m = int(input())
info = {}
keys = []
for i in range(m):
    y,result = map(int,input().split())
    if y not in keys:
        keys.append(y)
        info[y] = [0,0]
    if result == 0:
        info[y][0] += 1
    else:
        info[y][1] += 1
keys = sorted(keys)
#正反遍历两次求解  前缀和
info_0 = []
count = 0
for i in range(len(keys)):
    count += info[keys[i-1]][0]
    info_0.append(count)

#反向遍历
info_1 = []
count = 0
for j in range(len(keys)-1,-1,-1):
    count += info[keys[j]][1]
    info_1.append(count)
info_1 = info_1[::-1]

max = 0
k = -1
for i in range(len(keys)):
    count = info_0[i]+info_1[i]
    if count >= max:
        max = count
        k = i
print(keys[k])
易错点或需记忆点:

前缀和、前缀和数组

普通想法代码 — 60分(不知道哪里出了问题??):

思路是在接受数据同时进行处理,分成结果为0和为1的数组并按从小到大排序,统计每个数据结果为0数组中比它小的个数加上为1数组中比它大的个数,找到最大的那个作为θ。

m = int(input())
max_c = 0
res = 0
temp_xita = set()
r_0 = []
r_1 = []
for i in range(m):
    y,result = map(int,input().split())
    temp_xita.add(y)
    if result == 0:
        r_0.append(y)
    else:
        r_1.append(y)
r_0 = sorted(r_0)
r_1 = sorted(r_1)
temp_xita = list(temp_xita)
for i in range(len(temp_xita)):
    num = 0
    #在 r_0 中找出小于θ的个数
    for j in range(len(r_0)):
        if r_0[j] < temp_xita[i]:
            num += 1
        else:
            break
    #在 r_1 中找出大于等于θ的个数

    k = 0
    for j in range(len(r_1)):
        if r_1[j] < temp_xita[i]:
            k += 1
        else:
            break
    num += (len(r_1) - k)
    # print(temp_xita[i],' ',num)
    if num >= max_c:
        max_c = num
        res = temp_xita[i]
print(res)

2020年12月-3 带配额的文件系统

题目链接:

http://118.190.20.162/view.page?gpid=T121

代码:
在这里插入代码片
易错点或需记忆点:

2020年09月

2020年09月-1 称检测点查询

题目链接:

http://118.190.20.162/view.page?gpid=T113

代码:
n,X,Y = map(int,input().split())
l = {}
for i in range(n):
    x,y = map(int,input().split())
    d = pow((X-x),2) + pow((Y-y),2)
    l[i] = d
l = sorted(l.items(),key=lambda x:x[1])
for i in range(3):
    print(l[i][0]+1)
易错点或需记忆点:

字典根据key和value排序,一定要记住呀!

2020年09月-2 风险人群筛查

题目链接:
		http://118.190.20.162/view.page?gpid=T112
代码:
n,k,t,xl,yd,xr,yu = map(int,input().split())
info = []
total = 0
total_j = 0
for i in range(n):
    count = 0
    l = list(map(int,input().split()))
    tag = 0
    for j in range(0,len(l),2):
        if l[j]>=xl and l[j]<=xr and  l[j+1]>=yd and l[j+1]<=yu:
            count += 1
            tag = 1
            if count >= k:
                total += 1
                break
        else:
            count = 0
    if tag == 1:
        total_j += 1
print(total_j)
print(total)
易错点或需记忆点:

2020年09月-3 点亮数字人生

题目链接:
				http://118.190.20.162/view.page?gpid=T111
代码:
在这里插入代码片
易错点或需记忆点:

2020年03月

2020年03月-1 线性分类器

题目链接:
				http://118.190.20.162/view.page?gpid=T105
代码:
n,m = map(int,input().split())
info = []
for i in range(n):
    t = input().split()
    info.append([int(t[0]), int(t[1]),t[2]])
query = []
for i in range(m):
    a,b,c = map(int,input().split())
    tag_gt = -1
    tag_lt = -1
    tag = -1
    for j in range(len(info)):
        if a + b*info[j][0] + c*info[j][1] >= 0:
            if tag_gt == -1:
                tag_gt = info[j][2]
                tag_lt = 'B' if tag_gt=='A' else 'A'
            if tag_gt != info[j][2]:
                print('No')
                tag = 0
                break
        else:
            if tag_lt == -1:
                tag_lt = info[j][2]
                tag_gt = 'A' if tag_lt == 'B' else 'B'
            if tag_lt != info[j][2]:
                print('No')
                tag = 0
                break
    if tag == -1:
        print('Yes')
易错点或需记忆点:

2020年03月-2 稀疏向量

题目链接:
		http://118.190.20.162/view.page?gpid=T104
代码:
n,a,b = map(int,input().split())
u = {}
v = {}
for i in range(a):
    index,value = map(int,input().split())
    u[index] = value
for i in range(b):
    index, value = map(int, input().split())
    v[index] = value
ans = 0
for key in u.keys():
    if key in v:
        ans += u[key]*v[key]
print(ans)
易错点或需记忆点:

2020年03月-3 Markdown渲染器

题目链接:
				http://118.190.20.162/view.page?gpid=T103
代码:
在这里插入代码片
易错点或需记忆点:
引用\[1\]提供了一个用于计算点到给定坐标的距离的代码。该代码接受输入的点的数量和目标坐标,然后计算每个点与目标坐标的距离,并将结果按距离排序。最后,它打印出距离最近的三个点的索引。这段代码可以用于解决一些与点和距离相关的问题。 引用\[2\]提供了一个用于计算加权分数的代码。该代码接受输入的分数数量和每个分数的权重,然后计算加权总分。如果总分小于0,则打印0,否则打印总分。这段代码可以用于解决一些与加权分数计算相关的问题。 引用\[3\]提供了一个用于找到最佳阈值的代码。该代码接受输入的数据数量和每个数据的结果,然后将结果分为为0和为1的两个数组,并按从小到大排序。接下来,它统计了每个数据在数组中比它小的个数和比它大的个数,并找到了最大的那个作为阈值。最后,它打印出最佳阈值。这段代码可以用于解决一些与阈值选择相关的问题。 根据你的问题,你想要一个用于解析CCF Markdown的Python渲染器。很抱歉,我没有找到与CCF Markdown渲染器相关的引用内容。但是,你可以尝试使用现有的Python Markdown库来解析和渲染CCF Markdown。这个库可以帮助你将CCF Markdown转换为HTML或其他格式。你可以在Python的官方文档或第三方库文档中找到更多关于使用Python Markdown库的信息。 #### 引用[.reference_title] - *1* *2* *3* [CCF 2020题目题解 - Python](https://blog.csdn.net/qq_36930921/article/details/115461702)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值