問題 D SLF的鎖屏密碼

2021-10-05 08:42:37 字數 1360 閱讀 2211

時間限制: 1 sec 記憶體限制: 128 mb

題目描述

slf作為乙個與眾不同的人,他的鎖屏密碼當然不能和別人一樣簡簡單單的4位密碼或者是按個爪印就可以了。

每次slf想要開啟手機時,他需要手機先告訴他乙個數n,這個數當然不是乙個簡簡單單數字,它是有特殊含義的:

對給定的n(4≤n≤24),它其實還表示了乙個特殊等式-1@2@3@4@5…@n-2@n-1=n,其中字元@可能是加號也可能是減號。

如果slf想要開啟手機,他就要輸入有多少個符合條件的這樣的等式。

輸入:包含乙個整數的單獨一行。

輸出:包含乙個整數的單獨一行表示滿足條件的等式的個數。

樣例輸入

8樣例輸出4提示

即:-1-2-3-4+5+6+7=8

-1-2+3+4+5+6-7=8

-1+2-3+4+5-6+7=8

-1+2+3-4-5+6+7=8

因為最近剛剛學了動規,所以看到這道題,就想著怎麼列狀態轉移方程。我們先按照套路分析一下。

(1)明確狀態:唯一的狀態是前 i 個數的和;

(2)dp[i][j]的含義:到第i個數的總和為j的方案數;

(3)base case:dp[1][-1]=1;

(4) 選擇:+ 或者 -;

(5)列方程:dp[i][j]=dp[i-1][j-i]+dp[i-1][j+i]

當i-1位置總和為j-i,加上i(即選擇+)就是就j;當i-1位置總和為j+i的時候,減去i(即選擇-)就是j,就這兩種情況了吧。

(6)結果:存在於dp[n-1][n]。

不知道諸位有沒有發現乙個問題,大佬請略過 ,這裡的下標出現了負值,其實只要把每個座標向右平移add就好了。

題目中n<=24,最大的負值是當所有的數是負數的時候,即-(24+1)*24/2=-300,所以就取add=500就夠了。

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define inf 0x3f3f3f3f

#define maxn 1e5+10

using

namespace std;

int n,a,add=

500;

int dp[

100]

[3000];

intmain()

printf

("%d"

,dp[n-1]

[n+add]);

return0;

}

好好學習,多問dalao。

MIUI 鎖屏密碼破解

mi 8,已解 bootloader 鎖 前幾天刷開發版同時更新到 android 10,大約刷後兩天發現螢幕無法解鎖,懷疑是系統本身 密碼驗證過程中存在 bug.售後表示只能清除全部資料以解鎖.於是自己搞一搞 這是嘗試過程和一種 很 可能的思路.然鵝由於實在不會 j a 沒有進行下去.由於twrp...

一鍵清除鎖屏密碼 蘋果手機忘記鎖屏密碼的解決方案

一鍵清除鎖屏密碼是很多小夥伴好奇的乙個問題,為了隱私問題考慮,很多人都會給自己的手機設定鎖屏密碼,如果密碼不記得怎麼清除鎖屏密碼呢?今天以蘋果手機為例給大家分享一下ios系統清除鎖屏密碼的操作步驟,需要注意的是,這些方法都會清除掉手機裡的所有資料。為了防止手機丟失,很多人會在手機到手以後開啟 查詢我...

Android 鎖屏問題

android鎖屏 android鎖屏時,1.會首先呼叫onpause 所以應該儲存應用程式的資源。2.android解鎖的時候,會呼叫onresume,讀入儲存的應用程式的資源。如果執行程式是已經鎖屏,1.應用程式會先呼叫oncreate 然後onresume 再則onpause 2.這時得到的螢...