训练地址:训练一
具体代码见提交
B.明明的字符串
可见abc242E 求解小于等于一个字符串的回文串的个数
就是有一个小小的区别,一个判断是小于等于,一个是小于
cin>>n>>k>>ss;
rss=ss;
ll l=ss.size(),sum=0,len=l;
l=(l-1)/2;
for(int i=0;i<=l;++i){
rss[len-1-i]=rss[i];
sum=(sum*k+ss[i]-'a')%mod;
}
sum=(sum+1)%mod;
if(ss<=rss) sum=(sum+mod-1)%mod;
cout<<sum<<'\n';
C.明明的涂色谜题
遍历判断四个角落的涂色情况,再判断题目给定的四条边的大小是否满足大小范围即可
D.古国的商人
考虑从后向前遍历,记下最大的卖出点时间点,这个时候我们只需要判断每天是否买入即可
另外就是得想想存不存在当天上午买入,下午卖出的情况
最终代码:
ll n;
pair<ll,ll> p[maxm];
cin>>n;
for(int i=1;i<=n;++i){
cin>>p[i].first>>p[i].second;
}
ll ans=0,zc=0,zd;
if(p[n].second>p[n].first){
ans+=p[n].second-p[n].first;
}
zd=max(p[n].first,p[n].second);
for(int i=n-1;i>=1;--i){
zd=max(zd,p[i].second);
zc=min(p[i].first,p[i].second);
if(zc<zd) ans+=zd-zc;
zd=max(zd,p[i].first);
}
cout<<ans<<'\n';
标签:int,zd,ll,ACM,zc,组队,second,2023,first
From: https://www.cnblogs.com/Qiansui/p/17416246.html