2018级新生周赛(八)题解

本来以为有3-4题签到。唉,我自闭了。不过没事,我们也是经常被虐,有些思路之前没有接触过,的确自己很难想到。这些题全部原创的,如果觉得有问题欢迎交流:QQ:1668296307A:签到题题解:只要二分就行了。1.对于一个区间[LR]先猜k=(L+R)/2;2.if(k>key)R=k-1重复1过程3.if(k重复1过程4.k==keybreak;对于这样一个过程一定能猜到的次数是log2(R-L+1)1,因为题目L=1,R=n,所以次数是log2(n)+1;注意n的取值范围。代码:https://paste.ubuntu.com/p/KRhdsgVHJS/B:迷宫题解:把要求转化成指定坐标不能输出,用一个结构体数组保存这些不能输出的坐标。边输出边判断这个坐标是否能输出就行了。代码:https://paste.ubuntu.com/p/fH5bkyc4w9/C:战舰题解:编号为偶数的数量:n/2(向下取整)从n/2个战舰选择k个战舰 C(k,n/2)。现在相当以k+1个战舰涂成不同的颜色:第一个战舰可以选择m种颜色,第二个战舰可以选择m-1种颜色,.......第k+1个战舰可以选择m-k-1种颜色,m(m-1)....(m-k-1)=A(k+1,m),共有A(k+1,m)种涂颜方案。所以答案:C(k,n/2)A(k+1,m)代码:https://paste.ubuntu.com/p/XjKtPGcRKm/D:愉快序列题解:欢迎暴力,准备卡你们O(n^2)算法的,怕你们自闭,所以还是弄成了暴力题,是有O(n)算法的。代码:https://paste.ubuntu.com/p/4X5nzYsJsR/E:矿产含量题解:用二维数组模拟面积,(x,y)到(x+1,y+1)有矿产时。使a[x][y]=1。下次遇到此处有矿产a[x][y]仍然=1。就到达去重的效果了。最后求个二维数组的和就行了。代码:https://paste.ubuntu.com/p/vJtWQ52sFh/F:数学家题解:求出:a与w=pow(10,log10(a)+1)的gcd。例如:7与10的gcd()=1,12与100的gcd()=4,123与1000的gcd()=1;然后输出(a/gcd)比上(w/gcd);例如:0.2,求2与10的gcd=2,输出(2/2)/(10/2)=1/5;具体实现可以看代码。代码:https://paste.ubuntu.com/p/sgkYqq4Wx8/G:优化算法题解:(sn)/v向上取整就行了,注意数据范围。代码:https://paste.ubuntu.com/p/vyP7WTKpmx/E:文件题解:用两个数组模拟一下过程就行了。代码:https://paste.ubuntu.com/p/HFQxQwTQbG/F:资源箱题解:当两堆不一样高时,把高的移动到和低的一样平。然后再考虑两堆的移动:是先从A还是从B开始移动。一直来回循环移动。代码:https://paste.ubuntu.com/p/ZZ97qgRM2V/

posted @ 2022-10-22 18:45  河南工业大学算法协会  阅读(14)  评论(0)    收藏  举报