賽碼網3月31號模擬試題(C )

2021-08-01 15:52:43 字數 1732 閱讀 3920

閒來無事把賽碼網的幾個模擬測試做了下,其中一些解題思路即感悟記錄於此。

概要: 總共2個題,乙個小時的時間安排。題目難度適中偏簡單。

題目描述:

小賽要去位於 a 市的小碼家。小賽來到 a 市的車站,買了一張 a 市的地圖,他發現這裡的地形非常的複雜。a 市的街道一共有 n 個路口,m 條道路,每條道路連線著兩個路口,並且有各自的長度。目前,小賽所在的車站位於編號為 1 的路口,而小碼家所在的路口編號為 n,小賽準備打計程車去,當然,路程越小,付的錢就越少。問題擺在眼前:請幫助小賽尋找一條最短路徑,使得他可以花最少的錢到達小碼家。

大概這就是典型的最短路徑演算法吧,節點個數也不多,但是也不少,想用什麼全排列一類的列舉肯定是會超時的,所以可以使用dijkstra演算法來做,時間複雜度o(n*n)。

#include #include #include #include #include #include using namespace std;

int dijkstra(vector>& table, vector& marks, vector& dist, int n)

vectormarks(n, false);

vectordist(n,int_max);dist[0] = 0;

int result = dijkstra(table, marks, dist, n);

cout << result << endl;

return 0;

}/*#include using namespace std;

int main()

vectordis(n+1,int_max);

vectorvisited(n+1,false);

dis[1]=0;

while(1)

}} return 0;

}*/

題目描述:

我們稱乙個正整數n是完美數,如果n的所有因子的平方和f(n)是乙個完全平方數。

例如n=10,那麼f(n)=1+4+25+100=130,所以10不是乙個完美數。

請求出小於n的所有完美數的和。

對於40%的資料n<=10000

對於100%的資料n<=1000000

這道題也是暫時想不出有什麼更優的方法,唯一能想到的就是按規則來列舉,最後也是過了。

#include #include using namespace std;

/*bool check(int num)*/

bool isvalid(int n)

long long x = sqrt(ans);

if(x*x==ans) return true;

else return false;

}int main()

cout << ans << endl;

return 0;

}

找工作路漫漫,但求不忘初心,回首對得起走過的路。

3月31號小結

動態規劃小結 在這段時間的練習中,漸漸的發現dp的一些小技巧,不像原來那樣的懵,也對dp有了簡單的認識。對於這些情況,我們要一一的列舉出來,再根據題目所要求的選擇情況最優。揹包問題 該問題是對於一件物品選擇放還是不放,不能對於這件物品切割。如果可以對這件物品進行切割則是貪心問題,如果不能切割則為揹包...

2023年10月31號 c 過載建構函式

include using namespace std class myclass myclass const myclass b myclass myclass f myclass y myclass y t myclass addf myclass y myclass y t int main ...

12月3號面試題記錄

12月3號跑了兩場面試,上午是青果軟體,下午是長城醫療,青果軟體讓做乙個ssh框架,進行功能實現,不太會做。果斷被刷,下午的長城醫療題目有幾個不會,回來查了一下,果斷記錄上來 字串s長度為n,其中字元各不相同,長度為2的子串的個數為n 1個 字串 m x43 n p 102q 的長度是7 二進位制轉...