牛客ioi周賽23 普及組 1 3題解 總結

2021-10-21 04:33:47 字數 2593 閱讀 8601

小 l 剛考完期末,他寫了一篇很爛的作文,爛到老師都不願意給它扣分,只能給他加分,已知老師比較牛,所以他發現乙個字元 x 就會加一分。問你小 l 最後可以得到多少分。

輸入描述:

第一行,給你乙個字元 x,表示可以加分的字元。

第二行,給你乙個字串 s,表示文章。

輸出描述:

乙個整數,表示小 l 得了多少分。

#include

using

namespace std;

intmain()

總結:題目很簡單,但是遍歷string的方法需要學習一下,更加簡單。

auto遍歷,智慧型指標yyds,自動識別型別。

t==s 很巧妙,等於的話就加一,不等的話加零。

auto遍歷適用於所有的遍歷,只不過這種遍歷是遍歷完資料,當要遍歷部分資料時就要換一種方法。

auto遍歷舉例:

陣列:

int s[4]

;for

(int i=

0;i<

4;i++

) cin>>s[i]

;for

(auto t:s)

//用t遍歷s

剛開始我就是無腦做的,連想都沒想,一看快速冪,就直接快速冪了。

#include

using

namespace std;

typedef

long

long ll;

const

int mod =

998244353

;int n,m;

int a[

1005

],x;

ll fast

(ll a,ll b)

return res;

}//龜速乘

long

long

quick_mul

(long

long x,

long

long y)

return ans;

}int

main()

cout<

" ";

}return0;

}

但其實再看式子可以發現規律:

l 字尾 abd -> 要反轉

r 字首 ce -> 不需要反轉

#include

#include

using

namespace std;

string a,b,x,y;

//x字尾,y字首

intmain()

reverse

(x.begin()

,x.end()

);//字尾要反過來

cout << y << x;

return0;

}

自己寫的方法,模擬

#include

using

namespace std;

string s1,s2;

char ch1[

1000005];

char ch2[

1000005];

intmain()

for(

int i=

1;i) cout<

;for

(int i=r-

1;i>=

1;i--

) cout<

;return0;

}

其實思路差不多一樣

dp問題,自己還是不太會,水平也只到這裡了,原諒自己太菜了。

建議做一下最長公共子串行的問題。

牛客IOI周賽23 普及組全題解

鏈結水題不多說 統計字元就完了 int main cout 鏈結 硬模擬兩層for,記得取模 ll a maxn ll x maxn int n,m ll ans maxn int main for int i 1 i m i return0 鏈結 注意,直接使用string可能會t 不是可能,是必...

牛客IOI周賽22 普及組

1.戰爭尾聲 題目鏈結 題解 因為資料量非常小,直接遍歷每乙個點即可 include include include using namespace std typedef pair int,int pii double getlength double x,double y,pii v intma...

牛客IOI周賽22 普及組

暴力列舉 author sunlakewalk include include include include include include include include include include include include include include include includ...