蓝桥杯攻略!省一经验+考试全流程+技巧分享

我对整体参赛流程还是比较熟悉了,给大家留下一点值得参考的东西~。

这篇纯纯经验和技巧分享,请放心食用~

目录

考试流程:

考试代码怎么提交:

考试拿分特别注意事项:

小技巧:

考完结束做什么:

 (附加)常用算法模版


首先给大家做个参考:

    这次蓝桥杯4月8号考的,成绩是4月23号出的,大概考完两个星期出成绩,给大家做个参考。


考试流程:

考前一星期打印准考证,自己的考场和机位号是这个时候就知道了,都写在了准考证上

下面是参赛选手须知:

比较重要的几点:        

  • 草稿纸会发,不用担心。考试结束记得将草稿纸上交,不能带出考场。
  • 中途上厕所看考场管的严不严,严格流程是先和监考老师说,监考老师上报,等对面系统同意,你才能去。并且每个考场只能有一个人去厕所,如果你前面有人去了还没回来,你只能等他回来之后才能去。
  • 可以提前交卷,只需要和老师说一声就ok
  • 不能外接usb,也就是说U盘不能带。不能拷代码也不能从u盘安装你喜欢的编译器。没有侥幸机会的,考场的电脑系统已经被设置usb禁用了。考试结束后我试着插下u盘,想把我写的代码拷走,结果在直接显示禁止访问该设备,在“我的电脑”那里也显示无法读取,这个有想带U盘的同学注意一下


考试代码怎么提交:

编程题:编程题的话直接复制你的代码,交到对应的题目下就好了。考试系统每道编程题都有提交按钮,你点一下就会弹出个类似于文本框的东西,把代码复制进去,再点下提交按钮就可以了。

    填空题 :直接写答案。比如你算出来是235,直接在对应题目那里写235,,不要写print,不要写其他东西,提交那里只有一个类似评论的文本框,不能运行的,直接写答案就可以了。

二编:很多人问关于提交的问题,我再详细的讲讲吧 

首先,考试前五分钟,监考老师会给每个电脑上传一个压缩文件,需要密码才能打开,考试前你需要确认收到了这个文件才行,这个压缩文件里就是题目,题目是pdf文件的形式。然后老师会在黑板上写一个网址,这个网址就是考试系统,也就是上传你的答案的地方。没错,考试系统就是个网页。    

考试开始时间到,监考老师会在黑板上写下压缩文件的解压密码,此时考试就正式开始了。你需要根据压缩包里的pdf题目,来进行编程。此时你可以任意自由的最小化考试系统,没有“禁止切出屏幕”等限制,在电脑桌面上选择你想用的编译器,比如Devc++,clion,pycharm,idea等,进行编程,调试,运行。等你决定提交这道题时,打开那个考试系统的网页,考试网页上会很清晰的告诉你点哪里提交,比如:“5、A+B的和    =>   提交” 。点击你要交的那个题目后面的"提交"按钮,就会弹出一个类似于评论的文本框,注意,它只是个文本框,不能运行,所以不能看到这道题是否能编译成功、运行成功、答案过了多少样例,是否AC等等,相当于只是上传了个文本。可以无限次修改,系统只保留最后一次提交的内容。全部提交后,可以提前交卷,举手和监考老师示意,离场。或者等考试时间结束,系统自动收卷,离场。这就是比赛的全流程啦~)


考试拿分特别注意事项:

(为了避免本来能拿满分的题最后只得个四五分的情况,请提交代码前一定要考虑以下几点)

 1、题目只有0个或1个输入时的情况,是否需要特殊处理(比如动态规划要注意只有1个的情况,因为没有上一个可以为它计算。)

2、初值确保赋0或赋值,不然生成的随机数可能会使整个代码挂掉

3、考虑题目是否涉及负数

4、考虑题目是否会有进位问题

5、用数据大小的边界值计算时间复杂度,1s的限时,运行次数大概是10的8次方 

下图是官方的关于各种数据类型的取值范围,计算时不要溢出了: 


 小技巧:

    可以使用万能头文件#include<bits/stdc++.h>

    填空题只需要填答案,所以过程是怎么做出来的都可以,日期类可以首先考虑用表格excel做,像什么求过了多少天,求是星期几,用excel做很方便。也可以暴力枚举,毕竟系统只要结果。

    如果不会做了想暴力枚举的话,每题1s的限时,也就是运行次数大概是10的8次方。所以暴力枚举两个for嵌套,每个for最多可以运行10000次,三个for嵌套,每个for最多可以运行464次,大家做题的时候根据题目给的数据范围,可以估算一下暴力的话会不会超时。

    求最大最小值时,min要设为INT_MAX(INT_MAX是int的最大值,2147483647,10位数)记不住写999999999也行,不要搞反了,不要把min设置成0,不然输入的数据永远比0大,min永远是0不会更新,max也是同样的道理,设置成-INT_MAX或者-999999999。

     可以重复提交同一道题目,系统会保留最后一次内容。也就是说最后时间不多的时候,你觉得你现在这道题样例已经可以过了,就算不完善也先把代码提交一下,然后再继续完善修改,大不了等完善好了再提交就是了。因为这样万一时间到了你还在修改没提交,那之前提交的不完善的代码也有可能有个保底的几分,这样总比没交好。 


