AcWing 第16场周赛
统一大小写
按题意
1.统计大小写字母个数
2.按照要求转换为小写或大写,输出
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
bool check(char c){//判断大小写
if(c>='a' && c<='z') return 1;
else return 0;
}
string s;
int t;
int main(){
cin>>t;
while(t--){
cin>>s;
int x=0,d=0;
int len=s.length();
for(int i=0;i<len;++i){
if(check(s[i])) x++;
else d++;
}
for(int i=0;i<len;++i){
if(d<=x) {
if(check(s[i])) cout<<s[i];
else {
char c=s[i]-'A'+'a';//转换为小写
cout<<c;
}
}
else {
if(check(s[i])) {
char c=s[i]-'a'+'A';//转换为大写
cout<<c;
}
else cout<<s[i];
}
}
cout<<endl;
}return 0;
}
截断数组
当我发现正解后,直呼我是sb,(关于次次周赛都脑壳抽了的事)
既然分为三个数组,且元素和相等
每个数组的元素和为原数组的1/3
不存在分配方案即为(原数组总和)%3!=0的情况
sum[]为前缀和,averge=原数组总和/3
我们只需要寻找一个位置 sum[i]==averge*2
此时ans+=(sum[1~i-1]==averge)即可
因为第i位 满足2*averge, 又因为a[i+1]~a[n]的和则等于averge
所以只需要加上能使前i位的数组 分为 两个值为averge的位置 的数量即可
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n;const int maxn=1e5+10;
int m[maxn];
long long sum=0;
int main(){
cin>>n;
for(int i=1;i<=n;++i) cin>>m[i],sum+=m[i];
if(sum%3) cout<<"0";
else {
long long averge=sum/3;
long long tot=0,js=0;
long long ans=0;
for(int i=1;i<n;++i){
tot+=m[i];
if(tot==2*averge) ans+=js;
if(tot==averge) ++js;
}cout<<ans<<endl;
}return 0;
}
子序列
这个难度假了吧
根据样例都能看出来是取三个数形成一个凸或凹的三个数
例如 1 3 2 凸数 3 1 2 凹下去的数
直接确定第1个数和第n个数为左右点都能过17个点(建议加强数据)
当然正解稍微改动点点就可以
(相信你们能看懂代码)
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n;
const int maxn=1e5+10;
int m[maxn];
int ans=0;
int main(){
cin>>n;
for(int i=1;i<=n;++i) cin>>m[i];
if(n<3){
cout<<"0"<<endl;
return 0;
}
int maxi=1,mini=1;
for(int i=1;i<=n;++i){
if(m[i]>m[maxi]) maxi=i;
if(m[i]<m[mini]) mini=i;
}
int l=1,mid=0;
for(int i=2;i<n;++i){
if((m[i]<m[i+1] && m[i]<m[1])|| (m[i]>m[l] && m[i]>m[i+1])){
mid=i;break;
}
}
if(mid)cout<<3<<endl<<l<<" "<<mid<<" "<<mid+1<<endl;
else cout<<"0"<<endl;
return 0;
}
本文作者:归游
本文链接:https://www.cnblogs.com/guiyou/p/15256692.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步