小美拿到了一个大小为的数组,她希望删除一个区间后,使得剩余所有元素的乘积末尾至少有个 0。小美想知道,一共有多少种不同的删除方案?
区块链毕设网qklbishe.com为您提供问题的解答
小美拿到了一个大小为的数组,她希望删除一个区间后,使得剩余所有元素的乘积末尾至少有个 0。小美想知道,一共有多少种不同的删除方案?
import java.util.*; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.hasNext()){ int n = in.nextInt(), k = in.nextInt(); int[] a = new int[n]; for(int i = 0;i < n;i++){ a[i] = in.nextInt(); } int[] countBy2 = new int[n], countBy5 = new int[n]; for(int i = 0;i < n;i++){ while(a[i] % 2 == 0){ a[i] /= 2; countBy2[i]++; } while(a[i] % 5 == 0){ a[i] /= 5; countBy5[i]++; } } int totalBy2 = 0, totalBy5 = 0; for(int i = 0;i < n;i++){ totalBy2 += countBy2[i]; totalBy5 += countBy5[i]; } long res = 0; for(int i = 0, j = 0;j < n;j++){ totalBy2 -= countBy2[j]; totalBy5 -= countBy5[j]; while(i <= j && Math.min(totalBy2, totalBy5) < k){ totalBy2 += countBy2[i]; totalBy5 += countBy5[i]; i++; } res += j - i + 1; } System.out.println(res); } } }
编辑于 2024-03-13 13:06:39
以上就是关于问题小美拿到了一个大小为的数组,她希望删除一个区间后,使得剩余所有元素的乘积末尾至少有个 0。小美想知道,一共有多少种不同的删除方案?的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训