2019 csp-s初赛
保留两位小数:
x=(int)(x*100+0.5)/100
int和+0.5为四舍五入
非联通无向图:若使结点最少,则只留出一个独立结点,剩余为完全图
(x-1)(x-2)/2=28
x=9
颠倒相等可意象为中心对称
中间位只能是1,8,0
在确定左侧的情况下右侧也可确定
故枚举
中间数字是0的情况,00、06、60、09、90、18、81、66、69、96、99,共11种。
中间数字是1的情况,01、10、16、61、19、91、88,共7种
中间数字是8的情况,08、80、11、68、86、89、98、共7种。
一共25种
已排好序,最多两个数组首尾遍历一次
除去最后一个得2n-1
算法是在数组a[]中找到i位置及其右边的连续序列中最后一个小于等于a[i]的数的位置。实现的关键在于 while ()循环中,所以第12行代码,对于最终结果没有影响。
因为右侧没有更小的数
故只遍历一遍
则为O(n)
step1 50个1两两相乘得25
step2 24个2相乘=81
step3 10个四相乘与4,6合并=185
step4 4个8相乘,合并得393
step5 2个16相乘,合并得1225
答案:1225