1000
每天只要复习收益最大的那门课即可
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include
View Code
1001
个位数的位数是1,十位的是2, 所以只要算出个位数的个数*1,加上十位数的个数*2,加....
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include
View Code
1002
ABC三根柱子
设T(n)是将n个盘子借助一根柱子移到另一个柱子上去所要移动的最小次数, 那么要先将n-1个盘子移到B柱子上去,需要T(n-1)次,然后将第n个盘子移到C柱子上去,需要一次,然后将n-1个盘子移动C柱子上去
需要T(n-1)次, 所以T(n) = 2*T(n-1) + 1
设T(n)+1 = 2( T(n-1)+1 ) = 2 * 2( T(n-2)+1) = ... = 2^n 所以T(n) = 2^n - 1
需要注意的是2^64 会爆
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include
View Code
1003
根据异或的性质, a^a = 0 a^a^a = a , 所以将n个数字进行异或, 如果结果是0,说明所有的数字都出现了偶数次, 如果结果不为0,那么就输出
需要注意的是,如果a为0,切出现了奇数次, 其异或结果也是0 , 所以异或时将每个数字加1即可
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include
View Code
1004
这个问题难点是不知道要打扫哪几列, 其实只要我们枚举每一行,使得这一行全为1, 那么就知道了要打扫哪几列, 然后判断剩下的n-1行,看打扫了这几列之后是否全为1
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include
View Code
1005