11.9模拟训练
T1
根据题意简单模拟即可,注意循环范围为2~s.length()-2
Code:
#include<iostream>
#include<string>
using namespace std;
int n,ans;
string s;
int main(){
cin>>n>>s;
for(int i=0;i<n-2;i++){
if(s[i]=='#' && s[i+1]=='.' && s[i+2]=='#') ans++;
}
cout<<ans;
return 0;
}
T2
同样根据题意模拟,注意以下几点:
1.从(0,0)开始,还要回到(0,0)
2.输入要开long long,否则可能导致在计算过程中爆int,再sqrt就会变成无限小(nan)
Code:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
long long t,x,y,xx,yy;
double ans;
int main(){
cin>>t;
t--;
cin>>x>>y;
ans+=sqrt((0-x)*(0-x)+(0-y)*(0-y));
xx=x;
yy=y;
while(t--){
cin>>x>>y;
ans+=sqrt((xx-x)*(xx-x)+(yy-y)*(yy-y));
xx=x;
yy=y;
}
ans+=sqrt((xx-0)*(xx-0)+(yy-0)*(yy-0));
cout<<fixed<<setprecision(10)<<ans;
return 0;
}