北邮-上机-提交错误解决及一些经验
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1、出現(xiàn)Time?Limit?Exceed問題
答:三種原因:1、程序死循環(huán)或太多的循環(huán);2、對(duì)極限狀況計(jì)算量太大,需要優(yōu)化程序,如對(duì)10000個(gè)以上進(jìn)行排序必須使用快速排序;3、程序錯(cuò)了。還有一種原因:題目中說n是整數(shù),可能輸入0啊或-10啊,不一定都是正數(shù),也可能n=10億之類的。你循環(huán)就累死你。。。
還有一種情況就是,如果cout不行,那就換c語言!!!
2、Presentation?Error?:?答案基本正確,但是格式不對(duì)。
答:出現(xiàn)這種問題主要是輸出格式的問題,主要是控制最后一個(gè)輸出時(shí)的格式,后面不能有空格。
3、對(duì)于多組輸入數(shù)據(jù)輸出結(jié)果
答:一般是每組就要對(duì)應(yīng)一個(gè)結(jié)果
4、出現(xiàn)超時(shí)的處理技巧
答:(1)對(duì)于while(1){},一般會(huì)出現(xiàn)超時(shí),可以先有一個(gè)while(cin>>x){for()...}
詳見1115.
(2)還有,就是實(shí)在不行就選擇C語言的輸入方式。
(3)對(duì)于scanf輸入方式,如果不是數(shù)組,必須有“&”符號(hào)
????????While(scanf(“%d?%d”,&a,&b)){}
5、對(duì)于多組輸入且結(jié)束符是(0,0)
答:可能不需要存儲(chǔ)其他的信息,只需要將結(jié)果顯示出來即可。
???While(cin>>x>>y&&(x||y))
???While(cin>>x>>y&&(x||y)),可以用兩組輸入信息。
6、sort()函數(shù)
答:其頭文件是<algorithm>
7、對(duì)于題中多組輸入對(duì)應(yīng)多組輸出的
答:每輸入一組則就輸出一組結(jié)果。
如:
8、對(duì)于題中有講到數(shù)據(jù)的范圍的,一定要處理邊界的情況!!!
答:如:接下來有T行,每行有一個(gè)數(shù)字n(0<=n<=10^8),表示要求的二進(jìn)制串。,則一定要考慮到n為0的情況輸出的結(jié)果!!
9、輸入字符串
答:char?array[100];
???While(scanf(“%s”,array)!=EOF){}
10、含有malloc(),要包含頭文件<malloc.h>
11、參數(shù)引用的情況(樹)
12、對(duì)于一些過程,不必保留中間數(shù)據(jù),只要知道結(jié)果。如:開門人和關(guān)門人
13、理解結(jié)束條件
答:(1)當(dāng)讀到'#'時(shí)輸入結(jié)束,相應(yīng)的結(jié)果不要輸出。1021
(2)注意(0,?0)不作為任何一個(gè)測試用例里面的點(diǎn)。一個(gè)沒有點(diǎn)的測試用例標(biāo)志著整個(gè)輸入的結(jié)束。1020?\\while(cin>>x>>y&&(x||y))
14、讀入含有空格的字符串,可用gets()函數(shù);
15、對(duì)于sort()函數(shù),其頭文件<algorithm.h>
16、楊輝三角形初始化
void?init()//初始化,將楊輝三角形存儲(chǔ)在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++)//存入數(shù)組?
????{
?????????cin>>a>>b;
?????????num[i]?=?a;
?????????i++;
?????????num[i]?=?b;
????}
????x?=?num[0];//初始化x,存x的最小值
????y?=?num[1];//初始化y,當(dāng)x相等時(shí),存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個(gè)數(shù)據(jù),進(jìn)行N-1輪排序,每輪進(jìn)行N-1-i次交換。如:10個(gè)數(shù)據(jù),則進(jìn)行9輪排序,每輪進(jìn)行9-i次交換。
????for(i=0;i<4;i++)
????{
???????for(j=0;j<4-i;j++)
???????{
???????????if(a[j]>a[j+1])//大數(shù)下沉
???????????{
??????????????temp?=?a[j];
??????????????a[j]?=?a[j+1];
??????????????a[j+1]?=?temp;
?????????????????????????????
???????????}??????????????????
???????}????????????????
}?
19、對(duì)于數(shù)組,scanf("%d",&a[i]);
20、C語言中,system("pause");在同文件#include<stdlib.h>中。
問:我的程序是如何輸入又是怎樣輸出的?
答:你的程序應(yīng)該是用stdio輸入(標(biāo)準(zhǔn)的輸入流),輸出應(yīng)該是用stdout輸出(標(biāo)準(zhǔn)的輸出流).比如說:你可以使用?C?里面的?scanf?和?C++?里面的cin?來讀入,而使用?C?里面?printf?或?C++?里面的cout?來寫出。?你提交的程序?qū)⒉辉试S進(jìn)行任何文件的操作。你有可能為此而得到?Runtime?Error?或者?Wrong?Answer。?值得注意的是:G++?中的?I/O?操作,是基于比較復(fù)雜的實(shí)現(xiàn)模式,相對(duì)于?scanf?和?printf?而言,cin和cout要慢很多。?經(jīng)驗(yàn)表明他們之間的差異在當(dāng)你使用?G++?作為編譯器的時(shí)候顯得尤為突出。所以當(dāng)一個(gè)問題要求有比較大量的輸入和?輸出時(shí),cin?和?cout?將會(huì)導(dǎo)致Time?Limit?Exceed?!
21、值得注意的是:對(duì)64-bit?integers,請(qǐng)使用?long?long?進(jìn)行申明,GNU?不支持__int64,輸入輸出使用lld.例如:
long?long?a;
scanf("%lld",&a),?printf?("%lld",a);
轉(zhuǎn)載于:https://my.oschina.net/pangzhuzhu/blog/312921
總結(jié)
以上是生活随笔為你收集整理的北邮-上机-提交错误解决及一些经验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AppDelegate.h
- 下一篇: SQL Server 固定角色