虽然本题解所讲述的不是最优解,但是能过
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T1
数据范围
1≤T≤100
1≤a,b≤1000
可以考虑直接暴力,使用O(t*min(a,b))的时间复杂度来过。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T2
已知4!=1* 2 * 3 * 4 = 24
已知num!=num*(num-1)!
所以只要x>=4,则x!包含4,即x是24的倍数
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T3
这真的不应该是第一题吗?
第三题肥肠简单,直接输出
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T4
如果我没记错的话
科普小知识:有一个函数叫做"next_permutation"
作用:搞出下一个排列
返回值:能否生成下一个更大的排列
时间复杂度:O(n) (n:数组的长度)
食用用方法:和sort一样。例:next_permutation(v.begin(),v.end());
如果运运用这个函数,则时间复杂度为O(nm),可以通过(当n=10时,max(m)=3628800)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T5
个人感觉这道题比第六题难
”小王的任务是找到一个最大的数 y“
能量值相同时,y的位数越多,则y越大(无前导零)
如何使y变大呢?
例:x=6,能量值=6!
6!=5!*6=5!*3!
所以y=6或53
当然选53啦~
根据观察,5、7只能等于5!、7!,但其它数字都可以改变。
以下是每个数字的最优解:
1:1
2:2
3:3
4:22
5:5
6:53
7:7
8:7222
9:7332
作者代码有点丑QAQ
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T6
”可以自由地将这个数组进行重新排列,并依照重新排列后的顺序逐个取出数组中的元素。小王可以选择任何一个元素作为开始。而之后,每次取出的元素如果比上一次取出的元素大,作为奖励,小明就会获得一束精美的玫瑰花,取第一个元素的时候,没有花“
则可以将原来的数组分为几个数组。
怎样使玫瑰花数量最多呢?
当数组为升序时,玫瑰花数量最多。
但是——排序之后,可能会出现l[i]==l[i+1]的现象。
所以我们可以将原来的单调不减数组弄成几个升序数组,这样就可以使玫瑰花的数量最多了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
太好了,终于写完了!