2024CCPC补题
C. CCPC
思路:已知C和P的数量,CCP看成一组,C可以重复匹配。min找最多能匹配的数量
代码:
#include<bits/stdc++.h>
using namespace std;
int cntc=0,cntp=0;
int main()
{
string s;
cin>>s;
int a=s.size();
for(int i=0;i<a;i++){
if(s[i]=='C') cntc++;
if(s[i]=='P') cntp++;
}
if(cntc<3||cntp<1) cout<<0;
else cout<<min(cntp,abs((cntc-1)/2));
return 0;
}
H. Square Root
思路:找规律 ,多枚举几个s, 注意每次都要更新 i 值 和 cnt 值
代码:
#include<bits/stdc++.h>
using namespace std;
int cnt1;//记录连续1的数量
double b,anso,ansj,sum;
int main()
{
string s;
cin>>s;
int a=s.size();
for(int i=0;i<a;i++){
if(s[i]=='1'){
for(int j=i;j<a;j++){
if(s[j]=='1') cnt1++;
else
break;//结束本轮循环,找下一个1
i = j;//注意更新i的值
}
}
if(cnt1%2==0 && cnt1) {//cnt是偶数且大于0
b=cnt1/2-1;
anso=b+sqrt(2.0);
sum+=anso;
}
if(cnt1%2!=0 && cnt1){
ansj=cnt1/2+cnt1%2;
sum+=ansj;
}
cnt1=0;//注意更新每个连续的1的数量
}
printf("%.11lf",sum);
return 0;
}