CSP-J 游记

KXY_Moon

2024-10-29 09:49:34

Life & Travel

Day 1

考试地点离学校很近,坐 bus 十分钟就到了。

感觉自己好菜啊,估计拿不到入门一等。

开考

好慌。

T1

一开始想用统计的方法,先开个数组记录每种张牌的张数,在遍历数组,简单判断一下就好了。

时间复杂度:O(n)

代码:

#include<bits/stdc++.h>
using namespace std;
int n,s[15][60],cnt;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        char op,d;
        cin>>op>>d;
        if(op=='D')
        {
            if(d=='J') ++s[1][11];
            if(d=='Q') ++s[1][12];
            if(d=='K') ++s[1][13];
            if(d=='T') ++s[1][10];
            else ++s[1][d-'0'];
        }
        if(op=='C')
        {
            if(d=='J') ++s[2][11];
            if(d=='Q') ++s[2][12];
            if(d=='K') ++s[2][13];
            if(d=='T') ++s[2][10];
            else ++s[2][d-'0'];
        }
        if(op=='H')
        {
            if(d=='J') ++s[3][11];
            if(d=='Q') ++s[3][12];
            if(d=='K') ++s[3][13];
            if(d=='T') ++s[3][10];
            else ++s[3][d-'0'];
        }
        else 
        {
            if(d=='J') ++s[4][11];
            if(d=='Q') ++s[4][12];
            if(d=='K') ++s[4][13];
            if(d=='T') ++s[4][10];
            else ++s[4][d-'0'];
        }
    }
    for(int i=1;i<=4;i++)
        for(int j=1;j<=13;j++)
            if(s[i][j]) cnt++;
    cout<<52-cnt-1;
    return 0;
}

期望得分:20 分。

后来想正解,想到 STL 中的集合自动去除相同的元素,当时真是开心极了。

代码

#include <bits/stdc++.h>
using namespace std;
const int sum=52;
long long n;set <string> k;
int main()
{
    string t;
    ios::sync_with_stdio(0);cin.tie(0);
    cin>>n;
    for (int i=1;i<=n;i++){
        cin>>t;
        k.insert(t);
    }
    cout<<sum-k.size()<<'\n';
    return 0;
}

期望得分:100 分。

时间复杂度:O(n)

T2

不多说了,大模拟。

T3

正解不会。

我观察到了特殊性质 A,写了个骗分。

只要 n7 的倍数,一直输出 8 即可。

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll t,n;
int main(){
    ios::sync_with_stdio(0);cin.tie(0);
    cin>>t;
    while(t--)
    {
        cin>>n;
        if(n%7==0)
        {
            int k=n/7;
            for(int i=1;i<=k;i++)cout<<8;
            cout<<'\n';
        }
    }
    return 0;
}

期望得分:30 分。

T4 不会。

至此,CSP-J 估分:100+100+30=230 分,该有一等了。

End.