立聪堂德州十三局店 发表于 2025-1-19 15:03:40

图论DFS:黑红树

https://i-blog.csdnimg.cn/blog_migrate/53d454b46f0e4ed423fbc59aa79ba6e1
.png#pic_center
                                                                     我的个人主页                                                             {\large \mathsf{{\color{Red} 我的个人主页} } }                        我的个人主页
                                                         往                                                 {\color{Red} {\Huge 往} }                  往                                                         期                                                 {\color{Green} {\Huge 期} }                  期                                                         文                                                 {\color{Blue} {\Huge 文} }                  文                                                         章                                                 {\color{Orange} {\Huge 章}}                  章


[*]DFS 算法&#xff1
a;记忆化搜刮
[*]DFS 算法&#xff1
a;全排列题目
[*]DFS 算法&#xff1
a;洛谷B3625迷宫寻路
此系列更新频仍,求各位读者点赞
关注我可以相识更多内容哦
                                                         偷偷告诉你,我正在冲                               1
1
00                               粉                                                 {\color{Gray} {\small 偷偷告诉你,我正在冲1
1
00粉} }                  偷偷告诉你,我正在冲1
1
00粉
                                                         你们有什么想相识的可以发在批评区,我会仔细的看                                                 {\color{Gray} {\small 你们有什么想相识的可以发在批评区,我会仔细的看} }                  你们有什么想相识的可以发在批评区,我会仔细的看
                                                         1
1
00                               粉时我会抓几个做文章                                                 {\color{Gray} {\small1
1
00粉时我会抓几个做文章} }                  1
1
00粉时我会抓几个做文章


今天我们学什么

今天我们不学什么,就是做一道图论DFS的题目
题目

题目描述

给定一棵树,每个结点有一个整数权值,一开始每个结点均为黑色。
若相邻两个黑色结点的权值之和为质数,我们就可以把其中的一个结点变成红色。问最多可以把多少个点变为红色。
输入格式

第一行一个整数                                    n                              n                  n,表现树的结点数量。
第二行                                    n                              n                  n 个整数                                              a                            1
                                  ,                         ⋯                      ,                                 a                            n                                       a_1
, \cdots, a_n                  a1
​,⋯,an​,表现每个结点的权值。
接下来的                                    n                         −                         1
                              n-1
                  n−1
行,每行两个整数                                    x                         ,                         y                              x,y                  x,y,表现结点                                    x                         ,                         y                              x,y                  x,y 之间有一条边。
输出格式

一个整数,表现最多可以把多少个点变为红色。
样例 #1


样例输入 #1


3
1
2 3
1
3
1
2
样例输出 #1


1
提示

测试点编号                                                n                                          n                           n                                                               a                                     i                                                      a_i                           ai​1
,2                                                1
                                  ≤                                  n                                  ≤                                  20                                          1
\le n\le 20                           1
≤n≤20                                                1
                                  ≤                                             a                                     i                                              ≤                                  1
00                                          1
\le a_i\le 1
00                           1
≤ai​≤1
003,4                                                1
                                  ≤                                  n                                  ≤                                  1
000                                          1
\le n\le 1
000                           1
≤n≤1
000                                                1
                                  ≤                                             a                                     i                                              ≤                                  1
000                                          1
\le a_i\le 1
000                           1
≤ai​≤1
0005,6,7                                                1
                                  ≤                                  n                                  ≤                                  1
                                             0                                     5                                                      1
\le n\le 1
0^5                           1
≤n≤1
05                                                1
                                  ≤                                             a                                     i                                              ≤                                  1
                                             0                                     5                                                      1
\le a_i\le 1
0^5                           1
≤ai​≤1
058,9,1
0                                                1
                                  ≤                                  n                                  ≤                                  3                                  ×                                  1
                                             0                                     5                                                      1
\le n\le 3\times 1
0^5                           1
≤n≤3×1
05                                                1
                                  ≤                                             a                                     i                                              ≤                                  1
                                             0                                     6                                                      1
\le a_i\le 1
0^6                           1
≤ai​≤1
06 题解

思绪

简单的图论DFS模板题目,稍稍修改模板即可
代码

#include <bits/stdc++.h>using namespace std;const int N&#61
;300005;vector<int> G;int value,ans,n;bool visited;bool is_prime;void dfs(int step){        int now&#61
;value;        visited&#61
;true;        for(auto a:G)        {                if(!visited)                {                        int temp&#61
;value;                        if(is_prime)                        {                                ans++;                        }                        dfs(a);                }        }}int main(){        memset(is_prime,true,sizeof(is_prime));        is_prime&#61
;is_prime[1
]&#61
;false;        for(int i&#61
;2; i<&#61
;2000000; i++)        {                if(is_prime)                {                        for(int j&#61
;2; i*j<&#61
;2000000; j++)                        {                                is_prime&#61
;false;                        }                }        }        cin>>n;        for(int i&#61
;1
; i<&#61
;n; i++)        {                cin>>value;        }        for(int i&#61
;1
; i<n; i++)        {                int x,y;                cin>>x>>y;                G.push_back(y);                G.push_back(x);        }        for(int i&#61
;1
; i<&#61
;n; i++)        {                if(!visited)                {                        dfs(i);                }        }        cout<<ans;        return 0;} 怎么样,这是不是很简单呢&#xff1
f;
总结

有一些题是模板题,此时套上模板稍稍修改即可

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao1
23.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 图论DFS:黑红树