考完结束做什么:

    时间到了系统会自动收卷,不用担心。时间到了之后,把草稿纸交到监考老师那,你就可以去干饭啦~

    对了,考试总时长为4个小时,从9点考到下午1点,最好带点吃的。我带的是巧克力,雀巢咖啡,两个巧克力派,还有一瓶矿泉水,给大家参考参考,大家看着带吧。


总结:

平时不要太在意在群里看见别人刷了几百道题了,那个数字并不是很重要。如果把一道题真的弄懂了,那么相应的那个知识点相应的一系列题目你自然就会了。

再说了,难道因为自己刷的题没别人多就不学啦?

所以保持好心态,你就会发现又AC一道题的时候有多快乐啦~

希望可以帮到你们~加油加油!


附上我平时的做真题网站:编程题库 - C语言网

 可以评测代码,并且有题解,免费的。

 蓝桥杯官网pdf形式真题(也是免费的):蓝桥杯大赛历届真题_蓝桥杯 - 蓝桥云课

 

欢迎点赞,收藏,评论,你的鼓励就是我创作的最大动力!(๑╹◡╹)ノ"""


 (附加)常用算法模版

判断n是否为素数 :
bool is_prime(int n) {
    if (n <= 1) return false;
    for (int i = 2; i <= sqrt(n); i++) {
        if (n % i == 0) return false;
    }
    return true;
}
 求最大公约数
int gcb(int a,int b){

   return b==0 ? a:gcb(b,a%b);

}
最长递增子序列
for ( j=1; j<len; j++ )
    for ( i=0; i<j; i++ )
        if ( a[j]>a[i] && dp[j]<dp[i]+1 )
            dp[j] = dp[i]+1;
 X的二进制长度
 int BitLength(int x)
      {
          int d = 0;
          while (x > 0) {
              x >>= 1;
              d++;
          }
          return d;
      }
质因数分解
 int reduce(int prime[],int pn,int n,int rest[])
      {
      int i,k=0;
      for(i=0;i<pn;i++)
           {
           if (n==1) break;
           if (prime[i]*prime[i]>n) {rest[k++]=n;break;}
           while(n%prime[i]==0)
               {
               n/=prime[i];
               rest[k++]=prime[i];
               }
           }
      return k;
      }
任意进制转换
    void conversion(char s[],char s2[],long d1,long d2)
      {
          long i,j,t,num;
          char c;
          num=0;
          for (i=0;s[i]!='\0';i++)
              {
              if (s[i]<='9'&&s[i]>='0') t=s[i]-'0'; else t=s[i]-'A'+10;
              num=num*d1+t;
              }
          i=0;
          while(1)
              {
              t=num%d2;
              if (t<=9) s2[i]=t+'0'; else s2[i]=t+'A'-10;
              num/=d2;
              if (num==0) break;
              i++;
              }
          for (j=0;j<i/2;j++)
              {c=s2[j];s2[j]=s[i-j];s2[i-j]=c;}
          s2[i+1]='\0';
      }
大数加法
 string solve(string s, string t) {
        // write code here
        if(s.size()<t.size())
        {
            string temp=s;
            s=t;
            t=temp;
        }
        int len1=s.size();
        int len2=t.size();
        int num1,num2,flag=0,sum;
        while(len1>0)
        {
            num1=s[len1-1]-'0';
            if(len2>0)
                num2=t[len2-1]-'0';
            else
                num2=0;
            sum=num1+num2+flag;
            s[len1-1]=sum%10+'0';
            flag=sum/10;
            len1--;
            len2--;
        }
        if(flag==1)
            s="1"+s;
        return s;
    }
字符串查找
    int strfind(char str[],char key[])
      {
          int l1,l2,i,j,flag;
          l1=strlen(str);
          l2=strlen(key);
          for (i=0;i<=l1-l2;i++)
              {
              flag=1;
              for (j=0;j<l2;j++)
                  if (str[i+j]!=key[j]) {flag=0;break;}
              if (flag) return i;
              }
          return -1;
      } 
背包问题
给你n个价值的东西及背包容量c,然后知道n个东西的价值v[i]以及重量w[i]
求在背包容量范围为内可以装的最多的价值。
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;
int w[1005],v[1005],dp[1005];
int main()
{
    int i,j,tcase,n,c;
    scanf("%d",&tcase);
    while(tcase--)
    {
        scanf("%d%d",&n,&c); 
        for(i=0;i<n;i++)
        {
            scanf("%d",&v[i]);
        }
        for(i=0;i<n;i++)
        {
            scanf("%d",&w[i]);
        }
        memset(dp,0,sizeof(dp));
        for(i=0;i<n;i++)
	      {
	         for(j=c;j>=w[i];j--)
		       {
		           dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
               }
          }
        printf("%d\n",dp[c]);
    }
    return 0;
}
  • 283
    点赞
  • 1282
    收藏
    觉得还不错? 一键收藏
  • 66
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 66
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值