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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

洛谷 1571 眼红的Medusa

發布時間:2023/12/20 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷 1571 眼红的Medusa 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

雖然 Miss Medusa 到了北京,領了科技創新獎,但是她還是覺得不滿意。原因是:他發現很多人都和她一樣獲了科技創新獎,特別是其中的某些人,還獲得了另一個獎項——特殊貢獻獎。而越多的人獲得了兩個獎項,Miss Medusa就會越眼紅。于是她決定統計有哪些人獲得了兩個獎項,來知道自己有多眼紅。

輸入格式

第一行兩個整數?n, mn,m,表示有?nn?個人獲得科技創新獎,mm?個人獲得特殊貢獻獎。

第二行?nn?個正整數,表示獲得科技創新獎的人的編號。

第三行?mm?個正整數,表示獲得特殊貢獻獎的人的編號。

輸出格式

輸出一行,為獲得兩個獎項的人的編號,按在科技創新獎獲獎名單中的先后次序輸出。

輸入輸出樣例

輸入 4 3 2 15 6 8 8 9 2 輸出 2 8

說明/提示

對于?60\%60%?的數據,0 \leq n, m \leq 10000≤n,m≤1000,獲得獎項的人的編號?\lt 2 \times 10^9<2×109;

對于?100\%100%?的數據,0 \leq n, m \leq 10^50≤n,m≤105,獲得獎項的人的編號?\lt 2 \times 10^9<2×109。

輸入數據保證第二行任意兩個數不同,第三行任意兩個數不同。

解題思路:尋找兩獎均獲得的人,相當于在一組數據中查找與另一組數據相同的數據。

二分查找又稱折半查找,使用其前提條件是數據要有序,因此在下面代碼中先將選擇的一組數據進行排序,使用了sort函數,sort函數默認排序是升序的。

C++代碼

#include<bits/stdc++.h> using namespace std; int n,m,tech[100005],special[100005]; int main() {scanf("%d%d",&n,&m);//n個人獲得科技創新獎,m個人獲得特殊貢獻獎for(int i=1;i<=n;i++){scanf("%d",&tech[i]);//科技創新獎獲得者的編號}for(int i=1;i<=m;i++){scanf("%d",&special[i]);//特殊貢獻獎獲得者的編號}sort(special+1,special+1+m);//用特殊貢獻獎獲得者的編號進行排序for(int i=1;i<=n;i++)//用科技創新獎獲得者的編號去尋找特殊貢獻獎獲得者的編號是否存在相同{//二分算法 int low=1,high=m;while(low <= high){int mid = (low+high)/2;if(special[mid] == tech[i])//判斷兩者編號是否相同 {cout<<tech[i]<<" ";break;}else if(special[mid] < tech[i])low = mid+1;//在右區間找else high = mid-1;//在左區間找}}return 0; }

總結

以上是生活随笔為你收集整理的洛谷 1571 眼红的Medusa的全部內容,希望文章能夠幫你解決所遇到的問題。

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