• 芯片测试


    1.芯片测试

    题目描述

    ​ 有n(2≤n≤20)块芯片,有好有坏,已知①好芯片比坏芯片多。 每个芯片都能用来测试其他芯片。②用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。 给出所有芯片的测试结果,问哪些芯片是好芯片。 输入 输入数据第一行为一个整数n,表示芯片个数。 第二行到第n+1行为n*n的一张表,每行n个数据。表中的每个数据为0或1,在这n行中的第i行第j列(1≤i, j≤n)的数据表示用第i块芯片测试第j块芯片时得到的测试结果,1表示好,0表示坏,i=j时一律为1(并不表示该芯片对本身的测试结果。芯片不能对本 身进行测试)。 输出 按从小到大的顺序输出所有好芯片的编号

    样例输入

    3

    1 0 1

    0 1 0

    1 0 1

    样例输出 1 3

    分析

    • 题目意思:好的测好的:1;好的测坏的:0;坏的测好的:1或0;坏的测坏的:1或0。总体上好的大于坏的。举个例子,假如我们有100个待测芯片,其中51个好的,49个坏的,我现在拿到一个好的,剩下的50个好的会测出来50个1,49个坏的会随机给出0或者1,最坏的情况给了49个0。可以看出,我们的被测物,只要得到的1不小于一半就可以说明,被测芯片是好的,输出这个芯片的编号即可。

    代码

    n = int(input())
    s=[]
    for i in range(n):
        s.append(input().split()) #用append的函数来添加读入
    '''二维数组的读入(2):
    a = [[]*n]*n   #列表套列表
    for i in range(n):
        a[i]=[j for j in input().split()]#对每一行的读入i++
    '''
    for j in range(n):#列号
        t=0
        for i in range(n):#行号
            if s[i][j]=='1':
                t+=1  #统计数组为元素为1的
            if t>n/2:#比较
                print(j+1,' ',end='')#输出的是行号
    

    python没数组类型,二维数组用列表套列表来存放:[[1,2,1],[4,2,7],[6,9,0]]

    结果

  • 相关阅读:
    【18焦作网络赛 J】 大数开方
    最小圆覆盖
    高斯消元
    回文自动机 PAM
    后缀自动机 SAM
    后缀数组 SA
    左偏树(可并堆)
    动态树LCT(Link-Cut-Tree)
    职场自我推销10大金点子
    数据库笔记
  • 原文地址:https://www.cnblogs.com/lushuang55/p/14650343.html
Copyright © 2020-2023  润新知