暑假訓練第三週第一天

2021-10-08 08:04:27 字數 1730 閱讀 4484

題意:

b:codeforces 1238d:給你乙個只包含ab的字串,問你有多少個回文子字串。

c:codeforces 1238a:兩數之差是否能分解成乙個素數的若干倍。

d:codeforces 1238c:在h的高度(此處有踏板),character只能跳一層樓或者兩層樓,每在乙個h高度時,可以按動lever,使得本層踏板收回,下一層的踏板會改變狀態(縮進去會伸進去,伸進去的會出來)。如果跳超過兩層,可以用魔法使一層改變狀態。求最少要用多少次。

e:codeforces 1238e:一串字母字串,給乙個整數m表示前m個字母,求打出字串最少要移動手指多少個單位。假設要打abca 而m序列為abc。m的順序可以改變。

f:codeforces 1238b:從1往後,有n個怪物分布在一些位置,每次扔炸彈可以把仍炸彈的當前位置之前的怪物向前炸r個單位,炸彈**位置直接炸死怪物。

補題:b:思路:逆向思維。題目要求含有長度大於1的回文串即為好的字串,而且字串中只有a,b兩個字母,所以只有aaaab或者baaaa或者abbbb或者bbbba這種形式字串是非好的,其他的字串都是好的。所以求出這些字串的數量即可。

**:

#include

using

namespace std;

char s[

1000010];

intmain()

else

if(last)

cnt++;}

long

long sum=n*

(n-1)/

2;cout<}

d:思路:1.如果x-2高度處有擋板,那麼我們在x處按動開關,x和x-1高度處的擋板都收起,小人恰好落在x-2高度處的擋板。

2.如果x-2高度處沒有擋板,所以我們用魔法,讓x-1高度處的擋板收起來。

注:人在的位置為a[i]-1;

**:

#include

using

namespace std;

typedef

long

long ll;

int a[

200010

],q;

intmain()

cout<}}

f:思路:先排序,再二分。判斷左邊數第n−mid個怪物能否在mid次飛彈下被炸到陷阱裡。

**:

#include

using

namespace std;

int wz[

100010

],v[

100010]=

,t,n,r,tip,tmp,ans;

intmain()

}sort

(wz+

1,wz+tip)

; tip-=1

;for

(int i=

1; i<=tip; i++)if

(wz[tip-i]

<=r*i)

cout

int i=

1;i<=n;i++

) v[wz[i]]=

0;}}

感受:d題題目理解錯了,以為開關管的是全部,對著樣例模擬了半天。f題,memset函式超時了,說實話,調的時候有點懵,搞得我d題都不敢用memset初始化陣列了。剩下的時間都磕在b上了,這題也是花太多時間在題目上,good string的定義在第一行,沒注意,雖然看懂之和也還是沒弄出來,哎。

第三週第一天

儲存過程 1 語法格式 create proceture 儲存過程名 引數 特徵描述 sql語句體 需要注意的是 begin和end相當於 的作用,儲存過程名 引數 可以沒有引數,但是 不可以省略,名稱的長度限制64個字元。名稱不區分大小寫,盡量避免與內建函式同名,假如同名的話,在名稱和 之間加空格...

暑假訓練總結第1周第一天

題意 a codeforces 1272f 兩個括號字串是s t,製造乙個最短的括號字串並使得s和t是它的字串 s和t可以不連續 b codeforces 1272d 最多刪除陣列中的乙個元素,求操作後的最長單調增序列的長度。c codeforces 1272a 三個數,分別可以加 一 減一或者不變...

暑假第三週

第三週安裝hadoop,教程原址 在建立hadoop新使用者時,輸入密碼是不會顯示的,在這裡我以為出現了問題,其實這是正常的,之後使用sudo apt get install vim命令安裝了vim編輯器,並學會了基本操作用法,教程原址 基本操作 需要鍵盤敲擊輸入乙個英文本母i,進入編輯狀態以後才能...