通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"CSP考试" 试卷中 CSP-S1提高级初赛试卷[2023] 中有题目如下:
第1题
(第k小路径)给定一张.个点.条边的有向无环图,顶点编号从0到n-1。对于一条路径,我们定义"路径序列"为该路径从起点出发依次经过的顶点编号构成的序列。求所有至少包含一个点的简单路径中,“路径序列"字典序第k小的路径。保证存在至少k条路径。上述参数满足1≤n.m≤105和1≤k≤1018。
在程序中,我们求出从每个点出发的路径数量。超过1018的数都用1018表示。然后我们根据k的值和每个顶点的路径数量,确定路径的起点,然后可以类似地依次求出路径中的每个点。
试补全程序。
#include <iostream> #include <algorithm> #include <vector> const int MAXN = 100000; constlonglongLIM=100000000000000000011; int n,m,deg[MAXN]; std::vector<int> E[MAXN]; long long k,f[MAXN]; int next(std::vector<int>cand,long long &k){ std::sort(cand.begin(),cand.end()); for(int u : cand){ if (①)return u; k -= f[u]; } return -1; } int main(){ std::cin>>n>>m>>k; for(inti=0;i<m;++i){ int u, v; std::cin >>u >> v;//一条从u到v的边 E[u].push_back(v); ++deg[v]; } std::vector<int> Q; for(inti=0;i<n;++i) if (!deg[i])Q.push_back(i); for(inti=0;i<n;++i){ int u = Q[i]; for (int v : E[u]){ if (②)Q.push_back(v); --deg[v]; } } std::reverse(Q.begin(), Q.end()); for(int u : Q){ f[u]= 1; for(int v:E[u])f[u]=③; } int u = next(Q,k); std::cout << u << std::endl; while(④){ ⑤; u = next(E[u],k); std::cout << u << std::endl; } return 0; }
②处应填( )
deg[v]== 1
deg[v]== o
deg[v]>1
deg[v]>o
所属试卷:CSP-S1提高级初赛试卷[2023]
关于关键字class和typename,下列表述中正确
如果派生类以protected方式继承基类,则原基类的
网络空间是继陆海空天之后的“第五疆域”,网络技术是网络
定义学生选修课程的关系模式如下:SC(S#, Sn,
编写一个函数fun它的功能是:实现两个字符串的连接(使
在教师表中,如果要找出职称为“教授”的教师,所采用的关
某二叉树中有n个叶子结点,则该二叉树中度为2的结点数为
编写程序,其功能为打印如下图所示图形。 * *** *
表达式 3<5>2 的值为__________。
定义函数时,即使该函数不需要接收任何参数,也必须保留一
已知列表x=[1,2],执行语句y=x后,表达式 x
下面程序的运行结果________。
在Linux系统中,以( )方式访问设备。
交换线程通过三种途径来缩减已使用的内存页面:____、
用户编写了一个文本文件a.txt,想将该文件名称改为t
E-R方法的三要素是:实体、属性和 。
Mysql锁的粒度越小,并发度就越 ___,开销越大,
若关系R满足1NF,且它的每一非主属性完全函数依赖于候
在用堆排序算法排序时,如果要进行增序排序,则需要采用“
2023年CSP-S1阅读程序题3:假设输入总是合法的
在C++中,下面哪个关键字用于声明一个变量,其值不能被
若下图为一段差分曼彻斯特编码信号波形,则其编码的二进制
依次将关键字5, 6, 9, 13, 8,2, 12,
有以下程序
若有如下程序段,其中 s、a、b、c 均已定义为整型变
(切割绳子)有 n条绳子,每条绳子的长度已知且均为正整
1)输入:4 3输出:( )2)输入:2017 101
(两元序列)试求一个整数序列中,最长的仅包含两个不同整
是目前互联网上常用的E-mail服务协议。
输出: ________________
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2