#include #include #include #define INF 100000000; using namespace std; vector a[1001]; priority_queuepq; int d[1001]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int N; int M; int start; int end; cin>>N>>M; for(int i = 1; i x>>y>>z; a[x].push_back({y, z}); } cin>>start>>end; pq.push(make_pair(0, start)); d[start] = 0; while(!pq.empty()){ int cost = pq.top().first; int cur =..
https://www.acmicpc.net/problem/1967 #include #include #include #define MAX 10001 using namespace std; vectorv[MAX]; bool visited[10001] = {false}; int ans = 0; int endpoint = 0; void dfs(int num, int length){ if(visited[num]){ return; } visited[num] = true; if(ans < length){ ans = length; endpoint = num; } for(int i = 0; i < v[num].size(); i++){ int next = v[num][i].first; int cost = v[num][i]...
https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net #include #define MAX 500000 using namespace std; int dp[MAX][4] = {0}; int dp2[MAX][4] = {0}; int main(){ int N; cin >> N; for(int i = 1; i dp[i][j]; } } for(int i = 1; i