国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

羅勇軍 → 《算法競(jìng)賽·快沖300題》每日一題:“排列變換” ← 貪心算法

這篇具有很好參考價(jià)值的文章主要介紹了羅勇軍 → 《算法競(jìng)賽·快沖300題》每日一題:“排列變換” ← 貪心算法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【題目來源】
http://oj.ecustacm.cn/problem.php?id=1812
http://oj.ecustacm.cn/viewnews.php?id=1023

【題目描述】
給定一個(gè)長(zhǎng)度為 n 的排列 a,需要將這個(gè)排列變成 b。
每次可以選擇一個(gè)數(shù)字往左移若干個(gè)位置。
請(qǐng)求出
最小需要移動(dòng)的元素個(gè)數(shù)。

【輸入格式】
第一行為正整數(shù) n,1≤n≤100000。
第二行為 n 個(gè)整數(shù),表示排列 a。
第三行為 n 個(gè)整數(shù),表示排列 b。

【輸出格式】
輸出一個(gè)數(shù)字表示答案,即最小需要移動(dòng)的元素個(gè)數(shù)。

【輸入樣例】
5
5 1 3 2 4
4 5 2 1 3

【輸出樣例】
2

【算法分析】
** 將原序列 a 重排為序列 b,則原序列 a 中各元素在序列 b 中的位置?p[] 可通過以下代碼獲得:

tp[b[i]]=i, p[i]=tp[a[i]]
**?分析位置序列 p[] 中每個(gè)數(shù),如果當(dāng)前的數(shù)比左邊的數(shù)小就不斷左移,否則不用移動(dòng)。這是貪心算法的思路。
例如,針對(duì)樣例中給出的原始序列 a[]=[5 1 3 2 4] 中的各元素,利用“
tp[b[i]]=i, p[i]=tp[a[i]]”,可得出它們?cè)谥嘏判蛄?b[]=[4 5 2 1 3] 中的位置序列為 p[]=[2 4 5 3 1]。顯然,通過觀察位序的相對(duì)位置,可知需要移動(dòng)兩個(gè)數(shù)字。

【算法代碼】

#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5;
int a[N],b[N];
int p[N]; //p[x]:subscript of number x in the b array
int tp[N];

int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) cin>>a[i];
    for(int i=1; i<=n; i++) {
        cin>>b[i];
        tp[b[i]]=i;
    }
    for(int i=1; i<=n; i++) p[i]=tp[a[i]];

    int ans=0;
    int t=0;
    for(int i=1; i<=n; i++) {
        if(t>p[i]) ans++;
        t=max(t,p[i]);
    }
    cout<<ans<<endl;
    
    return 0;
}


/*
in:
5
5 1 3 2 4
4 5 2 1 3

out:
2
*/




【參考文獻(xiàn)】
https://blog.csdn.net/weixin_43914593/article/details/131741061





?文章來源地址http://www.zghlxwxcb.cn/news/detail-660776.html

