2026/2/17 5:21:00
网站建设
项目流程
做网站以前出名的公司,seo怎么做网站的tdk,泗水网站建设ys178,做那个免费观看视频网站搜索#xff1a;穷尽所有的可能找到最优解#xff0c;或统计和法解的个数分类#xff1a;dfs,bfs特点#xff1a;有多种优化方式#xff0c;如减小状态空间#xff0c;更改搜索顺序#xff0c;剪枝等对于bfs#xff0c;每次都先处理该层图层例题#xff1a;题目描述小…搜索穷尽所有的可能找到最优解或统计和法解的个数分类dfs,bfs特点有多种优化方式如减小状态空间更改搜索顺序剪枝等对于bfs每次都先处理该层图层例题题目描述小 A 有一棵 n 个结点的树这些结点依次以 1,2,⋯,n 标号。小 A 想在这棵树上漫步。具体来说小 A 会从树上的某个结点出发每一步可以移动到与当前结点相邻的结点并且小 A 只会在偶数步可以是零步后结束漫步。现在小 A 想知道对于树上的每个结点从这个结点出发开始漫步经过偶数步能结束漫步的结点有多少个可以经过重复的节点。输入格式第一行一个正整数 n。接下来 n−1 行每行两个整数 ui,vi表示树上有⼀条连接结点 ui 和结点 vi 的边。输出格式一行n 个整数。第 i 个整数表示从结点 i 出发开始漫步能结束漫步的结点数量。输入输出样例输入 #1复制3 1 3 2 3输出 #1复制2 2 1import java.util.*;//一次性等于使用所有util的 //树是二分图无奇环任意两点的路径长度奇偶性固定 //需要二分 //- 同层节点如偶-偶、奇-奇层数差为0偶数→ 路径长度必为偶数 //- 异层节点如偶-奇层数差为1奇数→ 路径长度必为奇数 public class p11962 { static ListListInteger adj;//邻接表 static int[] color; static int cnt0,cnt1;//静态修饰的默认为0 public static void main(String[] args) { Scanner sc new Scanner(System.in); int n sc.nextInt(); adj new ArrayList();//对邻接表的初始化 for (int i 0; i n; i) adj.add(new ArrayList());//每次循环给外层列表adj添加一个新的空arraylist,整体是邻接表的内层初始化 for (int i 0; i n-1; i) { int u sc.nextInt(), v sc.nextInt(); adj.get(u).add(v);//节点u的相邻节点包含v adj.get(v).add(u);//就相当于一切的基础相当于1棵树不过两者相互连结需要在后面用 if (color[v] -1)来保持正常 } color new int[n1]; Arrays.fill(color, -1);//将数组中所有的元素都初始化为-1 bfs(1); // 从节点1开始染色 // 输出每个节点的结果 for (int i 1; i n; i) { System.out.print((color[i] 0 ? cnt0 : cnt1) ); }//color[i]0说明是偶数分组该组有几个就输出几个 //color0 说明当前节点属于“偶层分组”而偶层分组的所有节点都能通过偶数步到达当前节点 //color1 时输出的是 cnt1 ——因为 color1 表示当前节点属于“奇层分组”该分组的所有节点都能通过偶数步到达当前节点 // cnt1 正是这个分组的总节点数。 } static void bfs(int start) {//广度优先搜索 QueueInteger q new LinkedList(); q.add(start);//1.队列的作用维持“待处理节点”顺序确保先处理父节点、再处理子节点符合树的层级遍历逻辑 color[start] 0; cnt0; while (!q.isEmpty()) {//队列不为空就持续染色 int u q.poll();//取出头部poll是取出并移除 for (int v : adj.get(u)) {//adj.u代表的是与节点u相邻的所有节点整体上市遍历节点u相邻的所有节点后赋值给v if (color[v] -1) {//保证只能被染色一次,想想之前输入的时候队adj做的想象树从上往下找这行代码就杜绝从下往上的可能 color[v] color[u] ^ 1; // 0^11,1^10---v一定与u相邻这行本质上就是给v和u相反的颜色 if (color[v] 0) cnt0;//计数 else cnt1; q.add(v);//这个队列在for循环的时候一直加 } } } } }