2018阿里暑期實習線上程式設計題 數星星

2021-08-17 09:55:38 字數 574 閱讀 4852

對於座標圖中nxn的矩陣圖中,每個節點都站著乙個人,從(0,0)點往人群中看,有些人能被看到,有些人會被同一直線上的其他人擋住。問對於給定的n,能看到多少人?

其實相當於計算從原點到整個矩陣的點中一共有多少種斜率,但是無法使用集合等容器,所以遍歷斜率的複雜度太高。之後和同學討論,發現一種挺巧妙的方法:對於那些被前面的人擋住的點來說,他的座標是可以通過約分來得到該點到原點的直線上離原點最近的那個人的座標的,也就是說,當每個點的x,y座標都約到互質時,這個點就是擋住後面人的第乙個人,所以也就可以轉化為遍歷每個點,當該點的座標已經互質時,則計數加一,如果存在公約數,則可以忽略,因為他一定被擋住了。

//檢查該節點座標是否可以約分

bool checkreduce(int a, int b)

return

false;

}//由於矩陣關於原點是對稱的,所以只需要計算乙個三角形。

int findstar(int n)

for(int j=i+1;j<=n;j++)}}

return countn*2+1;

2018華為暑期實習

第一題給你乙個原始字串,根據該字串內每個字元出現的次數,按照ascii碼遞增順序重新調整輸出。include include include define maxline 1024 int main int ind 62 int i 0,j 0,len 0 while i getchar eof i...

阿里2018春季實習生程式設計題(二)

include stdafx.h include include using namespace std 題目如下 三年二班的同學們要去郊遊了,他們決定所有人都從乙個地方出發,但是每個人都要有不同的路線,最終完成一次郊遊。所以他們想知道,在它們去的公園裡,究竟有多少種不同的路線供選擇。公園可以被描述...

樂視2016暑期實習程式設計題

今天20170721做過這幾道題很久了,上次做的一塌糊塗,先是理解題意,搞了一半天,第一道題不知道方向,後面才是轉化為樹的問題,遞迴求解 後面兩道就是看起來很簡單,就是複雜度達不到,還是多積累!file 樂視暑期實習.cpp date 2016 07 20 17 33 author ranjiewe...