1026: 부울 행렬
14190 단어 행렬
하나의 브리 행렬은 하나의 짝수성을 가지고 있는데, 즉, 이 행렬의 모든 줄과 모든 열의 합은 짝수이다.아래×4의 행렬은 패리티를 갖습니다. 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 모든 행의 합은 2, 0, 4, 2입니다.그것의 모든 열의 합은 2, 2, 2, 2이다.이 행렬을 읽고 짝짓기를 하는지 확인하는 프로그램을 작성해 주십시오.만약 없다면, 프로그램이 짝짓기를 할 수 있는지 (0을 1로, 1을 0으로 수정) 다시 한 번 확인해야 합니다.만약 불가능하다면, 이 행렬은 파괴된 것으로 여겨질 것이다.
입력 형식
여러 그룹의 테스트 데이터를 포함하는 것을 입력하십시오.각 그룹의 테스트 데이터의 첫 줄은 정수 n(1<=n<=100)으로 이 행렬의 크기를 대표한다.다음 줄에는 줄마다 n개의 정수가 있다.행렬은 0이나 1로 구성되어 있다.n=0이면 끝을 입력합니다.
출력
각 그룹의 입력에 대해 이 행렬에 패리티가 있으면 "OK"를 출력합니다.만약 짝짓기 성능이 이 행렬의 한 개만 수정해서 만들어진다면, "Change bit (i, j)"를 출력합니다. 여기에서 i와 j는 수정된 이 줄의 번호와 열 번호입니다.그렇지 않으면 "Corrupt"를 내보냅니다.
샘플 입력
41 0 1 00 0 0 01 1 1 10 1 0 141 0 1 00 0 1 01 1 1 10 1 0 141 0 1 00 1 1 01 1 1 10 1 0 10
샘플 출력
OKChange bit (2,3)Corrupt
코드가 여전히 문제가 있어서 알아낼 수 없다
1 #include <stdio.h>
2 int main(void)
3 {
4 //freopen("in.txt","r",stdin);
5 int num[101][101]={0};
6 int i,j,n;
7 int ia,ja;
8 int count1,count2;
9 count1=count2=0;
10
11 scanf("%d",&n);
12 while(n)
13 {
14
15 for(i=0;i<n;i++)
16 {
17 for(j=0;j<n;j++)
18 {
19 scanf("%d",&num[i][j]);
20 num[i][n]+=num[i][j];
21 }
22 }
23 for(j=0;j<n;j++)
24 {
25 for(i=0;i<n;i++)
26 {
27 num[n][j]+=num[i][j];
28 }
29 }
30 for(i=0;i<n;i++)
31 {
32 if((num[i][n]%2)!=0)
33 {
34 ia=i;
35 count1++;
36 }
37 if((num[n][i]%2)!=0)
38 {
39 ja=i;
40 count2++;
41 }
42 }
43 if(count1==0&&count2==0)
44 puts("OK");
45 else if(count1==1&&count2==1)
46 {
47 printf("Change bit (%d,%d)
",ia+1,ja+1);
48 }
49 else
50 puts("Corrupt");
51 scanf("%d",&n);
52 }
53 return 0;
54
55 }
공식 코드
1 #include<stdio.h>
2 #include<string.h>
3
4 int main()
5 {
6 //freopen("in.txt","r",stdin);
7 int n,m[100][100],r[100],c[100],i,j,x,y,R,C;
8 while(scanf("%d",&n)!=EOF,n)
9 {
10 memset(r,0,sizeof(r));
11 memset(c,0,sizeof(c));
12 for(i=0;i<n;i++)
13 for(j=0;j<n;j++)
14 {
15 scanf("%d",&m[i][j]);
16 r[i]+=m[i][j];
17 c[j]+=m[i][j];
18 }
19 for(R=C=i=0;i<n;i++)
20 {
21 if(r[i]%2)
22 {
23 R++;
24 x=i+1;
25 }
26 if(c[i]%2)
27 {
28 C++;
29 y=i+1;
30 }
31 }
32 if(!R&&!C)
33 puts("OK");
34 else if(R==1&&C==1)
35 printf("Change bit (%d,%d)
",x,y);
36 else
37 puts("Corrupt");
38 }
39 return 0;
40 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Numpy 퇴장? ! Sympy로 행렬을 편미분가필: 스칼라 함수를 벡터로 미분 안녕하세요, 노인 기술자입니다. 제 시대는 아직 끝나지 않습니다. 하지만 행렬 연산이라고 하면 Numpy라고 하는 시대는 끝난 것 같습니다. 그 이름도 Sympy (설마 신 py가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.