CSP-J 2024 复赛题
扑克牌(poker)
#include<bits/stdc++.h>
using namespace std;
int main()
{set<string> a;int n;cin>>n;for(int i=0;i<n;i++){string s;cin>>s;a.insert(s);}cout<<52-a.size();return 0;
}
地图探险 (explore)
#include<bits/stdc++.h>
using namespace std;
char a[1001][1001];
bool b[1001][1001];
int n,m,x,y,d,k;
int T;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
void shr();
void zou();
int cnt=1;
int main()
{cin>>T;while(T--){shr();zou();}return 0;
}
void shr(){cin>>n>>m>>k;cin>>x>>y>>d;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];b[i][j]=0;}}
}
void zou(){b[x][y]=1;cnt=1;while(k--){int tx=x+dx[d];int ty=y+dy[d];if(a[tx][ty]=='.'&&tx>=1&&tx<=n&&ty>=1&&ty<=m){x=tx,y=ty;if(b[tx][ty]!=1) cnt++;b[tx][ty]=1;}else d=(d+1)%4;}cout<<cnt<<endl;
}
小木棍 (sticks)
#include<bits/stdc++.h>
using namespace std;int main()
{string res="";int k,n;cin>>k;while(k--){res="";cin>>n;int g=n/7;int y=n%7;if(y==1){if(g==0){cout<<-1<<endl;continue;}else{g--;res="10";}}else if(y==2) res="1";else if(y==3){if(g==0){res="7";}else{g--;res="22";}}else if(y==4){if(g==0){res="4";}else{g--;res="20";}}else if(y==5) res="2";else if(y==6) res="6";for(int i=0;i<g;i++){res=res+"8";}cout<<res;}return 0;
}