1.练习项目 问题描述梅林必须fu。在上一个问题中梅林将芙芙丢进了传送阵使得芙芙将会在接下来 20 年连续的传送。因此芙芙决定使用自己第 4 兽的能力终止传送从而找到梅林报仇。魔法师梅林在卡美洛召唤了 N 个传送阵编号 1∼N每个传送阵都能传送到另一个编号为 ai 的传送阵保证在一开始时每个传送阵在若干次传送后均可到达 1 号传送阵。现在芙芙可以修改一些 ai 的值使得它任何一点在传送 k 次后恰好都可以到达 1 号传送阵求出最少要改变 ai 的传送阵数量。输入格式第一行输入 2 个正整数 N,k表示传送阵的数量以及传送次数。第二行输入 N 个数字表示第 i 个传送阵可以传送至 ai 位置。输出格式输出一行一个整数表示最少要改变 ai 的传送阵数量。2.选择课程在蓝桥云课中选择题库选择题号5415并开始练习。3.开始练习1源码 #includebits/stdc.husing namespace std;using ll long long;const int N 2e510;vectorintg[N];int ind[N],dp[N];int n,k;ll ans0;void topu(){queueintq;for(int i1;in;i)if(!ind[i])q.push(i);while(!q.empty()){int xq.front();q.pop();for(const autoy:g[x]){if(y!1dp[x]k-1)ans;else dp[y]max(dp[y],dp[x]1);if(--ind[y]0)q.push(y);}}}int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cinnk;for(int i1;in;i){int a;cina;if(i1a!1){ans;continue;}ind[a];g[i].push_back(a);}topu();coutans\n;return 0;}2检验结果对此代码进行检验检验后无报错提交此代码判题结果为正确100分。3练习心得注意每段代码末尾的分号是否存在 如不存在则需即使补充输入法 是否切换 为英语模式语法是否错误。
C++课后习题训练记录Day145
发布时间:2026/6/30 1:13:59
1.练习项目 问题描述梅林必须fu。在上一个问题中梅林将芙芙丢进了传送阵使得芙芙将会在接下来 20 年连续的传送。因此芙芙决定使用自己第 4 兽的能力终止传送从而找到梅林报仇。魔法师梅林在卡美洛召唤了 N 个传送阵编号 1∼N每个传送阵都能传送到另一个编号为 ai 的传送阵保证在一开始时每个传送阵在若干次传送后均可到达 1 号传送阵。现在芙芙可以修改一些 ai 的值使得它任何一点在传送 k 次后恰好都可以到达 1 号传送阵求出最少要改变 ai 的传送阵数量。输入格式第一行输入 2 个正整数 N,k表示传送阵的数量以及传送次数。第二行输入 N 个数字表示第 i 个传送阵可以传送至 ai 位置。输出格式输出一行一个整数表示最少要改变 ai 的传送阵数量。2.选择课程在蓝桥云课中选择题库选择题号5415并开始练习。3.开始练习1源码 #includebits/stdc.husing namespace std;using ll long long;const int N 2e510;vectorintg[N];int ind[N],dp[N];int n,k;ll ans0;void topu(){queueintq;for(int i1;in;i)if(!ind[i])q.push(i);while(!q.empty()){int xq.front();q.pop();for(const autoy:g[x]){if(y!1dp[x]k-1)ans;else dp[y]max(dp[y],dp[x]1);if(--ind[y]0)q.push(y);}}}int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cinnk;for(int i1;in;i){int a;cina;if(i1a!1){ans;continue;}ind[a];g[i].push_back(a);}topu();coutans\n;return 0;}2检验结果对此代码进行检验检验后无报错提交此代码判题结果为正确100分。3练习心得注意每段代码末尾的分号是否存在 如不存在则需即使补充输入法 是否切换 为英语模式语法是否错误。