ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pojTest for Job

2022-03-25 16:00:37  阅读:133  来源: 互联网

标签:pojTest int memset son vis Job include dp


此题可用前向星建图,可优化时间,但我不会。。。

注意:用cin cout会超时。。。

ac代码:

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<vector>
 5 #include<cmath>
 6 #define ll long long
 7 #define inf 0x3f3f3f3f
 8 using namespace std;
 9 const int N = 100000 + 10;
10 
11 vector<int>vec[N];
12 int prof[N], vis[N], in[N];
13 int maxn = -inf;
14 int dp[N];
15 
16 int dfs(int u) {
17 
18     vis[u] = 1;
19     int len = vec[u].size();
20     if (len == 0) {
21         return prof[u];
22     }
23     for (int i = 0; i < len; i++) {
24         int son = vec[u][i];
25         if (!vis[son]) {
26             dp[son] = dfs(vec[u][i]);
27         }
28         dp[u] = max(dp[u], dp[son] + prof[u]);
29     }
30     return dp[u];
31 
32 }
33 
34 int main() {
35     
36     //ios::sync_with_stdio(0);
37     int n, m;
38     while (~scanf("%d %d", &n, &m)) {
39         memset(dp, -0x3f, sizeof(dp));
40         memset(vis, 0, sizeof(vis));
41         memset(in, 0, sizeof(in));
42         for (int i = 1; i <= n; i++) {
43             vec[i].clear();
44         }
45         maxn = -inf;
46         for (int i = 1; i <= n; i++) {
47             scanf("%d", &prof[i]);
48         }
49         for (int i = 1; i <= m; i++) {
50             int u, v;
51             scanf("%d %d", &u, &v);
52             in[v] = 1;
53             vec[u].push_back(v);
54         }
55         for (int i = 1; i <= n; i++) {
56             if (!in[i]) {
57                 maxn = max(maxn, dfs(i));
58             }
59         }
60         printf("%d\n", maxn);
61     }
62     return 0;
63 }

 

标签:pojTest,int,memset,son,vis,Job,include,dp
来源: https://www.cnblogs.com/wabi/p/16055088.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有