通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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; }
③处应填( )
std::min(f[u]+ f[v],LIM)
std::min(f[u]+ f[v]+ 1,LIM)
std::min(f[u]* f[v],LIM)
std::min(f[u]*(f[v]+ 1),LIM)
所属试卷:CSP-S1提高级初赛试卷[2023]
有如下程序(数组输出格式控制相关),运行时的输出结果是
以下代码的输出结果是( )。
函数fun功能是:将a、b中的两个两位正整数合并形成一
有以下程序程序运行后的输出结果是( )。
有以下程序:程序运行时键盘输入9<回车>,则输出的结果
以下选项中,当x为大于1的奇数时,值为0的表达式是
列表ls1=[1,43],ls2=ls1,ls1[0]
请读程序段以上程序段的输出结果为________。
C语言规定,简单变量作为实参时,他和对应形参之间的数据
把一下多项式写成只含7次乘法运算,其余皆为加、减运算的
下列关于多总线结构的叙述中,错误的是( )。
写一个shell 脚本,检查给出的串是否为回文(pal
在/home目录下查找文件名为。Profile的文件,
在SELECT子句中用 表示所有字段。
curseek是已定义的游标,关闭该游标的语句为 __
使用视图不仅可以查询数据,还可以更新数据,对视图的更新
哈希表的结点中只包含数据元素自身的信息,不包含任何指针
八进制数123456708 和076543218的和为
设x和y均为int型变量,则以下for循环中的scan
C语言中的字符变量用保留字_____来说明。
计算机高档语言程序的运营措施有编译执行和解释执行两种,
请阅读以下程序;输出结果为:
下面不属于软件需求分析阶段主要工作的是
由数字 1,1,2,4,8,8 所组成的不同的四位数的
现有一只青蛙,初始时在 n 号荷叶上。当它某一时刻在
1948年,( )将热力学中的熵引入信息通信领域,标志
输入:12 172 4 6 9 11 15 17 18
输入: 123 321输出: _________
输出 :___________________
在 C 语言中,判断 a 不等于 0 且 b 不等于
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2