Nowcoder Girl 2017題目集合

2021-08-14 05:49:42 字數 3983 閱讀 5982

[程式設計題] 勇氣獲得機

時間限制:1秒

空間限制:32768k

妞妞聽說nowcoder girl女生程式設計挑戰賽要開始了, 但是她沒有足夠的勇氣報名參加, 牛牛為了幫助妞妞,給她準備一台勇氣獲得機。初始的時候妞妞的勇氣值是0, 勇氣獲得機有兩個按鈕:

1、n按鈕: 如果當期擁有的勇氣值為x, 按下之後勇氣值將變為2*x+1,

2、g按鈕: 如果當前擁有的勇氣值為x, 按下之後勇氣值將變為2*x+2,

勇氣值過高也會膨脹,所以妞妞需要將自己的勇氣值恰好變為n, 請你幫助她設計乙個勇氣獲得機的按鍵方案使妞妞的勇氣值恰好變為n。

輸入描述:

輸入包括一行, 包括乙個正整數n(1 <= n <= 10^9), 表示妞妞最後需要的勇氣值。
輸出描述:

輸出一行字串, 每個字元表示該次妞妞選擇按動的按鈕,'n'表示該次按動n按鈕,'g'表示該次按動g按鈕。
輸入例子1:

20
輸出例子1:

ngng
#include#include#include#include#include#include#include#include#include#includeusing namespace std;

int main()

else

}cout<[程式設計題] 排列

時間限制:1秒

空間限制:32768k

妞妞得到乙個(1~n)的排列p1, p2, p3,...,pn, 聽村里的老人牛牛說如果讓這個排列變為:

對於所有的1 <= i <= n, 都滿足pi ≠ i, 就可以獲得google girl hackathon的入場券。

妞妞僅允許的操作是: 交換排列中兩個相鄰的元素, 並且妞妞允許做這個操作任意次。

但是google girl hackathon就快要開始了, 妞妞希望做最少的操作就使排列滿足要求, 妞妞希望你能幫助她。

輸入描述:

輸入包括兩行, 第一行包括乙個正整數n(2 <= n <= 10^5), 表示排列的長度和範圍。

第二行包括n個正整數p1, p2, p3,...,pn, 即妞妞得到的排列, 保證是乙個1~n的排列。

輸出描述:

輸出乙個整數, 表示妞妞需要的操作次數。
輸入例子1:

5

1 4 3 5 2

輸出例子1:

2
#include#include#include#include#include#include#include#include#include#includeusing namespace std;

int p[100005]=;

int n;

int main()

int cnt=0;

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

else if(i==n)

else

else}}

cout<[程式設計題] 打車

時間限制:1秒

空間限制:32768k

妞妞參加完google girl hackathon之後,打車回到了牛家莊。妞妞需要支付給計程車司機車費s元。妞妞身上一共有n個硬幣,第i個硬幣價值為p[i]元。妞妞想選擇盡量多的硬幣,使其總價值足以支付s元車費(即大於等於s)。但是如果從妞妞支付的這些硬幣中移除乙個或者多個硬幣,剩下的硬幣總價值還是足以支付車費的話,計程車司機是不會接受的。例如: 妞妞使用價值為2,5,7的硬幣去支付s=11的車費,計程車司機是不會接受的,因為價值為2這個硬幣是可以移除的。妞妞希望能選取最大數量的硬幣,使其總價值足以支付車費並且計程車司機能接受。妞妞希望你能幫她計算最多可以支付多少個硬幣。

輸入描述:

輸入包括兩行, 第一行包括兩個正整數n和s(1 <= n <= 10, 1 <= s <= 1000), 表示妞妞的硬幣個數和需要支付的車費。

第二行包括n個正整數p[i] (1 <= p[i] <= 100),表示第i個硬幣的價值。

保證妞妞的n個硬幣價值總和是大於等於s。

輸出描述:

