文字編輯器的乙個最重要的機能就是複製&貼上。joi社現在正在開發一款能夠非常高速地進行複製&貼上的文字編輯器,作為joi社一名優秀的程式猿,你擔負起了複製&貼上功能的測試這一核心工作。整個joi社的命運都系在你的身上,因此你無論如何都想寫出乙個正確且高速的程式來完成這項工作。
具體的做法如下所示。檔案的內容是乙個字串s,對其進行n次複製&貼上的操作,第i次操作複製位置ai和位置bi之間的所有文字,然後在位置ci貼上。這裡位置x表示字串的第x個字元的後面那個位置(位置0表示字串的開頭),例如字串」copypaste」的位置6表示字元』a』和字元』s』之間的位置,位置9表示』e』後面的位置(即字串的結尾)。不過,如果操作後的字串長度超過了m,那麼將超過的部分刪除,只保留長度為m的字首。
你的任務是寫乙個程式,輸出n次操作後字串的前k個字元。
1<=k<=200
1<=m<=10^9
s的每個字元都是小寫字母(『a』~』z』)
k<=|s|<=min(m,2*10^5)
1<=n<=2*10^5
設第i次操作前的字串長度為li,那麼0<=ai
注意到k很小。
然後就是知道終止位置倒推它原來是在哪個位置。
分三類討論,這題大水。
注意別作死遞迴。
#include
#include
#include
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
const
int maxn=200000+10;
char s[maxn];
int a[maxn],b[maxn],c[maxn];
int i,j,k,l,t,n,m,len;
char get(int
id,int k)
int main()
VIM複製貼上
vim作為最好用的文字編輯器之一,使用vim來編文件,寫 實在是很愜意的事情。每當學會了vim的乙個新功能,就會很大地提高工作效率。有人使用vim幾十年,還沒有完全掌握vim的功能,這也說明了vim的強大。而這樣何嘗不是一件好事呢,只要有的學習,就有的提高。最近使用vim來寫部落格,發現在vim中貼...
vim 複製貼上
傳統軟體的複製 copy 剪下 cut 貼上 paste 在vim中對應的是yank,delete和put。在vim中的複製,刪除,替換等操作的臨時內容,都會儲存在暫存器中。下面分享下vim中的暫存器和相關的基本的操作。無名暫存器 兩個雙引號,vim中叫做無名暫存器。x,s,d,c,y等操作,如果不...
xshell複製貼上
今天下午想把同學的python 部署到我的遠端伺服器上,利用xshell在windows下進行遠端連線時差點被複製貼上搞瘋。複製貼上不就是ctrl c,ctrl v嘛,但是在xshell卻不盡然。現象 在xshell介面中需要用到之前的一段 自然是選中,熟練的鍵入ctrl c,打算複製,可是再次鍵入...