T1
题目大意
给定两个互质的数a,b,求最大正整数c,满足:不存在非负整数x,y,使等式ax+by=c成立。
题解
结论题,答案是a*b-a-b(据说有学过数竞的dalao一秒水过,然而我是打表找规律。。。)
T2
题目大意
给定n行简化后的代码(只有循环)及代码的时间复杂度,判断时间复杂度是否正确(如有语法错误另加判断)。
代码形式如下:
F i x y
E
其中F表示循环开始,i表示新声明的变量(由一个小写字母表示),初值为x,当i大于y时跳出循环(就相当于for循环),x和y可以为正整数(小于等于100),也可以为变量n(远大于100),E表示循环结束(注意可以有嵌套的循环)。
当同一循环内,i的变量名重复,则为语法错误;当循环开始标志F与结束标志E不对应时,也为语法错误。但x > y不视作语法错误
时间复杂度形式如下:
O(1) 或 O(n^m),其中m为小于等于100的正整数
注意O(1)是指常数时间复杂度而不是只运算1次
输入第一行为正整数T,表示有T组数据(T<=10)
每组数据输入第一行为正整数L和字符串O,表示代码行数和时间复杂度
接下来L行是给定的代码,保证没有多余的空行
对于每组数据,若程序时间复杂度与给定时间复杂度相同则输出Yes,否则输出No,若语法错误则输出ERR
样例输入:
5
2 O(1)
F a 1 9
E
4 O(n^1)
F i 1 n
E
F i 1 n
E
2 O(n^2)
F i n 1
E
4 O(1)
F i 1 1
F i 34 35
E
E
2 O(n^82)
F a 1 n
F b n n
样例输出:
Yes
Yes
No
ERR
ERR
样例解释:
第一、二组数据正确
第三组数据直接跳出循环,时间复杂度O(1)
第四组在嵌套循环中变量名重复
第五组没有结束标志E
题解
模拟,主要是字符串处理的细节,递归应该就可以过
T3
题目大意
给定一张n个点,m条带权边的带权有向图及正整数k,若1到n的最短路为d,求从1到n长度不超过d+k的路径条数
题解
这个真不会。。。我是先正向图算从一走到i的最短路,再反向图算从i走到n的最短路,最后暴力算长度为d+j(0<=j<=k)的路径数(不过貌似算错了。。。)