题意大概是: 一个数比如242,把所有数字分成两组,而且两组的和相等,那么这个数就是神奇数,此时242,能够分成{2,2}和{4},所以242是神奇数. 题目要求输入n和m求[n,m]区间内神奇数的个数. 思路: 对于任意一个数字,将每一位上的数字保存到数组里,并求所有位上的数字的和sum.然后使用回溯法遍历数组, 查看数组内是否存在和为sum/2的情况,如果存在则为神奇数. bool isfind(vector<int>& nums, int sum, int cur, int be…
我给出代码如下:和之前做数塔(dp的入门题目)的思路一致 dp[i][j]为走到坐标(i,j)的最小减速(只有向右走和向上走两种情况) #include<stdio.h> #include<stdlib.h> #include<iostream> #include <algorithm> using namespace std; const int maxn=1002; int dp[maxn][maxn]; int main() {int n; scanf…