题意:给一个数字串,可以调换数字,问有多少种组合可以让组成的数能被11整除。
思路:窝们观察到1%11=1, 10%11=10,100%11=1,1000%11=10,以此类推。。窝们将一偶一奇看作一对,这一对组成对11的余数
×100对11的余数(也就是1),所以实质还是这一对对11的余数,那么奇偶数位的和就可以了。我们可以设奇数位的和为x,偶数位的
和为y,则(x+10y)%11的值为0就可以了--> (x-y+11y)%11=0 --> (x-y)%11=0。所以设dp[i][j][k]表示处理完0到i-1,已在奇数位放了j个
数字,(奇数位数字和-偶数位数字和)%11=k的种数,详见代码:
/*********************************************************
file name: LA6529.cpp
author : kereo
create time: 2015年02月04日 星期三 20时39分19秒
*********************************************************/
#include
#include
#include
#include
#include
#include