Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 미로찾기
- BFS
- 완전탐색
- BOJ
- 너비 우선 탐색
- 백준
- 완전 탐색
- 삼성테스트
- 후쿠오카 여행경비
- 시뮬레이션
- 알고리즘
- 큐
- 하카타역
- 삼성시험
- 다이나믹 프로그래밍
- 후쿠오카 요도바시 하카타
- deque
- 플로이드
- queue
- DP
- 삼성 SW 테스트
- dfs
- 플로이드 와샬
- 후쿠오카 4박 5일
- brute force
- 깊이 우선 탐색
- 일본 여행
- 후쿠오카
- IOS
- 후쿠오카 캐널시티
Archives
- Today
- Total
맛있는감귤
BOJ : 1613 역사 본문
문제 : https://www.acmicpc.net/problem/1613
github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/1613.cpp
i사건과 j사건의 연결고리를 검사하고 배열에 입력하고 마지막에 검사해 출력하는 형식으로 코드를 작성했다.
플로이드 와샬 알고리즘으로 해결.
입력이 400이기 때문에 연산횟수가 1억이 안넘지만 cin을 이용하면 TLE가 발생하고 scanf 사용하면 AC
이런 경우 때문에 scanf 사용하는 버릇이 생긴다
#include <cstdio> using namespace std; int n,k,s; bool incident[401][401]; int main(){ //cin사용하니 TLE scanf("%d%d",&n,&k); while(k--){ int a,b; scanf("%d%d",&a,&b); incident[a][b]=true; } for(int k=1; k<=n; k++){ for(int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ incident[i][j] = incident[i][j] || (incident[i][k]&&incident[k][j]); } } } scanf("%d",&s); while(s--){ int a,b; scanf("%d%d",&a,&b); if(!incident[a][b] && !incident[b][a]) printf("0\n"); else if(incident[a][b]) printf("-1\n"); else if(!incident[a][b] && incident[b][a]==1) printf("1\n"); } }
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
BOJ : 2577 숫자의 개수 (0) | 2017.01.16 |
---|---|
BOJ : 2839 설탕 배달 (0) | 2017.01.16 |
BOJ : 1600 말이 되고픈 원숭이 (0) | 2017.01.15 |
BOJ : 1389 케빈 베이컨의 6단계 법칙 (0) | 2017.01.15 |
BOJ : 1158 조세퍼스 문제 (0) | 2017.01.15 |