hdu-4507 吉哥系列故事——恨7不成妻 數字dp
思路:想必普通的統計滿足條件的個數都會吧,這裡就不在贅述了,
dp[i][j][k]代表長度為i,數字對7取餘數為j,數字各個位數加起來對7取餘數k;僅僅用dp[i][j][k]的值代表個數是不能得到答案的,還要統計滿足條件的和還有平方和;
開結構體,維護和的時候假如是算332+321則可以拆分為300*2(就是以3開頭的長度為3的有多少個)+(32+21)(長度為2的和);按照這樣則每一次深搜完關於某個長度開頭為x的都可以直接計算其和;
平方和則是,假如算的是332的平方+321的平方 (300的平方)* 2(以3開頭長度為3的有多少個)+(32平方+21平方)(長度為2的平方和)+(2*300*(32+21)(長度為2的和));這是跟據平方和的公式推出來的(x
+y)2
=x2 +y2
+2∗x
∗y;
#include
#include
#include
#include
#define ll long long
using namespace std;
const int mod=1e9+7;
struct zp
} dp[30][10][10];
intx[100];
ll cf[100];
zp dfs(int len,int num,int mod,int flag)
if(!flag&&dp[len][num][mod].cnt!=-1) return dp[len][num][mod];
int stop=flag?x[len]:9;
for(int i=0; i<=stop; i++)
if(!flag) dp[len][num][mod]=ans;
return ans;
}zp solve(ll n)
return dfs(cont-1,0,0,1);
}int main()
}
數字dp 恨7不成妻
題目描述 單身!依然單身!吉哥依然單身!ds 級碼農吉哥依然單身!所以,他平生最恨情人節,不管是 214 還是 77 他都討厭!吉哥觀察了 214 和 77 這兩個數,發現 2 1 4 7 7 7 7 2 77 7 11 最終,他發現原來這一切歸根到底都是因為和 7 有關!所以,他現在甚至討厭一切和...
恨 7 不成妻
求出一段區間內與 7 無關的數的平方和,我們定義這個數與 7 有關當且僅當這個數滿足下列條件之一 1 某一位為 7 2 數字和為 7 的倍數 3 這個數本身是 7 的倍數。這題並不算裸的數字 dp 題,顯然如果對於計數我們很容易得到這個區間內滿足條件的個數,而為了使數字 dp 的 dp 能夠有子狀態...
HDU 4507 恨7不成妻(數字dp )
題目 求在一定區間內和7無關的數字的平方和。如果乙個整數符合下面3個條件之一,那麼我們就說這個整數和7有關 1 整數中某一位是7 2 整數的每一位加起來的和是7的整數倍 3 這個整數是7的整數倍 基本思想是 x y 2 x 2 2 x y y 2 維護sum和sqrt sum,以及數量cnt來確定用...