Zero I水题欢乐赛


Zero系列竞赛是老师针对高一新进行OI学习的学生研制的新一套练习题,与Algorithm1x,Algorithm10x共同组成现在我们的OI模拟竞赛机制。

那么为什么我们要做呢?主要是为了适应NOI Linux(必须吐槽一下,用原版的Ubuntu会死吗非要改结果改成了那个鬼样子)的奇葩环境,保证NOIP竞赛时顺利进行测试。

我们写这种题简直就是玩一样?考试前我们调侃这次的题10分钟就能写完?老师说不AK就要打屁股??

于是呢,我和Ciel决定作个死——测试使用纯Linux Bash终端(对就是没有图形化界面纯命令行的方式)(启动方式:ctrl+alt+F1~F8,其中GUI的在F7上)配上同样喜闻乐见的Vim进行测试。?

于是,考试期间敲Vim敲到不能自已。虽然早就习惯了Linux Bash,虽然并不是那么的反人类,可是我慌到了一个小时T3水模拟竟然没写出来~直接覆盖数组搞定的事情我竟然拿了一个函数来搞qwq真是可怕(逃

还是贴上题解吧万一有需要的小朋友呢(*^_^*)


T1 暴力

不说啥了。

题目大意:求1~n以内的整数中3出现了多少次。n<=10000.

这题直接枚举1~n每一个数,每次%10看看是不是3,然后/10除去最后一位即可。

AC.

附代码:

#include <cstdio>

int ans,n;

int main()
{
    freopen("count.in","r",stdin);
    freopen("count.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
    {
        int x=i;
        while(x)
        {
            if(x%10==3) ++ans;
            x/=10;
        }
    }
    printf("%d",ans);
    fclose(stdin);
    fclose(stdout);
    return 0;
}

T2 暴力

不说啥了+1.

题目大意:求(a^b)%n-(b^a)%m. 其中a,b,m,n∈[0,MAXINT]

AC+1.

附代码。

#include <cstdio>

long long a,b,n,m,ans=1,res=0;

int main()
{
    freopen("pow.in","r",stdin);
    freopen("pow.out","w",stdout);
    scanf("%lld%lld%lld%lld",&a,&b,&n,&m);
    for(int i=1;i<=b;++i) ans=(ans*a)%n;
    res+=ans;
    ans=1;
    for(int i=1;i<=a;++i) ans=(ans*b)%m;
    res-=ans;
    printf("%lld",res);
    fclose(stdin);
    fclose(stdout);
    return 0;
}

T3 暴力

不说啥了+2.

说多了都是泪?

题目大意:输出像这样的正方形。(n<=30)

3 3 3 3 3 3 3
3 2 2 2 2 2 3
3 2 1 1 1 2 3
3 2 1 0 1 2 3
3 2 1 1 1 2 3
3 2 2 2 2 2 3
3 3 3 3 3 3 3

 

 此时n==3.

这道题直接搞个二维数组存储一下就好了qwq

而且可以直接覆盖,也就是直接用3赋值7*7,2赋值5*5,1赋值3*3,诸如此类qwq

可是我硬是搞了个函数做外围边缘赋值qwq真是个错误的决定

考完试收完题我一想:W~o~c~这不是Surface Book™题吗?真是哭笑不得qwq

于是从旧楼虚拟Linux机房回到新楼主用Windows机房开始一通码qwq

几分钟的事情qwq

我得承认这道题0分qwq

考试时所写代码丢失,附改后代码:

#include <cstdio>

int n,map[100][100];

int main()
{
    freopen("cir.in","r",stdin);
    freopen("cir.out","w",stdout);
    scanf("%d",&n);
    for(int i=n;i>=0;--i)
    {
        int start=n-i+1;
        for(int j=start;j<=n+i+1;++j)
        {
            for(int k=start;k<=n+i+1;++k) map[j][k]=i;
        }
    }
    int bd=n*2+1;
    for(int i=1;i<=bd;i++)
    {
        for(int j=1;j<=bd;j++)printf("%d ",map[i][j]);
        printf("\n");
    }
}

Zero I对我们而言其实真的只是水题欢乐赛

无需过多介意了

QwQ

这次比赛只有两人AK……说好的全员AK呐QAQ

希望今后有更多的水题欢乐赛能够提升自己的代码水平,以快,准,稳的代码效率和能力在OI道路上走的更远!

声明:TonyZhao's Home|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Zero I水题欢乐赛


不骗了,不骗了。
A Simple OIer fighting tooth and nail.