codeforces#799
A (根据答案直接推测)
#include<iostream>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
int main()
{
int _;
cin>>_;
while(_--)
{
int a[10];
int n,be=0;
for(int i=0;i<4;i++)
{
cin>>a[i];
}
int Ti=a[0];
for(int i=1;i<4;i++)
{
if(a[i]>Ti)be++;
}
cout<<be<<endl;
}
}
B 直接使用stl中的set(互异性)
#include<iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <set>
using namespace std;
int main()
{
int _;
cin>>_;
while(_--)
{
set<int>s;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int num;
cin>>num;
s.insert(num);
}
int size=s.size();
if((n-size)%2!=0)size--;
cout<<size<<endl;
}
}
C (根据 对角线的特性分别枚举)
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <set>
using namespace std;
int main()
{
int _;
cin>>_;
while(_--)
{
string c[9];
int le,ri,l,r;
for(int i=1;i<=8;i++)
{
cin>>c[i];
}
for(int i=1;i<=8;i++)
{
int cal=0;
for(int j=0;j<8;j++)
{
if(c[i][j]=='#')
{
cal++;
l=i;
r=j;
}
}
if(cal==1 && c[l-1][r-1]=='#' && c[l-1][r+1]=='#')
{
le=l;
ri=r;
break;
}
}
cout<<le<<" "<<ri+1<<endl;
}
}
D (暴力就对了!!!)
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <set>
using namespace std;
int a[24][60]={0};
int main()
{
a[0][0]=1;
a[1][10]=1;
a[2][20]=1;
a[3][30]=1;
a[4][40]=1;
a[5][50]=1;
a[10][01]=1;
a[11][11]=1;
a[12][21]=1;
a[13][31]=1;
a[14][41]=1;
a[15][51]=1;
a[20][02]=1;
a[21][12]=1;
a[22][22]=1;
a[23][32]=1;
a[24][42]=1;
int _;
cin>>_;
while(_--)
{
string s;
int m,sum=0;
cin>>s;
cin>>m;
int ho=(s[0]-'0')*10+(s[1]-'0');
int mi=(s[3]-'0')*10+(s[4]-'0');
int n1=ho,n2=mi;
int m1,m2;
m1=m/60;
m2=m%60;
do{
n1+=m1;
if(n1>23)n1-=24;
n2+=m2;
if(n2>59)
{
n2-=60;
n1+=1;
if(n1>23)n1-=24;
}
if(a[n1][n2])sum++;
}while(ho!=n1||mi!=n2);
cout<<sum<<endl;
}
}