NOIP普及組複賽題集

2021-08-27 03:36:50 字數 2603 閱讀 4894

題目描述

牛倌被通知,他的乙隻牛逃逸了!所以他決定,馬上出發,盡快把那只牛抓回來.

他們都站在數軸上.牛倌在n(0≤n≤100000)處,牛在k(0≤k≤100000)處.約翰有兩種辦法移動,步行和瞬移:步行每秒種可以讓約翰從x處走到x+l或x-l處;而瞬移則可讓他在1秒內從x處消失,在2x處出現.然而那只逃逸的牛,悲劇地沒有發現自己的處境多麼糟糕,正站在那兒一動不動.

那麼,牛倌需要多少時間抓住那只牛呢?
輸入

僅有兩個整數n和k

輸出最短時間

樣例輸入

5 17

樣例輸出

題目描述

城市管理部門打算好好修一下農場中某條凹凸不平的土路。按市民們的要求,修好後的路面高度應當單調上公升或單調下降,也就是說,高度上公升與高度下降的路段不能同時出現在修好的路中。 整條路被分成了n段,n個整數a_1, … , a_n (1 <= n <= 2,000)依次描述了每一段路的高度(0 <= a_i <= 1,000,000,000)。城市管理部門希望找到乙個恰好含n個元素的不上公升或不下降序列b_1, … , b_n,作為修過的路中每個路段的高度。由於將每一段路墊高或挖低乙個單位的花費相同,修路的總支出可以表示為: |a_1 - b_1| + |a_2 - b_2| + … + |a_n - b_n| 請你計算一下,fj在這項工程上的最小支出是多少。城市管理部門向你保證,這個支出不會超過2^31-1。

輸入第1行: 輸入1個整數:n * 第2..n+1行: 第i+1行為1個整數:a_i

輸出第1行: 輸出1個正整數,表示fj把路修成高度不上公升或高度不下降的最小花費

樣例輸入

3
2


4
5


3
樣例輸出

#include

#include

#include

#include

#include

#define inf 0x7fffffff

using

namespace

std;

inline

int read()

return x;

}int n,a[2005],b[2005];

int c[2005][2005],f[2005][2005];

int ans=inf;

inline

bool cmp(int a,int b)

int main()

ans=f[n][n];

sort(b+1,b+n+1,cmp);

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

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

ans=min(ans,f[n][n]);

printf("%d",ans);

return

0;}

題目描述

如果你看過《哈利·波特》,你就會知道魔法世界裡的**是很神奇的。也許是因為小魔法師佳佳長的太帥,很多人都找他要那種神奇的魔法**,而且還都要佳佳和他的mm的合照。那些**可是非常珍貴的,他到底應該把**給誰呢?

一共有n個人(以1–n編號)向佳佳要**,而佳佳只能把**給其中的k個人。佳佳按照與他們的關係好壞的程度給每個人賦予了乙個初始權值w[i]。然後將初始權值從大到小進行排序,每人就有了乙個序號d[i](取值同樣是1–n)。按照這個序號對10取模的值將這些人分為10類。也就是說定義每個人的類別序號c[i]的值為(d[i]-1) mod 10 +1,顯然類別序號的取值為1–10。第i類的人將會額外得到e[i]的權值。你需要做的就是求出加上額外權值以後,最終的權值最大的k個人,並輸出他們的編號。在排序中,如果兩人的w[i]相同,編號小的優先。

輸入第一行輸出用空格隔開的兩個整數,分別是n和k。

第二行給出了10個正整數,分別是e[1]到e[10]。

第三行給出了n個正整數,第i個數表示編號為i的人的權值w[i]。

輸出只需輸出一行用空格隔開的k個整數,分別表示最終的w[i]從高到低的人的編號。

樣例輸入

10 10

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

樣例輸出

10 9 8 7 6 5 4 3 2 1

題目描述

一塊矩形土地被分為n*m的單位正方形,現在要在這塊土地埋設取暖管道,管道將從座標為(1,1)小塊(左上角,上部邊緣)延伸到(n,m)(右下角,右部邊緣)

每種管道將佔據乙個單位正方形土地.而且管道不能旋轉.顯而易見,要構成乙個管道系統,我們必須保證管道是連續貫通的.

一開始,在地圖上標出了已經埋設好的管道.在鋪設管道系統時可以利用這些管道,但不能把它們移開鋪設新管道;同時,標有樹木的方格表示這裡是花園,地下不能埋設管道.

下面請你寫乙個程式,對乙個給定的地圖,找出有多少種不同的鋪設方案.
輸入

第一行為兩個整數n和m(都不超過10),接下來的m行,每行有n個整數,表示地圖中的每一小格.其中1-4依次表示圖中四種管道,5表示花園,0表示空地.

輸出單個整數,表示不同方法數.

樣例輸入

4 50 0 3 2

0 4 0 5

4 0 0 0

4 0 1 0

0 3 0 0

樣例輸出

玩具(普及組複賽模擬題)

問題描述 有一種玩具,在玩具上有乙個紅色按鈕,乙個黃色按鈕和一萬個能坐能站的小木偶,按一次紅色的按鈕,就會有乙個站著的小木偶坐下去,按一次黃色按鈕,就可以使站著的小木偶增加一倍。開始時有三個小木偶站著,要想使站著的小木偶增加到n個,最少按幾次按鈕就行了?請編一程式,由鍵盤輸入n輸出最少按的次數。輸入...

noip2016普及組複賽總結

9點半從紀中出發,大概11點多來到廣州六中。在六中旁邊一家小餐館吃了中餐,那餐廳真心很貴,一盆飯就要20元,我們那桌吃了四 盆.xc 不想買單啦 啦啦啦 然後就來到六中的某個功能室百無聊賴的休息了一會兒,兩點鐘進考場。兩點半 比賽開始,還是先看題.一二兩題太水了,直接開碼,1小時搞定兩題 三點半 仔...

NOIP 2016 普及組 複賽題解

t1 pencil 隨便做 include using namespace std int n,a,b,ans 2147483647 int main t2 date 列舉每個 月 1 12 日 1 day i 再判斷此日期符不符合 把月日反過來就是年 注意二月二十九號推出的日期是 92200229...