日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cf1553D. Backspace

發布時間:2023/12/3 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cf1553D. Backspace 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cf1553D. Backspace

題意:

有一個字符串A,現在將其一個一個輸入至B中,在輸入一個字符時,如果按下backspace,那么這個字符不會被鍵入,而且如果B不為空,則前一位(B.back)也會被刪除,現給出一個字符串C,問能否得到一個B,使得B=C

題解:

為了通過a得到b,我們有可能需要去除a串的某段前綴,然后模擬余下部分得到b
枚舉每種刪除前綴的情況是很麻煩的。
那我們可以考慮將a和b反轉進行考慮,反轉后操作就變成1:輸入當前字符 2:不輸入當前字符和下一個字符
這樣做,如果我們去執行操作2,去除了a的一段后綴,而a被反轉過,相當于去除原本a的一段前綴。這樣就解決了刪除前綴很麻煩的事

代碼:

// Problem: D. Backspace // Contest: Codeforces - Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2) // URL: https://codeforces.com/contest/1553/problem/D // Memory Limit: 256 MB // Time Limit: 2000 ms // Data:2021-08-10 12:42:38#include<bits/stdc++.h> #define debug(a,b) printf("%s = %d\n",a,b); using namespace std; typedef long long ll; typedef pair<int, int> PII; clock_t startTime, endTime; //Fe~Jozky const ll INF_ll=1e18; const int INF_int=0x3f3f3f3f; inline ll read(){ll s=0,w=1ll;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1ll;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10ll+((ch-'0')*1ll),ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w; } void rd_test(){#ifdef ONLINE_JUDGE#elsestartTime = clock(); freopen("in.txt","r",stdin);#endif } void Time_test(){#ifdef ONLINE_JUDGE#elseendTime = clock(); printf("\nRun Time:%lfs\n",(double)(endTime - startTime) / CLOCKS_PER_SEC);#endif } int main() {//rd_test();int t;cin>>t;while(t--){string a,b;cin>>a>>b;reverse(a.begin(),a.end());reverse(b.begin(),b.end());int pos=0;bool f=0;for(auto op:a){if(f){f=0;continue;}if(op==b[pos])pos++;else f=1;if(pos==b.size())break;}if(pos==b.size())puts("YES");else puts("NO");}//Time_test(); }

總結

以上是生活随笔為你收集整理的cf1553D. Backspace的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。