diff --git a/src/main/java/com/dota/bit/_1680/Solution.java b/src/main/java/com/dota/bit/_1680/Solution.java new file mode 100644 index 0000000..2285285 --- /dev/null +++ b/src/main/java/com/dota/bit/_1680/Solution.java @@ -0,0 +1,16 @@ +package com.dota.bit._1680; + +class Solution { + public int concatenatedBinary(int n) { + long res = 0; + var mod = 1000_000_007; + var x = 0; + for (int i = 1; i <= n; i++) { + if ((i & (i - 1)) == 0) { + x++; + } + res = ((res << x) + i) % mod; + } + return (int) res; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/bit/_2438/Solution.java b/src/main/java/com/dota/bit/_2438/Solution.java new file mode 100644 index 0000000..31cf560 --- /dev/null +++ b/src/main/java/com/dota/bit/_2438/Solution.java @@ -0,0 +1,28 @@ +package com.dota.bit._2438; + +import java.util.ArrayList; +import java.util.List; + +class Solution { + public int[] productQueries(int n, int[][] queries) { + List ans = new ArrayList<>(); + int x = 0; + while(n>0) { + int t = n & 1; + if (t==1) { + ans.add(1L << x); + } + n >>= 1; + x++; + } + var res = new int[queries.length]; + for (int i = 0; i < queries.length; i++) { + long sum = 1; + for (int j = queries[i][0]; j <= queries[i][1]; j++) { + sum = sum * ans.get(j) % 1000000007; + } + res[i] = (int) (sum % (1000000007)); + } + return res; + } +} \ No newline at end of file