文档章节

北邮-上机-提交错误解决及一些经验

猪刚烈
 猪刚烈
发布于 2014/09/12 16:58
字数 1232
阅读 5
收藏 0

1、出现Time Limit Exceed问题

答:三种原因:1、程序死循环或太多的循环;2、对极限状况计算量太大,需要优化程序,如对10000个以上进行排序必须使用快速排序;3、程序错了。还有一种原因:题目中说n是整数,可能输入0啊或-10啊,不一定都是正数,也可能n=10亿之类的。你循环就累死你。。。

还有一种情况就是,如果cout不行,那就换c语言!!!

2、Presentation Error : 答案基本正确,但是格式不对。

答:出现这种问题主要是输出格式的问题,主要是控制最后一个输出时的格式,后面不能有空格。

3、对于多组输入数据输出结果

答:一般是每组就要对应一个结果

4、出现超时的处理技巧

答:(1)对于while(1){},一般会出现超时,可以先有一个while(cin>>x){for()...}

详见1115.

(2)还有,就是实在不行就选择C语言的输入方式。

(3)对于scanf输入方式,如果不是数组,必须有“&”符号

        While(scanf(%d %d,&a,&b)){}

5、对于多组输入且结束符是(0,0)

答:可能不需要存储其他的信息,只需要将结果显示出来即可。

   While(cin>>x>>y&&(x||y))

   While(cin>>x>>y&&(x||y)),可以用两组输入信息。

6、sort()函数

答:其头文件是<algorithm>

7、对于题中多组输入对应多组输出的

答:每输入一组则就输出一组结果。

如:

8、对于题中有讲到数据的范围的,一定要处理边界的情况!!!

答:如:接下来有T行,每行有一个数字n(0<=n<=10^8),表示要求的二进制串。,则一定要考虑到n为0的情况输出的结果!!

9、输入字符串

答:char array[100];

   While(scanf(%s,array)!=EOF){}

10、含有malloc(),要包含头文件<malloc.h>

11、参数引用的情况(树)

12、对于一些过程,不必保留中间数据,只要知道结果。如:开门人和关门人

13、理解结束条件

答:(1)当读到'#'时输入结束,相应的结果不要输出。1021

(2)注意(0, 0)不作为任何一个测试用例里面的点。一个没有点的测试用例标志着整个输入的结束。1020 \\while(cin>>x>>y&&(x||y))

14、读入含有空格的字符串,可用gets()函数;

15、对于sort()函数,其头文件<algorithm.h>

16、杨辉三角形初始化

void init()//初始化,将杨辉三角形存储在f[1000][1000]中 

{

     int i,j;

     f[2][1] = f[2][2] = 1;

     for(i=3;i<1000;i++)

     {

         f[i][1] = f[i][i] = 1;

         for(j=2;j<i;j++) f[i][j] = f[i-1][j-1] + f[i-1][j];

     }     

}

17#include<iostream>

using namespace std;

int main()

