USACO US Open Contest Contest Bronze 题解
2023-01-19 10:31:24
thumb_up 0
T1 Acowdemia I
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,l,a[N],h[N],q[N],ans;
int main(){
cin>>n>>l;
for(int i=1;i<=n;++i){cin>>a[i];h[a[i]]++;}
for(int i=N-1;i>=1;--i)q[i]=q[i+1]+h[i];
int ans=1;
for(int i=1;i<=n;++i)
if(q[i]+min(h[i-1],l)>=i)ans=i;
cout<<ans<<'\n';
return 0;
}
T2 Acowdemia II
#include<bits/stdc++.h>
using namespace std;
const int N=114;
int n,k;
string s[N],t[N];
map<string,int>m;
char ch[N][N];
int main(){
memset(ch,'?',sizeof(ch));
cin>>k>>n;
for(int i=1;i<=n;++i){cin>>s[i];m[s[i]]=i;}
while(k--){
for(int i=1;i<=n;++i)cin>>t[i];
for(int i=1;i<=n;++i){
bool f=0;
for(int j=i+1;j<=n;++j){
if(t[j]<t[j-1])f=1;
if(f)ch[m[t[i]]][m[t[j]]]='0',ch[m[t[j]]][m[t[i]]]='1';
}
}
}
for(int i=1;i<=n;++i) {
for(int j=1;j<=n;++j)
if(i==j)putchar('B');
else putchar(ch[i][j]);
putchar('\n');
}
return 0;
}
T3 Acowdemia III
CG or GC
GC CG
#include<bits/stdc++.h>
const int N=1e3+5,dx[]={1,0,-1,0},dy[]={0,-1,0,1};
int n,m,g[N][N],ans;
char ch[N][N];
int main(){
std::cin>>n>>m;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
std::cin>>ch[i][j];
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
if(ch[i][j]=='G')
if(ch[i-1][j]=='C'&&ch[i+1][j]=='C'||ch[i][j-1]=='C'&&ch[i][j+1]=='C')ans++;
else if(ch[i-1][j]=='C'&&ch[i][j+1]=='C'&&g[i-1][j+1]==0)ans++,g[i][j]=1;
else if(ch[i-1][j]=='C'&&ch[i][j-1]=='C'&&g[i-1][j-1]==0)ans++,g[i][j]=1;
else if(ch[i+1][j]=='C'&&ch[i][j+1]=='C')ans++,g[i][j]=1;
else if(ch[i+1][j]=='C'&&ch[i][j-1]=='C')ans++,g[i][j]=1;
std::cout<<ans<<'\n';
return 0;
}