[BASIC-23] 芯片测试

基础练习 芯片测试

时间限制:1.0s   内存限制:512.0MB

问题描述

  有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、测试结果矩阵中,第 i 列表示第 i 块芯片被其他芯片测试的结果

2、好芯片比坏芯片多,说明第 i 块芯片如果是好的,那么第 i 列数据中,1 的个数肯定多余 n / 2 ;如果是坏的,就少于 n / 2

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		while (scanner.hasNext()) {
			int n = scanner.nextInt();

			int[] count = new int[n];// 记录第i块芯片测试结果中1出现的个数
			int[][] result = new int[n][n];// 测试结果数据

			for (int i = 0; i < n; i++) {
				for (int j = 0; j < n; j++) {
					result[i][j] = scanner.nextInt();
					if (result[i][j] == 1) {
						count[j]++;
					}
				}
			}

			for (int i = 0; i < n; i++) {
				if (count[i] > n / 2) {
					System.out.print(i + 1);
					System.out.print(i == n - 1 ? "\r\n" : " ");
				}
			}
		}
	}
}

[BASIC-23] 芯片测试

时间: 2024-10-30 03:05:37

[BASIC-23] 芯片测试的相关文章

蓝桥杯 BASIC 23 芯片测试(基础、统计、数组)

[思路]:需要用手写一下.如下图一目了然. [AC代码]: #include <iostream> #include <algorithm> #include <iomanip> #include <cstdio> #include <cstring> using namespace std; #define MAX 20+2 int test[MAX][MAX]; char str[MAX][MAX]; int cnt[MAX]; int ma

芯片测试

一.写在前面 抽屉原理: 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果.这一现象就是我们所说的“抽屉原理”. 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素.” 抽屉原理有时也被称为鸽巢原理.它是组合数学中一个重要的原理. 第一抽屉原理 原理1: 把多于n+1个的物体放到n个抽屉里,则至少有一个抽屉里的东西不少于两件.   证明(反证法

用C++实现:芯片测试

问题描述 有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多. 每个芯片都能用来测试其他芯片.用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏.而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关). 给出所有芯片的测试结果,问哪些芯片是好芯片. 输入格式 输入数据第一行为一个整数n,表示芯片个数. 第二行到第n+1行为n*n的一张表,每行n个数据.表中的每个数据为0或1,在这n行中的第i行第j列(1≤i, j≤n)的数据表示用第i块芯片测试第

基础练习 芯片测试

问题描述 有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多. 每个芯片都能用来测试其他芯片.用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏.而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关). 给出所有芯片的测试结果,问哪些芯片是好芯片. 输入格式 输入数据第一行为一个整数n,表示芯片个数. 第二行到第n+1行为n*n的一张表,每行n个数据.表中的每个数据为0或1,在这n行中的第i行第j列(1≤i, j≤n)的数据表示用第i块芯片测试第

基础训练 芯片测试

芯片测试 /*************根据题意可知,如果是坏芯片则对应的列中除了对角线位置处所有的0的个数一定大于1的个数,又非好即坏************/ #include<iostream> #include<vector> using namespace std; int main(){ int n, flag=0; cin>>n; vector<vector<int> > vi(n+1, vector<int>(n+1,

SRAM芯片测试

完成SRAM芯片的测试,需要设计测试电路板.测试电路板主要提供测试接口和电源.芯片的控制信号和数据信号由红色飓风II-Xilinx FPGA 开发板提供,使用ISE13.2 软件建立测试工程,编写Verilog 测试程序(主要包括按照时序提供分频后的测试时钟.数据信号和控制信号),通过JTAG 下载到FPGA 的PROM 中,重新上电进行测试,通过RIGOL DS1102CA 双通道示波器捕捉信号. 将示波器的通道1连接到写使能信号,通道2连接到数据端D7.如图1 所示,上方的波形为通道1接收的

【8.23校内测试】【贪心】【线段树优化DP】

$m$的数据范围看起来非常有问题??仔细多列几个例子可以发现,在$m<=5$的时候,只要找到有两行状态按位$&$起来等于$0$,就是可行方案,如果没有就不行. #include<iostream> #include<cstdio> #include<cstring> using namespace std; int cnt[1<<4+1], n, m; int main ( ) { freopen ( "prob.in",

2.23专项测试复盘

将关键字序列50,40,95,20,15,70,60,45,80调整成一个小根堆,堆结构是15,20,60,45,40,70,95,50,80(). 解析:创建堆的基本思想:先把无序的关键字按顺序构造成完全二叉树,从最后一个分支节点开始往前,不断地利用筛选算法,将一棵棵子树调整为一个堆(让根与其左右子节点比,将他们三个最小的值选出来作为根,反复交换使所有结点满足小根),一直进行到完全二叉树的根节点为止. 答案:√ 设某强连通图中有 n 个顶点,则该强连通图中最小的边数为n,最大边数为n(n-1)

J1020、智能卡芯片制备工艺配方技术

1 01807813.3 薄片智能卡制造方法2 03112628.6 智能卡小额金融数据交换的方法及装置3 02125399.4 VLSI用的蒙格玛丽模乘算法及智能卡模乘器的VLSI结构4 02102502.9 用于从计算机对智能卡执行操作的方法5 02111878.7 紫外线胶加盖板封装智能卡用CPU模块的方法6 02111880.9 紫外线胶筑坝封装智能卡用CPU模块的方法7 02112898.7 预收费智能卡污(废)水排放计量自控终端8 01814140.4 智能卡和识别设备等的测试系统9