日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P1338 末日的传说

發(fā)布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P1338 末日的传说 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述

只要是參加jsoi活動的同學(xué)一定都聽說過Hanoi塔的傳說:三根柱子上的金片每天被移動一次,當(dāng)所有的金片都被移完之后,世界末日也就隨之降臨了。

在古老東方的幻想鄉(xiāng),人們都采用一種奇特的方式記錄日期:他們用一些特殊的符號來表示從1開始的連續(xù)整數(shù),1表示最小而N表示最大。創(chuàng)世紀(jì)的第一天,日歷就被賦予了生命,它自動地開始計(jì)數(shù),就像排列不斷地增加。

我們用1-N來表示日歷的元素,第一天日歷就是

1, 2, 3, … N

第二天,日歷自動變?yōu)?/p>

1, 2, 3, … N, N-1

……每次它都生成一個以前未出現(xiàn)過的“最小”的排列——把它轉(zhuǎn)為N+1進(jìn)制后數(shù)的數(shù)值最小。

日子一天一天地過著。有一天,一位預(yù)言者出現(xiàn)了——他預(yù)言道,當(dāng)這個日歷到達(dá)某個上帝安排的時刻,這個世界就會崩潰……他還預(yù)言到,假如某一個日期的逆序達(dá)到一個值M的時候,世界末日就要降臨。

什么是逆序?日歷中的兩個不同符號,假如排在前面的那個比排在后面的那個更大,就是一個逆序,一個日期的逆序總數(shù)達(dá)到M后,末日就要降臨,人們都期待一個賢者,能夠預(yù)見那一天,到底將在什么時候到來?

輸入輸出格式

輸入格式:

?

只包含一行兩個正整數(shù),分別為N和M。

?

輸出格式:

?

輸出一行,為世界末日的日期,每個數(shù)字之間用一個空格隔開。

?

輸入輸出樣例

輸入樣例#1:
5 4 輸出樣例#1:
1 3 5 4 2

說明

對于10%的數(shù)據(jù)有N <= 10。

對于40%的數(shù)據(jù)有N <= 1000。

對于100%的數(shù)據(jù)有 N <= 50000。

所有數(shù)據(jù)均有解。

?

我們考慮把這個問題縮小范圍。

比如n=5,在決定了最小的數(shù)“1”的位置之后,剩下的幾個數(shù)是2 3 4 5,但是他們

具體是多少沒必要關(guān)心,我們只要關(guān)心他們的相對大小關(guān)系。

所以考慮完當(dāng)前最小的數(shù),算出這個數(shù)對答案的貢獻(xiàn),然后減掉這個貢獻(xiàn),

就可以轉(zhuǎn)而解決一個更小的子問題。(即n-->n-1)

回到題目上,要求是求一個有m個逆序?qū)Φ淖值湫蜃钚〉呐帕小?/span>

我們知道一個長度為n的排列最多有(n-1)*n/2個逆序?qū)?#xff0c;也知道一個排列的逆序?qū)?shù)越多,排列字典序越大。

所以如果當(dāng)前m不比當(dāng)前的(n-2)*(n-1)/2(也就是減少一個數(shù)之后的最多的逆序?qū)?shù))大,

就可以直接把當(dāng)前的最小數(shù)放在最前面,這肯定是最優(yōu)的。

反之,則考慮最小數(shù)的放置位置。

假設(shè)當(dāng)前排列長為n,最小數(shù)為a,則a有n種放法,放在從左到右第i個位置時會生成i-1個逆序?qū)?/span>

(因?yàn)樗筮呌衖-1個比他大)。

因?yàn)閙大于n-1長度排列最多所能產(chǎn)生的逆序數(shù),所以a不可能放在最前面,否則不滿足條件。

怎么辦呢?想到之前說的逆序?qū)υ蕉嘧值湫蛟酱?#xff0c;我們就必須讓剩下的數(shù)能構(gòu)成的逆序?qū)?shù)盡量小,所以a要放到最后,這樣m減少的最多。