到了這里,關(guān)于羅勇軍 → 《算法競(jìng)賽·快沖300題》每日一題:“排列變換” ← 貪心算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 《算法競(jìng)賽·快沖300題》每日一題:“點(diǎn)燈游戲”

    《算法競(jìng)賽·快沖300題》每日一題:“點(diǎn)燈游戲”

    《 算法競(jìng)賽·快沖300題 》將于2024年出版,是《算法競(jìng)賽》的輔助練習(xí)冊(cè)。 所有題目放在自建的OJ New Online Judge。 用C/C++、Java、Python三種語言給出代碼,以中低檔題為主,適合入門、進(jìn)階。 “ 點(diǎn)燈游戲 ” ,鏈接: http://oj.ecustacm.cn/problem.php?id=1134 【題目描述】 有一個(gè)n*n的燈

    2024年02月08日
    瀏覽(20)
  • 《算法競(jìng)賽·快沖300題》每日一題:“彩虹數(shù)”

    《 算法競(jìng)賽·快沖300題 》將于2024年出版,是《算法競(jìng)賽》的輔助練習(xí)冊(cè)。 所有題目放在自建的OJ New Online Judge。 用C/C++、Java、Python三種語言給出代碼,以中低檔題為主,適合入門、進(jìn)階。 “ 彩虹數(shù) ” ,鏈接: http://oj.ecustacm.cn/problem.php?id=1840 【題目描述】 彩虹數(shù):一個(gè)無

    2024年02月09日
    瀏覽(18)
  • 《算法競(jìng)賽·快沖300題》每日一題:“超級(jí)騎士”

    《 算法競(jìng)賽·快沖300題 》將于2024年出版,是《算法競(jìng)賽》的輔助練習(xí)冊(cè)。 所有題目放在自建的OJ New Online Judge。 用C/C++、Java、Python三種語言給出代碼,以中低檔題為主,適合入門、進(jìn)階。 “ 超級(jí)騎士 ” ,鏈接: http://oj.ecustacm.cn/problem.php?id=1810 【題目描述】 現(xiàn)在在一個(gè)無

    2024年02月17日
    瀏覽(34)
  • 《算法競(jìng)賽·快沖300題》每日一題:“湊二十四”

    《 算法競(jìng)賽·快沖300題 》將于2024年出版,是《算法競(jìng)賽》的輔助練習(xí)冊(cè)。 所有題目放在自建的OJ New Online Judge。 用C/C++、Java、Python三種語言給出代碼,以中低檔題為主,適合入門、進(jìn)階。 “ 湊二十四 ” ,鏈接: http://oj.ecustacm.cn/problem.php?id=1793 【題目描述】 給你n個(gè)數(shù)字,

    2024年02月11日
    瀏覽(18)
  • 《算法競(jìng)賽·快沖300題》每日一題:“松鼠與栗子”

    《 算法競(jìng)賽·快沖300題 》將于2024年出版,是《算法競(jìng)賽》的輔助練習(xí)冊(cè)。 所有題目放在自建的OJ New Online Judge。 用C/C++、Java、Python三種語言給出代碼,以中低檔題為主,適合入門、進(jìn)階。 “ 松鼠與栗子 ” ,鏈接: http://oj.ecustacm.cn/problem.php?id=1852 【題目描述】 現(xiàn)在有m棵栗

    2024年02月11日
    瀏覽(23)
  • 【C語言藍(lán)橋杯每日一題】——排列字母

    【C語言藍(lán)橋杯每日一題】——排列字母

    TOC ? ? ??博客昵稱:博客小夢(mèng) ??最喜歡的座右銘:全神貫注的上吧?。?! ??作者簡(jiǎn)介:一名熱愛C/C++,算法等技術(shù)、喜愛運(yùn)動(dòng)、熱愛K歌、敢于追夢(mèng)的小博主! ??博主小留言:哈嘍! ??各位CSDN的uu們,我是你的博客好友小夢(mèng),希望我的文章可以給您帶來一定的幫助,話

    2023年04月09日
    瀏覽(26)
  • ( 數(shù)組和矩陣) 667. 優(yōu)美的排列 II ——【Leetcode每日一題】

    ( 數(shù)組和矩陣) 667. 優(yōu)美的排列 II ——【Leetcode每日一題】

    難度:中等 給你兩個(gè)整數(shù) n 和 k ,請(qǐng)你構(gòu)造一個(gè)答案列表 answer ,該列表應(yīng)當(dāng)包含從 1 到 n 的 n 個(gè)不同正整數(shù),并同時(shí)滿足下述條件: 假設(shè)該列表是 answer = [a1, a2, a3, ... , an] ,那么列表 [|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1 - an|] 中應(yīng)該有且僅有 k 個(gè)不同整數(shù)。 返回列表 answer

    2024年02月06日
    瀏覽(20)
  • (搜索) 劍指 Offer 38. 字符串的排列 ——【Leetcode每日一題】

    (搜索) 劍指 Offer 38. 字符串的排列 ——【Leetcode每日一題】

    難度:中等 輸入一個(gè)字符串,打印出該字符串中字符的所有排列。 你可以以任意順序返回這個(gè)字符串?dāng)?shù)組,但里面 不能有重復(fù)元素 。 示例: 輸入:s = “abc” 輸出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”] 限制 : 1 = s 的長(zhǎng)度 = 8 ??思路:回溯 可以直接 暴力窮舉 ,但

    2024年02月12日
    瀏覽(29)
  • 算法|每日一題|H 指數(shù)|二分

    原題地址: 力扣每日一題:H 指數(shù) 給你一個(gè)整數(shù)數(shù)組 citations ,其中 citations[i] 表示研究者的第 i 篇論文被引用的次數(shù)。計(jì)算并返回該研究者的 h 指數(shù)。 根據(jù)維基百科上 h 指數(shù)的定義:h 代表“高引用次數(shù)” ,一名科研人員的 h 指數(shù) 是指他(她)至少發(fā)表了 h 篇論文,并且每

    2024年02月08日
    瀏覽(20)
  • 每日一題之常見的排序算法

    排序是最常用的算法,常見的排序算法有冒泡排序、選擇排序、插入排序、快速排序、希爾排序和歸并排序。除此之外,還有桶排序、堆排序、基數(shù)排序和計(jì)數(shù)排序。 1、冒泡排序 冒泡排序就是把小的元素往前放或大的元素往后放,比較的是相鄰的兩個(gè)元素。 時(shí)間復(fù)雜度:

    2024年02月13日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包