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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯-逆序对(java)

發布時間:2025/3/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯-逆序对(java) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
算法訓練 逆序對 ? 時間限制:1.0s ? 內存限制:256.0MB ? ? 問題描述

Alice是一個讓人非常愉躍的人!他總是去學習一些他不懂的問題,然后再想出許多稀奇古怪的題目。這幾天,Alice又沉浸在逆序對的快樂當中,他已近學會了如何求逆序對對數,動態維護逆序對對數等等題目,他認為把這些題讓你做簡直是太沒追求了,于是,經過一天的思考和完善,Alice終于拿出了一道他認為差不多的題目:

有一顆2n-1個節點的二叉樹,它有恰好n個葉子節點,每個節點上寫了一個整數。如果將這棵樹的所有葉子節點上的數從左到右寫下來,便得到一個序列a[1]…a[n]。現在想讓這個序列中的逆序對數量最少,但唯一的操作就是選樹上一個非葉子節點,將它的左右兩顆子樹交換。他可以做任意多次這個操作。求在最優方案下,該序列的逆序對數最少有多少。

Alice自己已近想出了題目的正解,他打算拿來和你分享,他要求你在最短的時間內完成。

輸入格式

第一行一個整數n。

下面每行,一個數x。

如果x=0,表示這個節點非葉子節點,遞歸地向下讀入其左孩子和右孩子的信息,如果x≠0,表示這個節點是葉子節點,權值為x。

輸出格式 輸出一個整數,表示最少有多少逆序對。 樣例輸入 3
0
0
3
1
2 樣例輸出 1 數據規模與約定

對于20%的數據,n <= 5000。

對于100%的數據,1 <= n <= 200000,0 <= a[i]<2^31。



package com.sihai.advance; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;import java.util.StringTokenizer;class Reader3{static BufferedReader reader;static StringTokenizer tokenizer;static void init(InputStream input){reader=new BufferedReader(new InputStreamReader(input));tokenizer=new StringTokenizer("");}static String next() throws IOException{while (!tokenizer.hasMoreElements()) {tokenizer = new StringTokenizer(reader.readLine());}return tokenizer.nextToken();}static int nextInt() throws IOException{return Integer.parseInt(next());}static double nextDouble() throws IOException{return Double.parseDouble(next());}}class KruskalDui{int a,b,l;}public class ALGO_7{/*** @param args* @throws IOException*/static int father[]=new int[100000];static ArrayList<KruskalDui> path =new ArrayList<KruskalDui>();public static int getfather(int x) {if (x!=father[x]) {father[x]=getfather(father[x]);}return father[x];}public static void _qst_w(int l,int r) {int i=l,j=r,mw=path.get((i+j)/2).l;while(i<=j){while(path.get(i).l<mw) i++;while(path.get(j).l>mw) j--;if(i<=j){Collections.swap(path,i,j);i++;j--;}}if(l<j) _qst_w(l,j);if(i<r) _qst_w(i,r);}public static void main(String[] args) throws IOException {// TODO Auto-generated method stubReader3.init(System.in);int n=Reader3.nextInt();int p=Reader3.nextInt();int d[]=new int [n+1];int minD=Integer.MAX_VALUE;for (int i = 1; i < n+1; i++) {d[i]=Reader3.nextInt();father[i]=i;if (d[i]<minD) {minD=d[i];}}for (int i = 0; i < p; i++) {KruskalDui k=new KruskalDui();k.a=Reader3.nextInt();k.b=Reader3.nextInt();k.l=Reader3.nextInt();k.l=k.l*2+d[k.a]+d[k.b];path.add(k);}_qst_w(0,p-1);int fx,fy,result=minD,count=0,k=0;while(count<n-1){fx=getfather(path.get(k).a);fy=getfather(path.get(k).b);if(fx!=fy){father[fx]=fy;result+=path.get(k).l;count++;}k++;}System.out.println(result);}}

總結

以上是生活随笔為你收集整理的蓝桥杯-逆序对(java)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美第1页| 国产综合久久久 | 蜜桃aaa| 欧洲亚洲国产精品 | 好看的av在线 | 女教师三上悠亚ssni-152 | 国产一区二区精品在线 | 天天撸一撸 | 91华人在线 | 日本免费网址 | 韩国毛片视频 | 337p粉嫩色噜噜噜大肥臀 | 亚洲精品国产精品国自产在线 | 亚洲欧美网站 | 日本学生初尝黑人巨免费视频 | 国产成人a v | a级片免费观看 | 羞羞答答av | 欧洲精品一区二区三区 | 91性高潮久久久久久久久 | 中文字幕av资源 | 色综合中文网 | 99久久综合国产精品二区 | 国产黄色高清视频 | 97超碰总站| 一本久| 国产色婷婷一区二区 | 波多野结衣在线免费观看视频 | 国产精品美女毛片真酒店 | 国产乱码视频 | 香蕉久草| 国产成人精品一区二区在线观看 | 91精品国产一区二区三竹菊影视 | 欧美少妇xxx| av影院在线播放 | 91精品一区二区三 | 国产精品麻豆一区二区三区 | 色哟哟导航 | 欧美激情一二三区 | 久草美女 | 色婷婷综合网 | 亚洲精品在| 午夜一级视频 | 黄色免费播放 | 日本伦理中文字幕 | 热热久| 亚洲黄色网络 | 精品人妻中文无码av在线 | 亚洲精品福利在线观看 | 亚洲视频中文字幕在线观看 | jlzzjlzz欧美大全 | 国产又粗又猛又色又 | 逼特逼在线视频 | 911久久| 一道本久在线中文字幕 | 岛国av大片 | 欧美成人黄色 | 天天欲色 | 国产剧情av在线 | 韩国一级淫一片免费放 | 一本色道av | 污网在线观看 | 青草一区 | 欧美视频在线看 | 理论片91| 国产香蕉视频在线播放 | 国产精品v欧美精品v日韩 | 久久白虎 | 精品蜜桃一区二区三区 | 精品人妻一区二区三区日产 | 日本成人在线免费观看 | 青青草av在线播放 | 黄在线网站 | 小泽玛利亚一区二区三区视频 | www.99热| 黄色工厂这里只有精品 | 成人激情小视频 | 男女免费视频 | 青青伊人网| 国产精品久久久久久免费免熟 | 91在线网址 | 亚洲操片| 久久久电影 | 午夜亚洲福利在线老司机 | 青青草视频播放器 | 亚洲乱码少妇 | 综合久久久久综合 | 91国产一区二区 | 伊朗做爰xxxⅹ性视频 | 色妞网站| 777奇米四色 | 成人快色| 国产日批 | 印度毛茸茸| 最近国语视频在线观看免费播放 | 亚洲欧美在线免费观看 | 99国产精品免费 | 国产精品三级视频 | 成人福利片 |