每日程式設計 31

2021-09-12 14:38:10 字數 1039 閱讀 8008

題目描述:

有n個房間,現在i號房間裡的人需要被重新分配,分配的規則是這樣的:先讓i號房間裡的人全都出來,接下來按照 i+1, i+2, i+3, … 的順序依此往這些房間裡放乙個人,n號房間的的下乙個房間是1號房間,直到所有的人都被重新分配。

現在告訴你分配完後每個房間的人數以及最後乙個人被分配的房間號x,你需要求出分配前每個房間的人數。資料保證一定有解,若有多解輸出任意乙個解。

輸入描述:

第一行兩個整數n, x (2<=n<=10^5, 1<=x<=n),代表房間房間數量以及最後乙個人被分配的房間號;

第二行n個整數 a_i(0<=a_i<=10^9) ,代表每個房間分配後的人數。

輸出描述:

輸出n個整數,代表每個房間分配前的人數。

示例1輸入

3 16 5 1

輸出4 4 4

分析:一開始我也沒能想明白,反推的這種思想太弱了。首先能確定的就是,在分配好的房間中,人數最少的就是i房間,因為,他是最後乙個才能分配的(從他後面的開始分配),然後確定最少的人數min,就知道有幾次是一整論的,給每個房間都減去min,這時候被分配的房間人數已經為0,而最後乙個人在的房間倒退會被分配的房間還多乙個,所以在進行一次迴圈,知道找到被分配的房間,加上之前減去的所有人數即可,看**吧,還是go語言的,好理解

**:package main

import "fmt"

func main()

min:=2^31-1

for i:=0;itemp

}sum:=0

for i:=0;i題目描述:

這是我根據一道題改編的,就是給定乙個m行n列的矩陣,求出和最大的子矩陣,這裡主要是想說明一下動態規劃的演算法,即在乙個二維陣列中,第i行j列儲存的就是i行j列矩陣的和

dp[i][j]+=ap[i-1][j]+dp[i][j-1]-dp[i-1][j-1]

但是要注意的時,在go語言中,第一行。第一列,要拿出來單獨計算,否則會panic,溢位

先看**:

func main()

for i:=0;i返回的就是和最大的值以及下標

每日記載內容總結31

1.頁面知識 1 js去除乙個元素的點選方法 document.getelementbyname aaa onclick function 2 jquery獲取元素的父元素和查詢滿足條件的子元素 li value 1 span em em a.從不 span li one li span click...

C程式語言 3 1

練習3 1 在上面有關折半查詢的例子中,while迴圈語句內共執行了兩次測試,其實只要一次就足夠 代價是將更多的測試在迴圈外執行 重寫該函式,使得在迴圈內部只執行以此測試。比較兩種版本函式的執行時間。我一開始是沒想出來的,所以去網上看了看,發現網上有些 無法執行但思路是對的,所以重新改了改發出來。i...

隨筆 前端每日3 1之 JS 題目

安利一波劍哥的前端每日3 1專案 前端每日3 1 github 用遞迴演算法實現,陣列長度為5且元素的隨機數在2 32間不重複的值。k 描述 這是一道大題,把考點拆成了4個小項 需要侯選人用遞迴演算法實現 限制15行 以內實現 限制時間10分鐘內完成 a 生成乙個長度為5的空陣列arr。b 生成乙個...