문제를 해석하면 직속 상사에게 혼나면 아래도 다 혼난다그 때 모두가 혼난 정도를 출력하면 된다 트리로 구성되기 때문에 혼나는 정도를 미리 저장해두고dfs를 돌리며 자식들에게 값을 물려주면 된다 처음에 순서대로 방문한다고 혼자 착각해서 한번 틀렸다 ㅎㅎ.. 소스코드1234567891011121314151617181920212223242526272829303132333435#include #include #include using namespace std;const int MAXN = 1e5 + 5;int n, m;vector Graph;int cost[MAXN];bool check[MAXN];int ans[MAXN];void dfs(int x,int sum) { check[x] = true; int c =..
IUPC 기출 문제다세그먼트트리 + lazy를 쓰는문제 한가지 걸리는게 있다면 트리를 세그먼트트리로 바꿔야 한다는 것..!말로만 들었지 해본적이 없어서 찾아서 공부하며 풀어봤다 후위순회를 돌리고 (내위치-자식수) ~ 내위치 로 구간을 정해주면 된다!그럼 자식들 모두 업데이트를 시켜줄 수 있다 그것만 한다면 기본적인 lazy문제로 바뀐다! 소스코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#include #include #include #inclu..
아주대학교에서 2018 SHAKE!가 열렸다Shake!는 경인남부 6개대학 프로그래밍 대회다S는 성균관대H는 한양대 에리카A는 아주대K는 경희대E는 항공대!는 거꾸로하면 i라서 인하대 ㅎㅎㅎ라고 알고있다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 틀렸으면 누가 말점 ㅎㅎ 작년에는 스태프로 참가했는데 올해는 인하대학교 프로그래밍 경시대회(IUPC) 문제 출제자 자격으로 참가자로 SHAKE!에 왔다...! 멋있다..! 먹을거 많았다 ㅎㅎㅎ 역시 대회는 먹으러 가야지 SHAKE가서 느꼈는데 IUPC할 때 간식을 너무 많이 산거같다 IUPC 간식 ㅋㅋㅋㅋㅋㅋㅋㅋ 홈플에서 10+1하길래 22만원어치사씅니까과자 + 음료수 220개정도 산듯 ㅎㅎ 성공적인 대회 = 먹을게 많은 대회 대회장은 이런식으로 생겼따2명이 한 테이블에 앉았는데 한명..
나의 새로운 친구가 생겼다원더스 에어프라이어....! 박스 개봉했다 ㅎㅎㅎ 정말 밥솥만하다 친하게 지내야지 오늘 사자마자 바로 써봤다 오늘의 재료다..!앞다리살 / 닭다리살 / 마늘 / 단호박/ 김치~! 아래 마늘과 단호박을 먼저 깔아주고 위에 고기를 올린다~근데 고기 올리고 신나서 사진 안찍었다 먼저 15분 구워주고 뒤집는다.. 피가보인ㄷ.. 요리는 구우면 끝ㅇ..!다 굽고 잘라서 접시에 담고바로 다이어트용 닭가슴살 찍어먹기 위해 산굽네 볼케이노 소스를 꺼내준다 잘 구워진다...뻥이고 보면 다 안익었다먹다가 다시구웠따 ㅎ 에어프라이기 나쁘지 않다...!다음엔 여유롭게 충분히 구워야겠다~~
문제를 요약하자면예를 들어 배열 [1,5,4,1,3]이 있을 때 우리는 a가 먼저 나오고 b가 나중에 나오는 순서쌍 (a,b)에 수를 찾으면 된다무슨 말이냐면 순서쌍 (1,3)은 1이 앞에 3이 뒤에 이므로 가능하다근데 (3,1) 같은 경우는 3보다 1이 앞에 있으므로 교차하게 되어 불가능하다즉 맨 앞과 맨 뒤에서 출발했을 때 교차하지 않는 순서쌍의 수를 찾으면 된다!+ 중복불가 문제는 set과 map을 사용해 풀었다map에는 각 숫자의 수를 저장했고 set은 내가 갈 수 있는 수를 의미한다그럼 맨 앞부터 수를 보면서 set의 size만큼을 더해주면 된다이 때 내가 볼 때마다 map에서 수를 1씩 줄여준다 그리고 0이 되면 set에서 사라지게 해준다추가로 used배열을 사용했는데 used는 이미 본 숫자..
Bessis와 Elsie가 카드게임을 한다카드는 1~N*2까지 있고 그 중 입력으로 주어지는 N개를 Elsie가 가지고 있다게임의 규칙은 이렇다 Elsie는 입력 순으로 카드를 낸다처음 N/2판 까지는 카드 숫자가 큰 사람이 이긴다나머지는 숫자가 작은 사람이 이긴다 카드를 반반 쪼개서 upper_bound를 하면 답을 찾을 수 있다!처음에는 엘씨의 앞쪽카드 N/2개와 베씨의 뒤쪽카드 N/2그 다음에는 반대로 하면 된다 소스코드1234567891011121314151617181920212223242526272829303132333435363738#include #include #include #include using namespace std;int n;bool used[100005];int main() ..
삼성 SW 역량테스트에 나온 문제다비트를 통해 완전탐색을 하면 답을 구할 수 있다치킨집과 집을 미리 vt에 따로 담아두고 for문을 돌리며 bit가 m개 체크된다면 지금 체크된 치킨집과 집들과의 최소거리를 다 구해보면 된다! 소스코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include #include #include #include using namespace std;int map[55][55], n, m,ccnt;vector chi, home; int dist(int x1, int y1, int x2, int y2) { return abs(x1 - x2) + abs(y1 - y2);..
백트래킹으로 완탐을 이용하는 기본문제!6개의 숫자가 다 모이면 출력해주자~! 소스코드1234567891011121314151617181920212223#include #include using namespace std;int arr[50],k,n;void go(vector& vt,int pos) { if (vt.size() == 6) { for (int i = 0; i n) return; vt.push_back(arr[pos]); go(vt, pos + 1); vt.pop_back(); go(vt, pos + 1);}int main() { while (scanf(" %d", &n)) { if (n == 0) return 0; for (int i = 1; i