一、P8752 [藍橋杯 2021 省 B2] 特殊年份 - 洛谷


算法代碼:?
#include<bits/stdc++.h>
using namespace std;
int cnt;int main()
{int i=1;while(i<=5){int num;cin>>num;string string_num=to_string(num);if(string_num[0]==string_num[2]&&string_num[1]==string_num[3]-1){cnt++;}i++;}cout<<cnt;return 0;
}
二、P8703 [藍橋杯 2019 國 B] 最優包含 - 洛谷

大佬思路:

#include<bits/stdc++.h>
using namespace std;
string S,T;
int dp[1005][1005];
int main(){cin>>S>>T;S=" "+S;T=" "+T;//在字符串前面加空格。(這個是將i=0變為i=1,將i<lenS變為i<=lenS,因為代碼里面有//dp[i-1][j-1],S和T可能在i=0或j=0時相等,這是dp[i-1][j-1]中的一個或兩個下表為-1)int lenS=S.size(),lenT=T.size();//lenS是S的長度,lenT是T的長度。 memset(dp,0x3f,sizeof(dp));for(int i=0;i<lenS;i++)dp[i][0]=0;//初始化。 for(int i=1;i<=lenS;i++)for(int j=1;i>=j&&j<=lenT;j++)//i>=j是因為當j>i時,會有幾個字符超出字符串的范圍。 if(S[i]==T[j])dp[i][j]=dp[i-1][j-1];elsedp[i][j]=min(dp[i-1][j-1]+1,dp[i-1][j]);//核心代碼不懂,就看我在上面 ↑的解釋。 cout<<dp[lenS-1][lenT-1];return 0;
}