• CCF202012-Python题解


     

     期末预测之安全指数

    试题编号: 202012-1
    试题名称: 期末预测之安全指数
    时间限制: 1.0s
    内存限制: 512.0MB

    6
    2 60
    10 100
    0 70
    0 0
    -10 50
    10 60

    2
    -10 100
    -1 15

     1 n=int(input())
     2 summ=0
     3 for _ in range(n):
     4     s,w=map(int,input().split())
     5     summ+=(s*w)
     6 
     7 if summ>=0:
     8     print(summ)
     9 else:
    10     print(0)

    期末预测之最佳阈值

    原题链接:http://118.190.20.162/view.page?gpid=T122

      

     70分超时代码,当m=10e^5 这表示着这题 暴力两层for循环是没有出路的

     1 n=int(input())
     2 ans=[list(map(int, input().split())) for _ in range(n)]
     3 
     4 summ=[]
     5 maxx=0
     6 a=[]
     7 for i in range(n):
     8     tmp=ans[i][0]
     9     if tmp not in a:
    10         num=0
    11         for j in range(n):
    12             if ans[j][0]>=tmp and ans[j][1]==1:
    13                 num+=1
    14             elif ans[j][0]<tmp and ans[j][1]==0:
    15                 num+=1
    16         if num>=maxx:
    17             maxx=num
    18             summ.append([num,ans[i][0]])
    19         a.append(tmp)
    20 find=0
    21 
    22 for i in range(len(summ)):
    23     if summ[i][0]==maxx:
    24         if summ[i][1]>find:
    25             find=summ[i][1]
    26     
    27 print(find)
    View Code

    首先了解一下什么是前缀和,前缀和实现原理就是高中的等差数列,忘记的话可以看下b站讲解或者刷下LeetCode560

    在排序完以后,这题就是统计在(0的个数)当前位置(1的个数)

    import sys
    n=int(input())
    arr=[list(map(int,sys.stdin.readline().split())) for _ in range(n)]
    summ=[0 for i in range(n+1)]
    listArr=sorted(arr,key=lambda x:x[0])
    redu=set() #去重,减少循环次数
    for i in range(1,n+1):
        summ[i]=summ[i-1]+listArr[i-1][1]
    
    target=-1
    find=-1
    
    for i,pair in enumerate(listArr):
        if pair[0] in redu:
            continue
        redu.add(pair[0])
        one=summ[n]-summ[i]#总共为1的个数-从1到i为1的个数
        zero=i-summ[i]#减去比当前i小的值还为1的数
        total=zero+one
        if total>=target:
            target=total
            find=pair[0]
    
    print(find)
  • 相关阅读:
    Android开发--去掉标题栏
    Android开发app如何设定应用图标下的应用名称为汉字以及自定义图标
    mysql的sql其他 SQL中inner join、outer join和cross join的区别
    中文乱码问题 -js页面传值乱码
    liunx Centos Xshell 简单命令汇总
    html 属性及相关应用-实例
    时间格式转换
    三元表达式
    Grid++Report生成简单的条形码、Excel导出、图表控件 等
    jmp指令的简单应用
  • 原文地址:https://www.cnblogs.com/z-712/p/14490780.html
Copyright © 2020-2023  润新知