简答题

课程名称:NOC软件创意编程

题目:比k大的数 【题目描述】 一个不含0的n位数,其中值等于i的数码有ci个(1≤i≤9)。 在这个n位数的所有可能的值中,比k大的值最小是多少? 【输入格式】 第1行,2个正整数n,k。 第2行,9个非负整数c1,c2,…,c9,分别表示1~9的个数。 【输出格式】 输出所有可能的值中,比k大的值的最小值。 如果没有比k大的值,输出-1。 【输入样例1】 3 213 1 1 1 0 0 0 0 0 0 【输出样例1】 231 【输入样例2】 4 4000 1 0 2 1 0 0 0 0 0 【输出样例2】 4133  【输入样例3】 3 9999 1 1 1 0 0 0 0 0 0 【输出样例3】 -1 【输入样例4】 21 791823456795285473500 1 2 2 3 2 3 2 3 3 【输出样例4】 791823456795286344689  【样例1说明】 有1个1、1个2、1个3,可能的值有123,132,213,231,312,321,共6个。其中,比k=213 大的最小值是231。 【样例2说明】 有1个1、2个3、1个4,可能的值有 1334,1343,1433,3134,3143,3314,3341,3413,3431,4133,4313,4331共12个。其中,比k=4000 大的最小数是4133。 【样例3说明】 有1个1、1个2、1个3,可以得到的最大值321都比k=9999小,所以无法得到比k大的值。 【样例4说明】 输入输出可能超过64位整数类型范围。 【数据范围】 对于25%的数据,n≤9;k≤109。 对于50%的数据,n≤200;k≤10200。 对于100%的数据,1≤n≤500000;1≤k≤10500001; Ci ≥0,C1+C2+C3+C4+C5+C6+C7+C8+C9=n。

简答题

课程名称:NOC软件创意编程

题目:飞跃摩天楼 【题目描述】 东东是一位穿梭在暗夜的城市里惩恶扬善的超级英雄,但是在一次侦查的过程中,他被一群坏蛋发现了。为了逃脱恶人的追捕,东东需要在摩天楼的屋顶之间飞跃,最终到达安全的位置。逃跑路线—共有N座摩天大楼,从1到N进行编号,东东从1号大楼出发,通过特制的跳跃装置跳到2号大楼,然后再通过2号大楼跳到3号大楼……最终跳到N号大楼,就是目标的安全位置。由于跳跃距离越远,跳跃装置的安全性就越差,所以东东希望他跳跃的最大距离尽可能小。为了安全,东东已经提前准备好两个强力热气球,热气球可以代替大楼作为东东一次跳跃的终点和下一次跳跃的起点,他可以把热气球安排在合适的位置,来帮助他更安全的逃脱。 为了确定自己能顺利逃脱,东东需要他的技术顾问,也就是你,替他算出在最安全的情况下,他最大的跳跃距离。 【输入格式】 输入有两行,第一行为两个正整数N,表示摩天大楼的数量。 第二行有N-1个整数,表示第i座摩天大楼与第i+1座摩天大楼之间的距离。 【输出格式】 输出一个整数,表示东东最大的跳跃距离,如果结果是小数,请向上取整。 【输入样例1】 6 3 5 4 11 8  【输出样例1】 6  【样例1说明】 在第4和第5座摩天大楼中间、第5和第6座摩天大楼中间各放一个热气球,东东可以进行次跳跃,距离分别是:3、5、4、5.5、5.5、4、4。其中最远距离向上取整为6。 【输入样例2】 10 19 99 26 32 9 3 7 10 21  【输出样例2】 33 【数据范围】 对于20%的数据:1≤N≤10,相邻的摩天楼距离不超过100; 对于60%的数据:1≤N≤10000; 对于100%的数据:1≤N≤105,相邻的摩天楼距离不超过109。