(題目鏈結)
給出乙個詭異的圖形,再給出乙個歪七扭八的線,問圖形上下兩條邊與線的匹配→_→
前後求差然後kmp,這種數字的匹配還是kmp靠譜,hash太容易衝突了。
注意可以上下翻轉有4種匹配方式
// codevs3945#include#include#include#include#include#include#include#define ll long long
#define inf 2147483640
#define pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std;
const int maxn=1000010;
int next[maxn],t[maxn],p[maxn],a[maxn],b[maxn];
int n,m;
void calnext()
}int kmp()
return cnt;
}int main()
n--,m--;int ans=0;
for (int i=1;i<=n;i++) p[i]=a[i+1]-a[i];
for (int i=1;i<=m;i++) t[i]=b[i+1]-b[i];
ans+=kmp();
for (int i=1;i<=n;i++) p[i]=a[n-i+2]-a[n-i+1];
ans+=kmp();
for (int i=1;i<=n;i++) p[i]=0;
ans+=2*kmp();
printf("%d\n",ans);
return 0;
}
lintcode 394 硬幣排成線
有 n 個硬幣排成一條線。兩個參賽者輪流從右邊依次拿走 1 或 2 個硬幣,直到沒有硬幣為止。拿到最後一枚硬幣的人獲勝。請判定 第乙個玩家 是輸還是贏?樣例n 1,返回 true.n 2,返回 true.n 3,返回 false.n 4,返回 true.n 5,返回 true.挑戰o 1 時間複雜度...
394 字串解碼
給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...
394 字串解碼
思路 思路一 使用棧 這種括號或者括號套括號的模式非常適合用棧來解決,設定乙個輔助棧,當遇到 的時候,開始將所有東西推到 棧中,直到遇到 時,開始取棧中的東西。取得方法 先取字元,再取數字,計算得到到的東西再壓入棧中 直到所有 都遍歷完為止 注意點 從棧中取的順序和最終生成結果得順序應該一致 cla...