牛客,String of CCPC(思維)

2021-09-25 10:56:32 字數 853 閱讀 7994

題意:給定乙個長度為n的字串s[n],s[n]只由c,p組成,定義s[n]的價值為:s[n]中不同的「ccpc」連續子串的個數。現可以向這個子串中插入乙個c,p,但第i次操作,需要消耗i-1的單位價值。求s[n]的價值最大為多少。

分析:稍微分析一下,可以發現,每次操作,最多只能使s[n]的價值+1,假如s[n]最初的價值為val0,如果第一次插入能使val0+1,則val=val0+1-0=val0+1,第二次若能使val+1,則val=val0+2-1=val0+1,第三次若可以,則val=val0+1+1-2=val0,第四次,val=val0+1-3=val0-2,…

由此可見,s[n]的價值最大為val0+1,且只需判斷插入1次後能否使其價值+1即可

**如下:

#include#include#include#include#includeusing namespace std;

const int maxn=2e5+5;

int n;

char s[maxn];

char s1="ccpc",s2="cpc",s3="ccp",s4="ccc";

bool check(char *s0)

if(flag)

else if(strcmp(s0,s3)==0)

else

}} return 0;

}int main()

if(flag) ++val;

} if(check(s2)||check(s3)||check(s4)) ++val;

printf("%d\n",val);

} return 0;

}

牛客 獎學金

某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學 排在前面,這樣,每個學生的排序是唯一確定的。...

牛客21781 牛兄牛弟

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 題目描述 一群牛兄牛弟準備去一家餐廳吃飯,已知他們是按照某個順序先後到達餐廳的,第i個到達餐廳的要求坐在離門口至少a i 的距離 牛兄牛弟們不準備讓別人知道他們是兄弟,...

2019牛客多校第四場A meeting 思維

乙個樹上有若干點上有人,找出乙個集合點,使得所有人都到達這個點的時間最短 無碰撞 就是找樹的直徑,找直徑的時候記得要找有人的點 include include includeusing namespace std define pb push back define f first define s...