放完了a,問題就變成了n-1和m-(a的貢獻(xiàn))的子問題,遞歸求解即可。時間復(fù)雜度O(n)。

?

?

#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define lli long long int using namespace std; const lli MAXN=50001; inline void read(lli &n) {char c='+';lli x=0;bool flag=0;while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;}while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+c-48,c=getchar();}flag==1?n=-x:n=x; } lli a[MAXN]; lli ed,bg; int main() {lli n,m;read(n);read(m);ed=n;bg=1;for(lli i=1;i<=n;i++){lli num=(n-i)*(n-i-1)/2;if(num>=m)a[bg++]=i;else a[ed--]=i,m-=(ed-bg+1);}for(lli i=1;i<=n;i++)printf("%lld ",a[i]);return 0; }

  

總結(jié)

以上是生活随笔為你收集整理的P1338 末日的传说的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 制服丝袜av一区二区三区下载 | 色哟哟免费观看 | 国产欧美三级 | 久久午夜精品视频 | 虫族全黄h全肉污文 | 嫩草网站 | 男女黄床上色视频 | 女仆乖h调教跪趴1v1 | 91精品国产91久久久久久黑人 | 久久一区二 | 欧洲美熟女乱又伦 | 国产一区二区三区四区五区六区 | 在线观看精品 | 澳门久久 | 欧美性色黄 | 国产成人精品一区二区在线小狼 | 日本色片网站 | 精品人妻一区二区三区日产乱码 | 欧美成人免费一级人片100 | 日本人极品人妖高潮 | 在线激情网站 | 国产黄色美女视频 | 狠狠干夜夜骑 | 免费观看在线播放 | 亚洲AV无码精品久久一区二区 | 日本黄区免费视频观看 | 国产高清视频免费在线观看 | 致命弯道8在线观看免费高清完整 | 亚洲一区二区三区免费在线观看 | 国产女人高潮的av毛片 | 久久久艹 | 国产乱国产 | 成人综合在线观看 | 丁香花五月天 | 欧美激情中文字幕 | 欧美1区2区| 福利所第一导航 | 国产拍拍视频 | 韩国精品av | 成人网视频 | 亚洲av无码国产综合专区 | 制服丝袜在线看 | 亚洲欧美日韩国产精品 | 国产夫妻在线 | 久热精品视频在线观看 | 国产婷婷色综合av蜜臀av | 欧美色图小说 | 91视频在线 | 靠逼网站| 黄色日韩 | 肉丝袜脚交视频一区二区 | a视频在线免费观看 | 最近中文字幕在线观看 | 日本三级一区二区 | 亚洲在线精品 | 不卡视频免费在线观看 | 少妇一级淫片免费放播放 | 亚洲色鬼 | 国产男女无遮挡猛进猛出 | 国产麻豆免费观看 | 高清乱码毛片 | 人人妻人人澡人人爽欧美一区 | 国产一线二线三线在线观看 | 69性影院 | 欧美激情视频在线 | 96久久精品 | 免费成人国产 | 亚洲自拍偷拍在线 | 亚洲成av人片一区二区梦乃 | 国产小视频在线看 | 91女人18毛片水多国产 | 亚洲欧美日韩在线一区二区 | 91麻豆精品国产 | 国产精品成人自拍 | 巨胸喷奶水www久久久免费动漫 | 日韩欧美理论 | 欧美精品99久久久 | 欧美人与性动交g欧美精器 国产在线视频91 | 日韩欧美一区二区视频 | 风间由美一二三区av片 | 精品一区二区三区四区五区六区 | 男人的天堂中文字幕 | 后入内射无码人妻一区 | 四季av一区二区三区免费观看 | 国产伦理一区二区 | 正在播放91 | 久草久 | 福利亚洲 | 在线免费观看高清视频 | 石原莉奈在线播放 | 日日爱669| 中文字幕第27页 | 777国产成人入口 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲最大福利网站 | 亚洲一区二区精品在线 | 亚洲福利在线播放 | 国产另类视频 | 山外人精品影院 |