輸出乙個整數, 表示妞妞最多可以支付的硬幣個數。
輸入例子1:

5 9

4 1 3 5 4

輸出例子1:

3
#include#include#include#include#include#include#include#include#include#includeusing namespace std;

int p[105]=;

int sum[105]=;

int main()

sort(p+1,p+1+n);

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

int num=0,t=0;

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

}for(int i=num-1;i>=1;--i)

}cout<[程式設計題] 勇敢的妞妞

時間限制:1秒

空間限制:32768k

美麗的牛家莊受到了外星人的侵略, 勇敢的妞妞要上戰場抵禦侵略。在妞妞上戰場前, 村長牛牛給了妞妞n件裝備, 妞妞需要選擇其中的k件,裝備在身上提公升自己的戰鬥力。每件裝備有5種屬性增幅值,對於第i件裝備它的屬性增幅值為(ri1, ri2, ri3, ri4, ri5), 分別代表該裝備對不同的屬性值增幅。當妞妞裝備多件裝備的時候,由於裝備之前會互相影響, 對於每種屬性值的增幅並不是所有裝備該屬性值之和, 而是該種屬性值下所有裝備中最大的屬性值。而妞妞最終增加的戰鬥力為這5種屬性值增幅之和。妞妞一定要保衛牛家莊, 所以她希望她能提公升盡可能多的戰鬥力, 請你幫幫她計算她最多能增加多少戰鬥力。

輸入描述:

輸入包括n+1行,

第一行包括兩個正整數n和k(1 <= n <= 10000, 1 <= k <= n), 分別表示一共有的裝備數量和妞妞需要選擇的裝備數量。

接下來的n行,每行5個整數ri1, ri2, ri3, ri4, ri5 (0 <= ri1, ri2, ri3, ri4, ri5 <= 10000)表示第i件裝備的5種屬性值增幅。

輸出描述:

輸出乙個整數,表示妞妞最多能增加的戰鬥力。

輸入例子1:

4 2

30 30 30 30 0

50 0 0 0 0

0 50 0 50 10

0 0 50 0 20

輸出例子1:

170
例子說明1:

妞妞要從4件裝備中選取2件, 如果妞妞選擇第1件和第3件裝備,那麼增加的戰鬥力為30 + 50 + 30 + 50 + 10 = 170, 這是最大的方案。
#include#include#include#include#include#include#include#include#include#includeusing namespace std;

int n,k;

int a[10005][5];

int main()

}if(k>=5)

;long long int dp[25][105];

int main()

memset(dp,0,sizeof(dp));

for(int i=0;i<=a[1];++i)

for(int i=2;i<=n;++i)}}

cout

}

NowcoderGirl程式設計比賽(二)

現有兩個按鈕,按下按鈕n會執行2x 1,按下m執行2x 2。x初值為0,現要求出任意正整數n應使用何種按法使得x能變成n。我們猜想,是否任意給定乙個數字都可以得通過按不同的按鈕得到。可以使用窮盡法試試,便可以發現其中的規律。其實是可以通過任意乙個數字找出其的順序。那麼我們可以倒著想 c語言實現 in...

物件導向部分 201

小夥伴們,還在為不知道怎麼下手而頭疼嗎,我們程式競賽協會來幫你們啦 啦啦啦。另外,如果有對程式設計含有濃厚興趣的同學,我們隨時歡迎你們的加入喲 策劃 譚兆飛 程式設計 管懷文 協助 一號人員要求給她打碼 乾脆二號也打碼好了o o 其實只是提供了題目啦 物件導向部分 201 include inclu...

2 01揹包問題

有 nn 件物品和乙個容量是 vv 的揹包。每件物品只能使用一次。第 ii 件物品的體積是 vivi,價值是 wiwi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。輸入格式 第一行兩個整數,n,vn,v,用空格隔開,分別表示物品數量和揹包容積。接下來有 n...