畫出示意圖就容易理解。
我原先的想法是先儲存相鄰兩點之間距離,然後每次接收測試資料的輸入後再用乙個迴圈計算輸入的兩個出口之間的距離,這樣就會出現如下兩重迴圈的**,從而導致超時。
while(input_amount--)
......
}
後來再參考了別的大佬的解答後發現了這個造成超時的原因,改為在接收第一行的相鄰出口距離的迴圈中,額外構造乙個陣列,儲存每個出口到第乙個出口的距離。這樣計算任意兩出口之間的距離,就只需要兩出口到第乙個出口的距離相減,不需要迴圈,從而減少了耗時。構造每個出口到第乙個出口的距離陣列的**如下。
int distance_near[100000]; //宣告相鄰兩出口之間的距離
int distance_from_1[100000]; //宣告第i個出口到第乙個出口之間的距離
for(int i=1; i<=exits_amount; i++)
#include using namespace std;
int main()
scanf("%d", &input_amount); //輸入測試例子數
int a, b, exit_small, exit_large;
int forward_distance, backward_distance; //宣告順序距離、逆序距離
while(input_amount--)
return 0;
}
《演算法筆記》codeup 5 4 A
時間限制 1 sec 記憶體限制 32 mb 提交 521 解決 186 提交 狀態 討論版 命題人 外部匯入 輸入乙個整數n 2 n 10000 要求輸出所有從1到這個整數之間 不包括1和這個整數 個位為1的素數,如果沒有則輸出 1。輸入有多組資料。每組一行,輸入n。輸出所有從1到這個整數之間 不...
《演算法筆記》codeup 5 5 A
時間限制 1 sec 記憶體限制 32 mb 提交 353 解決 242 提交 狀態 討論版 命題人 外部匯入 求1 n內的完數,所謂的完數是這樣的數,它的所有因子相加等於它自身,比如6有3個因子1,2,3,1 2 3 6,那麼6是完數。即完數是等於其所有因子相加和的數。測試資料有多組,輸入n,n資...
演算法筆記 Codeup 100000567A
題目要求 求一元二次方程ax2 bx c 0的根,三個係數a,b,c由鍵盤輸入,且a不能為0,但不保證b2 4ac 0。程式中所涉及的變數均為double型別。要求輸入 以空格分隔的一元二次方程的三個係數,雙精度double型別 樣例1 2 3要求輸出 分行輸出兩個根如下 注意末尾的換行 r1 第乙...