北郵 上機 提交錯誤解決及一些經驗

2021-06-13 19:36:43 字數 3312 閱讀 2023

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)

詳見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()函式

答:其標頭檔案是

7、對於題中多組輸入對應多組輸出的

答:每輸入一組則就輸出一組結果。

如:8、

對於題中有講到資料的範圍的,一定要處理邊界的情況!!!

答:如:接下來有t行,每行有乙個數字n(0<=n<=10^8),表示要求的二進位制串。

,則一定要考慮到

n為0的情況輸出的結果!!

9、輸入字串

答:char array[100];

while(scanf(「%s

」,array)!=eof){}

10、含有malloc(),要包含標頭檔案

11、引數引用的情況(樹)

12、對於一些過程,不必保留中間資料,只要知道結果。如:開門人和關門人

13、理解結束條件

答:(1)當讀到'#'時輸入結束,相應的結果不要輸出。

1021

(2)注意(0, 0)不作為任何乙個測試用例裡面的點。乙個沒有點的測試用例標誌著整個輸入的結束。

1020 \\while(cin>>x>>y&&(x||y))

14、讀入含有空格的字串,可用gets()函式;

15、對於sort()函式,其標頭檔案

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;j17、#include

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// cout<<"hello"<

for(i=2;iif(num[i]x = num[i];

y = num[i+1];

i = i+2;    

continue;

//cout<<"hello"if(num[i+1]y = num[i+1];

i = i+2;

continue;          

else 

cout18、氣泡排序

答: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中。

問:我的程式是如何輸入又是怎樣輸出的?

答:你的程式應該是用stdio輸入(

標準的輸入流

),輸出應該是用

stdout輸出(

標準的輸出流

).比如說

:你可以使用 

c 裡面的 

scanf 

和 c++ 

裡面的cin 

來讀入,而使用 

c 裡面 

printf 

或 c++ 

裡面的cout 

來寫出。 你提交的程式將不允許進行任何檔案的操作。你有可能為此而得到 

runtime error 或者wrong answer。 值得注意的是:g++ 

中的 i/o 

操作,是基於比較複雜的實現模式,相對於 

scanf 

和 printf 

而言,cin

和cout

要慢很多。 經驗表明他們之間的差異在當你使用 

g++ 

作為編譯器的時候顯得尤為突出。所以當乙個問題要求有比較大量的輸入和 輸出時,

cin 

和 cout 

將會導致

time limit exceed !

21、值得注意的是:對64-bit integers

,請使用 long long 進行申明,gnu 

不支援__int64,

輸入輸出使用

lld.例如:

long long a;

scanf("%lld",&a), printf ("%lld",a);

TensorFlow的一些錯誤解決

錯誤描述 nodedef mentions attr truncate not in opy dstt attr srct type attr dstt type nodedef tacotron model inference locationsensitiveattention sequence...

python版本切換 及一些錯誤解決 記錄命令

使用的是anaconda來管理python 檢視系統中所安裝的python版本資訊 conda info e 檢視python版本資訊 source activate root 切換python 3.6版本 1.由於centos自帶py2,我們又安裝了anaconda,配置了環境變數,導致pip 或...

SVN 遇到的一些錯誤解決方案

1 在commit的時候出現錯誤 不能開啟檔案 e svn repository svn db txn current lock 拒絕訪問。解決辦法 為e svn repository目錄設定寫許可權,使用者組 administrator users 需要有修改 寫入許可權。開啟e svn repo...