这是本人打的第一把div4,比赛中AC到了E,算是打cf以来这一个多月的最成绩了,但是div4似乎只有EFG较难,ABC签到题,D是div3签到题。
A. Odd One Out
判断就行
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
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;
}
}
B. Not Quite Latin Square
判断就行
附大佬trick
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
char a[3][3];
int cnt1=0,cnt2=0,cnt3=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
cin>>a[i][j];
if(a[i][j]=='A')
{
cnt1++;
}
else if(a[i][j]=='B')cnt2++;
else if(a[i][j]=='C')cnt3++;
}
}
if(cnt1==2)cout<<'A'<<endl;
else if(cnt2==2)cout<<'B'<<endl;
else cout<<'C'<<endl;
}
}
![e5d3acadca5622a353b92f1a040d8a8](C:\Users\DELL\Documents\WeChat Files\wxid_etyjv251mcu922\FileStorage\Temp\e5d3acadca5622a353b92f1a040d8a8.png)
![68923fa8d47d0b3ca452dabf5190aca](C:\Users\DELL\Documents\WeChat Files\wxid_etyjv251mcu922\FileStorage\Temp\68923fa8d47d0b3ca452dabf5190aca.png)
C. Can I Square?
读懂题意就行,意思是sum(ai)是否为完全平方数
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int sum=0;
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
sum+=a[i];
}
if((int)sqrt(sum)* (int)sqrt(sum)==sum)cout<<"YES\n";
else cout<<"NO\n";
}
}
D. Unnatural Language Processing
贪心,以一个词为基准往后枚举第三个词是否为a/e然后依次输出,我加了许多特判,屎山
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
string s;
cin>>s;
int p;
if(n<=3)
{
cout<<s<<endl;
continue;
}
else if(n==4)
{
cout<<s[0]<<s[1]<<'.'<<s[2]<<s[3]<<endl;
continue;
}
else
{
if(s[3]!='a'&&s[3]!='e')cout<<s[0]<<s[1]<<s[2],p=3;
else cout<<s[0]<<s[1],p=2;
}
for(int i=p;i<n;)
{
if(i+3==n)
{
cout<<'.'<<s[i]<<s[i+1]<<s[i+2]<<"\n";
break;
}
else if(i+2==n)
{
cout << '.' << s[i] << s[i + 1] << "\n";
break;
}
else
{
if(s[i+3]=='e'||s[i+3]=='a')cout<<'.'<<s[i]<<s[i+1],i+=2;
else cout<<'.'<<s[i]<<s[i+1]<<s[i+2],i+=3;
}
}
}
}
E. Romantic Glasses
前缀算法,每次的l和r为临界点,实际上就有odd[r]-odd[l]==even[r]-even[l]实际上就是维护当前presum_odd-presum_even然后用个容器来存储就行,赛时用了unordered_map(sb)被成功hack。。。。。
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
vector<int> a(n+1);
int even=0,odd=0;
map<int,int>mp;
int flag=0;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
}
for(int i=1;i<=n;i++)
{
if(i%2==0)
{
even+=a[i];
}
else
{
odd+=a[i];
}
mp[odd-even]++;
if(mp[odd-even]==2||odd-even==0)
{
flag=1;
break;
}
}
if(flag)cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}
标签:int,sum,cin,Codeforces,--,918,using,Div,include
From: https://www.cnblogs.com/godcy/p/17936084.html