普及練習場 簡單數學問題 P1088 火星人

2021-10-03 12:45:44 字數 1321 閱讀 2743

題目描述

人類終於登上了火星的土地並且見到了神秘的火星人。人類和火星人都無法理解對方的語言,但是我們的科學家發明了一種用數字交流的方法。這種交流方法是這樣的,首先,火星人把乙個非常大的數字告訴人類科學家,科學家破解這個數字的含義後,再把乙個很小的數字加到這個大數上面,把結果告訴火星人,作為人類的回答。

火星人用一種非常簡單的方式來表示數字――掰手指。火星人只有乙隻手,但這只手上有成千上萬的手指,這些手指排成一列,分別編號為 1,2,3… 。火星人的任意兩根手指都能隨意交換位置,他們就是通過這方法計數的。

乙個火星人用乙個人類的手演示了如何用手指計數。如果把五根手指――拇指、食指、中指、無名指和小指分別編號為 1,2,3,4 和 5 ,當它們按正常順序排列時,形成了 5 位數 12345 ,當你交換無名指和小指的位置時,會形成 5 位數 12354 ,當你把五個手指的順序完全顛倒時,會形成 54321 ,在所有能夠形成的 120 個 5 位數中, 12345 最小,它表示 1 ; 12354 第二小,它表示 2 ; 54321 最大,它表示 120 。下表展示了只有 3 根手指時能夠形成的 6 個 3 位數和它們代表的數字:

三進製數:123、132、213、231、312、321

代表的數字:1、2、3、4、5、6

現在你有幸成為了第乙個和火星人交流的地球人。乙個火星人會讓你看他的手指,科學家會告訴你要加上去的很小的數。你的任務是,把火星人用手指表示的數與科學家告訴你的數相加,並根據相加的結果改變火星人手指的排列順序。輸入資料保證這個結果不會超出火星人手指能表示的範圍。

輸入輸出格式

輸入格式:

共三行。

第一行乙個正整數 n ,表示火星人手指的數目( 1≤n≤10000 )。

第二行是乙個正整數 m ,表示要加上去的小整數( 1≤m≤100 )。

下一行是 1 到 n 這 n 個整數的乙個排列,用空格隔開,表示火星人手指的排列順序。

輸出格式:

n 個整數,表示改變後的火星人手指的排列順序。每兩個相鄰的數中間用乙個空格分開,不能有多餘的空格。

輸入輸出樣例

輸入樣例#1:53

1 2 3 4 5

輸出樣例#1:

1 2 4 5 3

————————————————

思路:實質是求全排列,使用 stl 的 next_permutation() 即可解決

#include

#include

#include

using

namespace std;

int a[

100010

],n,m;

intmain()

普及練習場 簡單的模擬 P1003 鋪地毯

題目描述 為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域 可看做是平面直角座標系的第一象限 鋪上一些矩形地毯。一共有 nn 張地毯,編號從 11 到 nn。現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。地毯鋪設完成後,組織者想知道覆蓋地面某...

普及練習場 貪心 P1080 國王遊戲

題目描述 恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是 排在該大臣前面的所...

洛谷普及練習場P1003 鋪地毯

題目描述 為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域 可看做是平面直角座標系的第一象限 鋪上一些矩形地毯。一共有 n 張地毯,編號從 1 到n。現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。地毯鋪設完成後,組織者想知道覆蓋地面某個點的最...