优快云第24期周赛(记录一下)

文章讲述了作者在编程挑战中的经历,包括蛇皮矩阵、货车司机问题、求特定数字出现次数和回文串字符串的解决方案。作者注意到一些细节问题如SegmentationFault,并分享了逐步学习和提高的计划,目标是参加编程比赛并提升技能。

▶ 爱要坦荡荡 (163.com)

每一道题都有思路,可是只有一道Accepted100%,一道很简单的50%,一道输出错误10%并报错Segmentation Fault,一道字符串有思路但是没时间了

一,蛇皮矩阵  Accepted 10%

报错Segmentation Fault

可能是每行后,多输出了空格

#include<iostream>
using namespace std;
int a[110][110];
int main()
{
    a[0][0] = 1;
    int n;
    cin>>n;
    int row = 0, col = 0, m = 1;

    //到达最后一行前
    while(1) {
        //向右
        a[row][++col] = ++m;
        //左下
        while(col)
            a[++row][--col] = ++m;
        //向下
        a[++row][col] = ++m;
        //右上
        while(row)
            a[--row][++col] = ++m;
        if(row == n - 1)
            break;
    }
    //到达最后一行后,开始右下部分输出
    while(!a[n - 1][n - 1]) {
        //向右
        a[row][++col] = ++m;
        //右上
        if(col != n - 1)
            a[--row][++col] = ++m;
        //向下
        a[++row][col] = ++m;
        //左下
        if(row != n - 1)
            a[++row][--col] = ++m;
    }
    for(int i = 0; i < n; ++i) {
        for(int j = 0; j < n; ++j)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}

二,货车司机  Accepted 50%

这题真的非常简单,1分钟找思路,2分钟敲出来,后悔没有回去仔细想想

每辆货车装K件货物,共有N件货物,问需要多少量车,但司机有个怪癖,不喜欢13这个数字,就是每辆货车装的货物不能是13

#include<iostream>
using namespace std;
int main()
{
    int N, K, ans = 0;
    while(cin>>N>>K) {
        if(N == 13)
            ans = max(N / K + 1, 2);
        if(K == 13)
            ans = N / 12 + 1;
        if(N != 13 && K != 13)
            ans = N / K + 1;
        cout<<ans<<endl;
    }
    return 0;
}

三,求1 ~ n出现多少次x  Accepted 100%

#include<iostream>
using namespace std;
int main()
{
    int n, x;
    cin>>n>>x;
    int ans = 0;
    for(int i = 1; i <= n; ++i) {
        int k = i;
        if(k == x)
            ans++;
        while(k / 10 != 0) {
            if(k % 10 == x)
                ans++;
            k /= 10;
            if(k == x)
                ans++;
        }

    }
    cout<<ans<<endl;
    return 0;
}
11 1
4

四,字符串  Accepted 0%

输入k和一串字符串

1,字符串包括已知部分和未知部分,未知部分用?代替

2,k表示字符串只能有前k个小写字母

3,且每个字母最少出现一次

4,必须为回文串

4,回文串写个bool回文函数就好

2,前k用a[i] - 'a' + 1 >=  1 && a[i] - 'a' + 1 <= k

3,只能出现一次用b[i]标记出现过的字母

1,这个的判断还没想清楚。。

总结

慢慢学会一题多解,一道题以前会了,可换种思路或者加点细节要求呢,还有就是细心

好歹,一次有一次的进步,等再熟练点,就不止在优快云的比赛练手了

先学完《啊哈算法》发育到4级

再在优快云参加周赛(每次起码75分以上)发育到装备出完

期间打打野(对着算法标签去各种网站刷简单题)

最后带线摧毁敌方防御塔(蓝桥杯省二)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千帐灯无此声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值