XTUJ 1173 Five Tiger (시 뮬 레이 션)
Five Tiger
Accepted : 34
Submit : 107
Time Limit : 1000 MS
Memory Limit : 65536 KB
제목 에 따 르 면 오호 기 는 동북 민간 에 전해 지 는 놀이 로 GG 는 어 렸 을 때 사촌 형 에 게 비참 하 게 학대 당 했다.각 지역 의 규칙 이 다 를 수 있 고 GG 의 추억 이 정확 하지 않 을 수 있 으 므 로 규칙 이 평소에 하 는 것 과 충돌 이 있 으 면 이곳 을 위주 로 하 세 요.바둑판 은 가로 다섯 개, 세로 다섯 개의 직선 으로 25 개의 교차점 을 형성 하고 쌍방 은 돌아 가면 서 바둑판 을 교차점 에 놓는다 (필요 한 각자 와 바둑판 의 수가 많 지 않 기 때문에 12 + 13 밖 에 되 지 않 았 다. GG 가 어 렸 을 때 장기 의 바둑판 과 바둑 알 을 사용 했다. 정말 큰 바둑판 으로 시원 하 다 ~ ~) 쌍방 이 바둑판 을 가득 채운 후에 (먼저 13 개의 바둑 알 을 두 었 고 나중에 12 개의 바둑 알 을 두 었 다)쌍방 이 배열 한 진형 에 근거 하여 점 수 를 계산 하 다.(물론 점 수 를 계산 한 후에 상대방 의 해당 개 수 를 말 한 다음 에 바둑 알 을 한 칸 한 칸 씩 옮 겨 서 진형 을 계속 형성 하고 상대방 의 바둑 알 신 호 를 말 한 후에 GG 의 표현 이 명확 하지 않 으 면 더 이상 후속 문제 에서 문 제 를 내지 않 는 다) 지금 GG 는 당신 에 게 계산 을 도와 달라 고 하고 싶 습 니 다. 쌍방 이 배열 한 진형 은 각각 얼마나 득점 합 니까?그 중에서 점 수 를 기록 하 는 진형 은 (o 로 바둑돌 의 타 점 을 표시) 대오 호 (10 점) 가 네 구석 과 가장 중간 에 있 는 위치
o...o
.....
..o..
.....
o...o
오호 (5 점) 를 차지 하 라 고 요구 했다. 아래 그림 과 같은 진형 o.o
.o.
o.o
은 하늘 로 통한다 (5 점): 가로 / 세로 / 세로 다섯 개의 바둑돌 을 한 직선 으로 연결 했다. 예 를 들 어 ..... ..o.. o....
ooooo ..o.. .o...
..... ..o.. ..o..
..... ..o.. ...o.
..... ..o.. ....o
4 경사 (4 점): 엄 격 히 정의 하면 GG 는 잘 모 르 겠 지만 한 마디 로 다음 과 같은 네 가지 ...o. ..... ..... .o...
..o.. o.... ....o ..o..
.o... .o... ...o. ...o.
o.... ..o.. ..o.. ....o
..... ...o. .o... .....
만 있다.삼 사 (3 점): 엄 격 히 정의 하면 GG 는 잘 모 르 겠 습 니 다. 한 마디 로 다음 과 같은 네 가지 ..o.. ..... ..... ..o..
.o... ..... ..... ...o.
o.... o.... ....o ....o
..... .o... ...o. .....
..... ..o.. ..o.. .....
작은 두 (1 점) 만 있 습 니 다. 네 개의 바둑 알 이 하나의 최소 정사각형 oo
oo
예 1 o...o
.o.o.
..o..
.oooo
o..oo
o 이 유 저 는 큰 오호 (10 점) 1 개, 작은 오호 (5 점) 1 개, 통 천 (10 점) 2 개, 작은 두 (1 점) 1 개 를 형 성 했 습 니 다. 총 점: 10 + 5 + 10 * 2 + 1 = 36 예 2 .o.o.
o.o.o
.o.o.
o.o.o
.o.o.
o 이 유 저 는 4 개의 작은 오호, 4 개의 경사 총 점 5 * 4 + 4 * 4 = 36 여러 조 의 테스트 데 이 터 를 입력 하 였 습 니 다.먼저 하나의 정수 T (1 ≤ T ≤ 10000) 로 한 줄 을 차지 하고 테스트 데 이 터 를 나타 내 는 그룹 수 입 니 다. 각 조 의 테스트 데이터 에 대해 6 줄 을 차지 합 니 다.우선 공 행 다음 5 행 은 하나의 정 세 를 나타 낸다.즉, 줄 당 5 글자 (x 는 선 수 를 나타 내 고 o 는 후 수 를 나타 낸다. 즉, 13 개의 x 와 12 개의 o) 가 각 조 의 테스트 데이터 에 대해 한 줄 을 출력 한다. 결 과 는 두 개의 정수 이 고 사 이 를 하나의 빈 칸 으로 나 누 어 각각 선수 (x) 의 득점 과 후수 (o) 의 득점 을 나타 낸다.샘플 입력 2
oxxxo
xoxox
xxoxx
xoooo
oxxoo
xoxox
oxoxo
xoxox
oxoxo
xoxox
샘플 출력 9 26
57 36
Source XTU Online Judge 오늘 ac 의 두 번 째 문제 이자 시 뮬 레이 션 문제 입 니 다. 생각 이 복잡 하지 않 습 니 다. 제목 의 뜻 에 따라 함 수 를 하나씩 쓰 면 됩 니 다. 주로 입 출력 할 때 아버지 가 약간 구 겨 집 니 다.생각 대로 썼 는 지 단번에 썼 는 지 오늘 이 바로 이 문 제 를 오랫동안 풀 었 는데 다행히 결국은 ac 였 다. 다음은 ac 의 코드: #include <stdio.h>
#include <iostream>
using namespace std;
char Matrix[5][5];
using namespace std;
int big_tiger(char ch)// 10
{
if(Matrix[0][0]==ch && Matrix[0][4]==ch && Matrix[2][2]==ch && Matrix[4][0]==ch && Matrix[4][4]==ch)
return 10;
else
return 0;
}
int small_tiger(char ch)// 5
{
int total = 0;
int i=1,j=1;
for(i=1; i<4; i++)
for(j=1; j<4; j++)
{
if(Matrix[i][j]==ch && Matrix[i-1][j-1]==ch && Matrix[i+1][j+1]==ch && Matrix[i-1][j+1]==ch && Matrix[i+1][j-1]==ch)
total += 5;
}
return total;
}
int sky(char ch)// 5
{
int total = 0;
int i;
for(i=0; i<5; i++)
{
if(Matrix[i][0]==ch && Matrix[i][1]==ch && Matrix[i][2]==ch && Matrix[i][3]==ch && Matrix[i][4]==ch)
total += 5;
if(Matrix[0][i]==ch && Matrix[1][i]==ch && Matrix[2][i]==ch && Matrix[3][i]==ch && Matrix[4][i]==ch)
total += 5;
}
if(Matrix[0][0]==ch && Matrix[1][1]==ch && Matrix[2][2]==ch && Matrix[3][3]==ch && Matrix[4][4]==ch)
total+=5;
if(Matrix[0][4]==ch && Matrix[1][3]==ch && Matrix[2][2]==ch && Matrix[3][1]==ch && Matrix[4][0]==ch)
total+=5;
return total;
}
int four(char ch)// 4
{
int total=0;
if(Matrix[0][3]==ch && Matrix[1][2]==ch && Matrix[2][1]==ch && Matrix[3][0]==ch)
total += 4;
if(Matrix[1][0]==ch && Matrix[2][1]==ch && Matrix[3][2]==ch && Matrix[4][3]==ch)
total += 4;
if(Matrix[1][4]==ch && Matrix[2][3]==ch && Matrix[3][2]==ch && Matrix[4][1]==ch)
total += 4;
if(Matrix[0][1]==ch && Matrix[1][2]==ch && Matrix[2][3]==ch && Matrix[3][4]==ch)
total += 4;
return total;
}
int three(char ch)// 3
{
int total=0;
if(Matrix[0][2]==ch && Matrix[1][1]==ch && Matrix[2][0]==ch)
total += 3;
if(Matrix[2][0]==ch && Matrix[3][1]==ch && Matrix[4][2]==ch)
total += 3;
if(Matrix[2][4]==ch && Matrix[3][3]==ch && Matrix[4][2]==ch)
total += 3;
if(Matrix[0][2]==ch && Matrix[1][3]==ch && Matrix[2][4]==ch)
total += 3;
return total;
}
int small_dou(char ch)// 1
{
int total = 0;
int i,j;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
if(Matrix[i][j]==ch && Matrix[i+1][j]==ch && Matrix[i][j+1]==ch && Matrix[i+1][j+1]==ch)
{
total++;
}
return total;
}
int main()
{
int t,frist,last ,i,j;
scanf("%d",&t);
getchar();// ;
//cin>>t;// c , cin , , !!
while(t--)
{
getchar();//
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
scanf("%c",&Matrix[i][j]);
getchar();//
//cin>>Matrix[i][j];
}
frist=last=0;
frist=big_tiger('x')+small_tiger('x')+sky('x')+four('x')+three('x')+small_dou('x');
last=big_tiger('o')+small_tiger('o')+sky('o')+four('o')+three('o')+small_dou('o');
printf("%d %d
",frist,last);
}
return 0;
}
ac 몇 개의 간단 한 문제 만 풀 었 습 니 다. 인터넷 에 있 는 대 신 이 자신의 경험 을 말 할 때 거의 7.8 백 문 제 를 풀 었 습 니 다. 무 겁 고 갈 길이 멀 군요!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.