您的位置:首页 > 其它

洛谷 比赛 有感

2017-09-17 22:20 197 查看
参加了


洛谷9月月赛

https://www.luogu.org/contest/show?tid=3420

过程体验非常好,


T2 预生成密码

https://www.luogu.org/problem/show?pid=T2

思维过程如下:
//T2 预生成密码

//暴力破解,从数据来看可得30分 

//发现该题对运算符的优先级有要求,要看看运算符的优先级

//10分代码如下 

#include <stdio.h>

int main(){

    long long x,y,z,a,b,c;

    int flag;

    while(scanf("%lld%lld%lld",&x,&y,&z)!=EOF){

        flag=0;

        for(a=0;a<=1000;a++){

            for(b=0;b<=1000;b++){

                for(c=0;c<=1000;c++)

                    if(((a&b&c)==x)&&((a|b|c)==y)&&((a+b+c)==z)){

                        printf("%lld %lld %lld\n",a,b,c);

                        flag=1;

                        break;

                    }

                if(flag)

                    break;

            }

            if(flag)

                break;

        }

    }

    return 0;

}

得分虽然只有10分,很有成功感。

马上想到降维 ,马上修改,提交30分,信心大增 

#include <stdio.h>

int main(){

    long long x,y,z,a,b,c;

    int flag;

    while(scanf("%lld%lld%lld",&x,&y,&z)!=EOF){

        flag=0;

        for(a=0;a<=10000;a++){

            for(b=0;b<=10000;b++){

                c=z-a-b;

                if((a&b&c)==x&&(a|b|c)==y){

                    printf("%lld %lld %lld\n",a,b,c);

                    flag=1;

                    break;

                }

            }

            if(flag)

                break;

        }

    }

    return 0;

}

//看了提交记录,发现AC代码都是0ms,明白了,要改算法

//发现windows自带的计算器的程序员这项很好用 

//观察输入输出数据,发现a=x,c=y,b=z-a-c 提交AC,为什么,等比赛结束再做思考,接下来下一题。 

#include <stdio.h>

int main(){

    long long x,y,z;

    while(scanf("%lld%lld%lld",&x,&y,&z)!=EOF){

        printf("%lld %lld %lld\n",x,z-x-y,y);

    }

    return 0;

}

收获颇多,思绪的波动,充满着乐趣。
2017-9-17 22:25
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: