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

Peter算法小課堂—貪心與二分

這篇具有很好參考價值的文章主要介紹了Peter算法小課堂—貪心與二分。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

太戈編程655題

題目描述:
有n輛車大甩賣,第i輛車售價a[i]元。有m個人帶著現(xiàn)金來申請購買,第i個到現(xiàn)場的人帶的現(xiàn)金為b[i]元,只能買價格不超過其現(xiàn)金額的車子。你是大賣場總經(jīng)理,希望將車和買家盡量多地進行一對一配對,請問最多賣出多少輛車?

貪心

貪心法模板:Peter算法小課堂—貪心與二分,建模,算法,貪心算法

比如說:每次挑最便宜的車賣給貧窮的人,……

相信大家第一個想到的思路就是二重for循環(huán),第一層int i=1;i<=m;i++,第二層int j=1;j<=n;j++,時間復雜度O(n^2)。但是一看數(shù)據(jù)規(guī)模,n,m<=200000,也就是運行40000000000,四百億,幾乎不可能。這一下子,大家就想到了傳說中的“蠕動區(qū)間”。代碼來咯,

#include <bits/stdc++.h>
using namespace std;
const int N=200009;
int n,m,a[N],b[N];
int main(){
	freopen("car2.in","r",stdin);
	freopen("car2.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=m;i++) cin>>b[i];
	sort(a+1,a+1+n);
	sort(b+1,b+1+m);
	int cnt=0,i=1,j=1;
	while(i<=n&&j<=m){
		if(a[i]<=b[j]){
			i++;
			j++;
			cnt++;
		}else j++;
	}
	cout<<cnt<<endl;
	return 0;
}

太戈編程656題

題目描述:
有n輛車大甩賣,第i輛車售價a[i]元。有m個人帶著現(xiàn)金來申請購買,第i個到現(xiàn)場的人帶的現(xiàn)金為b[i]元。你是大賣場總經(jīng)理,可以將車和買家自由配對。如果買家的現(xiàn)金低于配對車的售價時,你有權力借錢給買家,但是總的借款額度不可以超過f。注意:買家之間不會互相借錢。請問通過你的配對和借款,剩下沒買到車的人最少有幾人?

二分+貪心

思路:要讓沒買到車的人最少,相當于要求買到車的人最多。二分枚舉答案x,OK函數(shù)判斷賣出x輛車是否可行(最優(yōu)化問題→可行性問題),而判斷的方法就要用到貪心

Peter算法小課堂—貪心與二分,建模,算法,貪心算法

bool OK(int x){
	int sum=0;
	for(int i=0;i<=x;i++){
		if(a[i]>b[m-x+i]) sum+=a[i]-b[m-x+i];
		if(sum>f) return 0; 
	}
	return 1;
}

?

int main(){
	freopen("car3.in","r",stdin);
	freopen("car3.out","w",stdout);
	cin>>n>>m>>f;
	for(int i=0;i<n;i++) cin>>a[i];
	for(int i=0;i<m;i++) cin>>b[i];
	sort(a,a+n);
	sort(b,b+m);
	int l=0,r=min(n,m),ans=0;
	while(l<=r){
		int mid=l+(r-l)/2;
		if(OK(mid)) ans=mid,l=mid+1;
		else r=mid-1;
	}
	cout<<m-ans<<endl;
	return 0;
}

太戈編程1662題

自己獨立思考……

cin>>n>>d;
for(int i=1;i<=n;i++) cin>>x[i];
sort(x+1,x+n+1);
int cnt=0;
for(int i=1;j=2;i<=n-1;i++){
	while(j<=n&&x[j]-x[i]<d) j++;
	cnt+=j-i-1;
}
cout<<cnt<<endl;

希望這些對大家有用,三連必回文章來源地址http://www.zghlxwxcb.cn/news/detail-784211.html

到了這里,關于Peter算法小課堂—貪心與二分的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • Peter算法小課堂—自定義容器

    Peter算法小課堂—自定義容器

    這個算法復雜度為O(nm),顯然有更快的算法 ?但是,這樣寫有個很危險的錯誤,如下 運行出來是這樣的, ?原因很簡單,因為set的功能是排序、去重,然而結構體排序要加上“.\\\",所以會報錯 改后代碼, 那么,回到原題,代碼該怎么寫呢? 當然這個代碼也有高級版,但要升

    2024年02月04日
    瀏覽(21)
  • Peter算法小課堂—線性dp

    Peter算法小課堂—線性dp

    今天,你讀完這篇文章,普及組的動態(tài)規(guī)劃已經(jīng)可以秒了。 求兩個數(shù)列的最長公共子序列(Longest Common Subsequence,LCS)的長度。 數(shù)列 X?和 Y?的最長公共子序列 Z,是指 Z?既是 X?的子序列,又是 Y?的子序列,而且任意長度超過 Z?的數(shù)列 Z??都不符合這個性質(zhì)。 f[i][j]表示

    2024年04月23日
    瀏覽(20)
  • Peter算法小課堂—拓撲排序與最小生成樹

    Peter算法小課堂—拓撲排序與最小生成樹

    講拓撲排序前,我們要先了解什么是DAG樹。所謂DAG樹,就是指“有向無環(huán)圖”。請判斷下列圖是否是DAG圖 第一幅圖,它不是DAG圖,因為它形成了一個環(huán)。第二幅圖,它也不是DAG圖,因為它沒有方向。第三幅圖才叫真正的DAG圖(DAG圖不一定聯(lián)通)。 那什么叫DAG圖的拓撲排序呢

    2024年01月21日
    瀏覽(20)
  • 【算法小課堂】二分查找算法

    【算法小課堂】二分查找算法

    當我們要從一個序列中查找一個元素的時候,最快想到的方法就是順序查找法(即:從前到后依次查找)。但這種方法過于無腦,就是暴力的把每個元素都排查一遍。元素個數(shù)少的時候還行,一旦元素個數(shù)多起來,效率是非常低下,所以在實際中這種查找的方法是被摒棄的。

    2024年02月08日
    瀏覽(21)
  • 算法小課堂(五)貪心算法

    算法小課堂(五)貪心算法

    貪心算法是一種常見的算法思想,用于解決優(yōu)化問題。其基本思想是在每一步選擇中都采取當前狀態(tài)下最優(yōu)的選擇,從而希望能夠獲得全局最優(yōu)解。 具體來說,貪心算法通常分為以下步驟: 定義問題的最優(yōu)解,通常需要將問題轉(zhuǎn)化為求最大值或最小值; 選擇一個局部最優(yōu)解

    2024年02月02日
    瀏覽(19)
  • 掃地機器人(二分算法+貪心算法)

    掃地機器人(二分算法+貪心算法)

    1.? if(robot[i]-len=sweep)這個代碼的意思是——如果機器人向左移動len個長度后,比現(xiàn)在sweep的位置(現(xiàn)在已經(jīng)覆蓋的范圍)還要靠左,就是覆蓋連續(xù)不起來,呢么這個len就是有問題的,退出函數(shù),再繼續(xù)循環(huán)。 2.? 顯然當每個機器人清掃的范圍相同時,所用時間最小,所以這時

    2024年01月20日
    瀏覽(21)
  • 算法每日一題: 分割數(shù)組的最大值 | 動歸 | 分割數(shù)組 | 貪心+二分

    算法每日一題: 分割數(shù)組的最大值 | 動歸 | 分割數(shù)組 | 貪心+二分

    Hello,大家好,我是星恒 嗚嗚嗚,今天給大家?guī)淼挠质且坏澜?jīng)典的動歸難題。 題目:leetcode 410 給定一個非負整數(shù)數(shù)組 nums 和一個整數(shù) k ,你需要將這個數(shù)組分成 k_ 個非空的連續(xù)子數(shù)組。 設計一個算法使得這 k _個子數(shù)組各自和的最大值最小。 示例: 示例 1: 示例 2: 示例

    2024年01月22日
    瀏覽(21)
  • 【算法】【Python3、動態(tài)規(guī)劃、貪心、二分查找】力扣1671. 得到山形數(shù)組的最少刪除次數(shù)

    1671. 得到山形數(shù)組的最少刪除次數(shù) 給定一個整數(shù)數(shù)組 nums ,我們定義該數(shù)組為山形數(shù)組當且僅當: nums 的長度至少為 3。 存在一個下標 i 滿足 0 i len(nums) - 1 且: nums[0] nums[1] ... nums[i - 1] nums[i] nums[i] nums[i + 1] ... nums[len(nums) - 1] 現(xiàn)在,給定整數(shù)數(shù)組 nums ,我們的目標是將其變?yōu)?/p>

    2024年01月18日
    瀏覽(23)
  • 數(shù)學建模十大算法04—圖論算法(最短路徑、最小生成樹、最大流問題、二分圖)

    數(shù)學建模十大算法04—圖論算法(最短路徑、最小生成樹、最大流問題、二分圖)

    一、最短路徑問題 從圖中的某個頂點出發(fā),到達另一個頂點的 所經(jīng)過的邊的權重之和最小 的一條路徑。 1.1 兩個指定頂點之間的最短路徑 問題如下:給出了一個連接若干個城鎮(zhèn)的鐵路網(wǎng)絡,在這個網(wǎng)絡的兩個指定城鎮(zhèn)間,求一條最短鐵路線。 1.1.1 Dijkstra算法 迪杰斯特拉(D

    2024年02月02日
    瀏覽(82)
  • 【二分+貪心】CF1665 C

    【二分+貪心】CF1665 C

    Problem - C - Codeforces 題意: ? 思路: 一開始想太簡單wa6了 只想到先感染大的分量,然后最后把最大的分量剩下的染色 但是可能會有別的分量更大(因為最后給最大的染色之后可能不再是最大的) 可以用堆維護,但是這里用二分做法 我們可以二分答案 mid ,問題就變成了 mid 秒

    2024年02月13日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包