第六届CCPC河南省大学生程序设计竞赛正式赛总结

 2024年,第一次参加CCPC,队长和另一个队友都是大二的学长,还是很有压力的。

本次比赛共13道题,我们赛前商量了一下,开始先分别找题,过了几分钟,看了一下榜单有人把f题过了,于是我们去看f题。

F题确实是签到题,看了题目要求,又出了几个样例,就交了,过了。

写完后看了榜单,又开了B题

这题我与齐学长本来认为是dp,但是齐说初状态并不好表示,另一个队友说贪心解法可以,最后通过贪心,按照顺序每次找所需最小的扫雷币进行购买。

#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> pii;
void solve()
{
    int n;cin>>n;
    vector<int>c(n);
    for(int i=0;i<n;i++)cin>>c[i];
    for(int i=n-2;i>=0;i--)
    {
        c[i]=min(c[i],c[i+1]);
    }
    int cnt=0;
    int ans=0;
    for(int i=0;i<n;i++)
    {
        cnt++;
        if(cnt>=c[i])
        {
            cnt-=c[i];
            ans++;
        }
    }
    cout<<ans;

}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr),cout.tie(nullptr);
    int t=1;
    while(t--)solve();
    return 0;
}

下一个是J题

这个题刚开始想着暴力跑一下,但是后来发现了这个数字是五位数,且只要存在0,2,4,6,8,5这六个数字其中之一,重新排列后必定会有合数,把出现的数字由原来最后出现的数字调换一下,而剩下的1,3,7,9只有四位数字,不够组成五位数,所以一定有0,2,4,6,8,5这六个数其中之一,因此这道题不存在-1这种情况,注意题目的要求,需要处理一下前导零。

#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> pii;
void solve()
{
    string s;cin>>s;
    int pos=0;
    string ans="";
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='0'||s[i]=='2'||s[i]=='4'||s[i]=='6'||s[i]=='8'||s[i]=='5')
        {
            pos=i;
            break;
        }
    }
    for(int i=0;i<s.size();i++)
    {
        if(i!=pos)ans+=s[i];
    }
    ans+=s[pos];
    if(ans[0]=='0')swap(ans[0],ans[1]);
    cout<<ans<<"\n";
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr),cout.tie(nullptr);
    int t=1;
    cin>>t;
    while(t--)solve();
    return 0;
}

这三道题用时不到两个小时,但比赛就AC了这三道题。

接下来我们开了M题,刚开始都没有思路,只能试着猜一下做法,结果猜测推翻了一个又一个,时间也过得很快,大约还有一个多小时,去看了其他题,留了一个队员继续做。

接下来看了榜单,我们又开了L和H题,相比于L题,L题更有思路,但是开始写是时间已经不太够了,L题刚开始写的有点错误,调试了一些时间,很慌,还有半个小时时提交错误,很慌很慌,一点一点的试样例找错误,还有10分钟时,又提交了最后一次,特别紧张,结果WA了,很遗憾。

赛后,也找到了错误,本来是可以做对的,时间不够了,没有冷静下来找错误。

这次线下赛收获颇多,总的来说,还需更加努力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值