A - Odd One Out
题意:
三个数,两个数相等,输出值只出现过一次的数
思路:
直接判断,easy
代码:
/*
* @Author :
* @LastEditTime : 2024-01-09 11:00:58
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define pi pair<int,int>
void solve(){
int a,b,c;cin>>a>>b>>c;
if(a==b) cout<<c<<endl;
else if(a==c) cout<<b<<endl;
else cout<<a<<endl;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int test;
cin>>test;while(test--)
solve();
return 0;
}
B - Not Quite Latin Square
题意:
3个字符串,每行每列必须有A B C各一个自符,9个位置中有个位置呢是?,求出这里因该填什么
思路:
cnt=3('A'=0 'B'-1 'C'-2) vector<string> s(4) 两侧循环(内外层各3次,内层flag判断,如果这层循环结束flag=true 输出char(‘A'+cnt))
!输入(什么数据结构存)+逻辑处理+答案表示输出
代码:
/*
* @Author :
* @LastEditTime : 2024-01-09 11:16:05
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define pi pair<int,int>
void solve(){
vector<string> s(4);
for(int i=1;i<=3;i++) cin>>s[i];
bool flag=false;
for(int i=1;i<=3;i++){
int cnt=3;
for(int j=0;j<3;j++){
if(s[i][j]!='?') cnt-=s[i][j]-'A';
if(s[i][j]=='?') flag=true;
}
if(flag==true){
char ans='A'+cnt;
cout<<ans<<endl;
break;
}
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int test;
cin>>test;while(test--)
solve();
return 0;
}
C - Can I Square?
题意:
判断完全平方数
思路:
sqrt-结果为浮点数 sqrt(9)等于3.000001->sqrt(x)sqrt(x)结果为浮点数(sqrt(3)sqrt(3)!=9)
直接先用int x=sqrt(x) 存起来再判断
代码:
/*
* @Author :
* @LastEditTime : 2024-01-09 11:25:44
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define pi pair<int,int>
void solve(){
int n;cin>>n;
int sum=0;
for(int i=1;i<=n;i++) {
int x;cin>>x;
sum+=x;
}
int tmp=sqrt(sum);
if(tmp*tmp==sum) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int test;
cin>>test;while(test--)
solve();
return 0;
}
D - Unnatural Language Processing
题意:
a,b,c,d,e a,e-V元音 b,c,d-C辅音 规定拼音只有CV或者CVC格式 请将一串长度为n的字符串以上述格式用.隔开
思路:
模拟题。 区别在于是否存在两个连续的辅音。
如果是辅音: 最后一个字符,直接输出; 下一个是辅音,输出s[i]+'.' ;上一个是辅音,输出s[i]; 否则输出'.'+s[i]
如果是元音:直接输出s[i]
代码:
/*
* @Author :
* @LastEditTime : 2024-01-09 11:50:16
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define pi pair<int,int>
void solve(){
int n;cin>>n;
string s;cin>>s;
cout<<s[0]<<s[1];
for(int i=2;i<n;i++){
if(s[i]=='b' or s[i]=='c' or s[i]=='d'){
if(i==n-1) cout<<s[i];
else if(s[i+1]=='b' or s[i+1]=='c' or s[i+1]=='d'){
cout<<s[i]<<'.';
}
else if(s[i-1]=='b' or s[i-1]=='c' or s[i-1]=='d')cout<<s[i];
else cout<<'.'<<s[i];
}
else cout<<s[i];
}
cout<<endl;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int test;
cin>>test;while(test--)
solve();
return 0;
}
E - Romantic Glasses
题意:
长度为n的字符串,奇数位果汁a喝,偶数位果汁b喝,要求得一个字序列使得a喝的量和b喝的量一样多
思路:
前缀和 s[i]=s[i-1]+(a[i]-奇数 -a[i]-偶数)
答案处理:set存,判断s[i]是否存在,存在输出yes 注意存在0情况!初始set.insert(0)
代码:
/*
* @Author :
* @LastEditTime : 2024-01-09 16:00:51
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define pi pair<int,int>
void solve(){
int n;cin>>n;
vector<int> a(n+1),s(n+1,0);
set<int> tmp;tmp.insert(0); //易错
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) {
if(i%2) s[i]=s[i-1]+a[i];//易错
else s[i]=s[i-1]-a[i];
if(tmp.count(s[i])==0) tmp.insert(s[i]);
else{
cout<<"yes"<<endl;
return;
}
}
cout<<"no"<<endl;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int test;
cin>>test;while(test--)
solve();
return 0;
}