{

    int num[2000];

    int i,a,b,x,y,len,n;

    while(cin>>n)

    {

    for(i=0;i<2*n;i++)//存入数组 

    {

         cin>>a>>b;

         num[i] = a;

         i++;

         num[i] = b;

    }

    x = num[0];//初始化x,x的最小值

    y = num[1];//初始化y,x相等时,存y的最小值 

    //len = sizeof(num)/sizeof(num[0]);

    len = 2*n;

    

    //for(i=0;i<len;i++){cout<<num[i]<<' ';}

    // cout<<"hello"<<endl;

    for(i=2;i<len;)

    {

         if(num[i]<x)

         {

           x = num[i];

           y = num[i+1];

           i = i+2;    

           continue;

           //cout<<"hello"<<endl;       

         }

         else if(num[i]==x)

         {

             if(num[i+1]<y)

             {

                    y = num[i+1];

                    i = i+2;

                    continue;          

             } 

         }

         else {i = i+2;continue;}

    }

    

    cout<<x<<' '<<y<<endl;

}

    return 0;    

18、冒泡排序

答:N个数据,进行N-1轮排序,每轮进行N-1-i次交换。如:10个数据,则进行9轮排序,每轮进行9-i次交换。

    for(i=0;i<4;i++)

    {

       for(j=0;j<4-i;j++)

       {

           if(a[j]>a[j+1])//大数下沉

           {

              temp = a[j];

              a[j] = a[j+1];

              a[j+1] = temp;

                             

           }                  

       }                

19、对于数组,scanf("%d",&a[i]);

20、C语言中,system("pause");在同文件#include<stdlib.h>中。

问:我的程序是如何输入又是怎样输出的?

答:你的程序应该是用stdio输入(标准的输入流),输出应该是用stdout输出(标准的输出流).比如说:你可以使用 里面的 scanf 和 C++ 里面的cin 来读入,而使用 里面 printf 或 C++ 里面的cout 来写出。 你提交的程序将不允许进行任何文件的操作。你有可能为此而得到 Runtime Error 或者 Wrong Answer。 值得注意的是:G++ 中的 I/O 操作,是基于比较复杂的实现模式,相对于 scanf 和 printf 而言,cincout要慢很多。 经验表明他们之间的差异在当你使用 G++ 作为编译器的时候显得尤为突出。所以当一个问题要求有比较大量的输入和 输出时,cin 和 cout 将会导致Time Limit Exceed 

21、值得注意的是:对64-bit integers,请使用 long long 进行申明,GNU 不支持__int64,输入输出使用lld.例如:
long long a;
scanf("%lld",&a), printf ("%lld",a);

本文转载自:http://blog.csdn.net/xiao1ni1zi/article/details/8824817

猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
课程安排全新出炉!北邮在线人工智能EMBA总裁班·人工智能数据挖掘与应用

关于举办“北邮在线人工智能EMBA国际总裁研修班”的通知 人工智能数据挖掘与应用·万里行第1期(北京) 背 景 人工智能发展进入新阶段。经过60多年的演进,特别是在移动互联网、大数据、超级...

北邮区块链张权
2017/11/28
0
0
C语言心得体会

在科技快速发展的今天,计算机在人们生活中的作用越来越突出,而C语言作为一种计算机的语言,我们学习它有助于我们更好地了解计算机。通过学习,我们可以了解到计算机是如何执行程序命令的。...

小辰GG
2017/11/30
0
0
北邮在线区块链EMBA国际总裁研修班

会议详情 区块链技术应用与实践·万里行第1期(北京) 区块链技术是当下信息技术产业最前沿的技术之一,也是继大数据技术后最受各界关注的领域,我国已将区块链技术作为战略性前沿技术列入《...

蟠桃会会议平台
2017/08/03
19
0
北邮在线区块链EMBA国际总裁研修班

会议详情 区块链技术应用与实践·万里行第1期(北京) 区块链技术是当下信息技术产业最前沿的技术之一,也是继大数据技术后最受各界关注的领域,我国已将区块链技术作为战略性前沿技术列入《...

蟠桃会会议平台
2017/08/03
14
0
【北京/上海】文思创新招聘peoplesoft技术支持工程师

10-15k,提供五险一金及商业保险。感兴趣的朋友可以联系我。 请注明来自北邮人bbs。 联系人:张女士 邮箱:zhang_lili-zll5@vanceinfo.com 或者qq:276264496。 要求: 1.具有2年以上PeopleS...

dll
2012/05/15
284
0

没有更多内容

加载失败,请刷新页面

加载更多

查看线上日志常用命令

cat 命令(文本输出命令) 通常查找出错误日志 cat error.log | grep 'nick' , 这时候我们要输出当前这个日志的前后几行: 显示file文件里匹配nick那行以及上下5行 cat error.log | grep -C ...

xiaolyuh
19分钟前
3
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
25分钟前
3
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
32分钟前
2
0
flutter 剪切板 复制粘贴

复制粘贴功能 import 'package:flutter/services.dart'; Clipboard.setData(ClipboardData(text:_text));Clipboard.getData;...

zdglf
35分钟前
3
0
如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?

面试题 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题? 面试官心理分析 这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费...

米兜
36分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部