題意:給定乙個長度為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...