题意:题中平衡数的定义: 以一个位置作为平衡轴,然后左右其他数字本身大小作为重量,到平衡轴的距离作为全职,实现左右平衡(即杠杆原理平衡).然后为区间[x,y]内平衡数的个数. (0 ≤ x ≤ y ≤ 1018) 解法:数位dp.如果一个数的平衡数,那么它的平衡轴位置是确定的.原来一直尝试数位dp在dfs时候列举平衡轴的位置,后来才意识到可以提前枚举平衡轴位置,然后再dfs,这样比较好写.dp[mid][pre][wei];表示对称轴是mid,计算第pre个位置以后需要力矩大小wei的数的个数.
DQUERY - D-query #sorting #tree English Vietnamese Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinct elements in the
#/bin/bash declare -i EVENSUM=0declare -i ODDSUM=0 for I in {1..100}; do if [ $[$I%2] -eq 0 ]; then let EVENSUM+=$I else let ODDSUM+=$I fidone echo "odd sum is: $ODDSUM."echo "event sum is: $EVENSUM."
今晚看了函数的递归,在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.递归函数的优点是定义简单,逻辑清晰.理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰. 联想到之前用循环写的关于求一百以内的数的和,目前看来基本上有三种写法: 1. for 循环 sum = 0 for i in range(1,101): sum = sum +i print sum 2 while 循环: sum =0 i =1 while i <101: sum =
public class PrimeNumber { // 求1-100内的素数(包括100) public static void main(String[] args) { int j = 0; System.out.println("输出1-100之间的素数"); for (int i = 2; i <= 100; i++) {// 1既不是苏数,也不是合数 if (i < 4) { System.out.println(i); continue;//注意此处有con