中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

織夢(mèng)視頻網(wǎng)站模板今天最新新聞

織夢(mèng)視頻網(wǎng)站模板,今天最新新聞,北京做網(wǎng)站哪家好,網(wǎng)站建設(shè)主要由哪幾個(gè)部分組成文章目錄 [HNOI2002] 營(yíng)業(yè)額統(tǒng)計(jì)題目描述樣例輸入 #1樣例輸出 #1 提示題解相關(guān)知識(shí)點(diǎn)set [HNOI2002] 營(yíng)業(yè)額統(tǒng)計(jì) STL - set解題 題目描述 Tiger 最近被公司升任為營(yíng)業(yè)部經(jīng)理,他上任后接受公司交給的第一項(xiàng)任務(wù)便是統(tǒng)計(jì)并分析公司成立以來的營(yíng)業(yè)情況。 Tiger 拿出…

文章目錄

  • [HNOI2002] 營(yíng)業(yè)額統(tǒng)計(jì)
    • 題目描述
      • 樣例輸入 #1
      • 樣例輸出 #1
    • 提示
    • 題解
    • 相關(guān)知識(shí)點(diǎn)
        • set

[HNOI2002] 營(yíng)業(yè)額統(tǒng)計(jì)

STL - set解題

題目描述

Tiger 最近被公司升任為營(yíng)業(yè)部經(jīng)理,他上任后接受公司交給的第一項(xiàng)任務(wù)便是統(tǒng)計(jì)并分析公司成立以來的營(yíng)業(yè)情況。

Tiger 拿出了公司的賬本,賬本上記錄了公司成立以來每天的營(yíng)業(yè)額。分析營(yíng)業(yè)情況是一項(xiàng)相當(dāng)復(fù)雜的工作。由于節(jié)假日,大減價(jià)或者是其他情況的時(shí)候,營(yíng)業(yè)額會(huì)出現(xiàn)一定的波動(dòng),當(dāng)然一定的波動(dòng)是能夠接受的,但是在某些時(shí)候營(yíng)業(yè)額突變得很高或是很低,這就證明公司此時(shí)的經(jīng)營(yíng)狀況出現(xiàn)了問題。經(jīng)濟(jì)管理學(xué)上定義了一種最小波動(dòng)值來衡量這種情況:當(dāng)最小波動(dòng)值越大時(shí),就說明營(yíng)業(yè)情況越不穩(wěn)定。

而分析整個(gè)公司的從成立到現(xiàn)在營(yíng)業(yè)情況是否穩(wěn)定,只需要把每一天的最小波動(dòng)值加起來就可以了。你的任務(wù)就是編寫一個(gè)程序幫助 Tiger 來計(jì)算這一個(gè)值。

我們定義,一天的最小波動(dòng)值 = min ? { ∣ 該天以前某一天的營(yíng)業(yè)額 ? 該天營(yíng)業(yè)額 ∣ } \min\{|\text{該天以前某一天的營(yíng)業(yè)額}-\text{該天營(yíng)業(yè)額}|\} min{該天以前某一天的營(yíng)業(yè)額?該天營(yíng)業(yè)額}。

特別地,第一天的最小波動(dòng)值為第一天的營(yíng)業(yè)額。

樣例輸入 #1

6
5
1
2
5
4
6

樣例輸出 #1

12

提示

結(jié)果說明: 5 + ∣ 1 ? 5 ∣ + ∣ 2 ? 1 ∣ + ∣ 5 ? 5 ∣ + ∣ 4 ? 5 ∣ + ∣ 6 ? 5 ∣ = 5 + 4 + 1 + 0 + 1 + 1 = 12 5+|1-5|+|2-1|+|5-5|+|4-5|+|6-5|=5+4+1+0+1+1=12 5+∣1?5∣+∣2?1∣+∣5?5∣+∣4?5∣+∣6?5∣=5+4+1+0+1+1=12

題解

題意

統(tǒng)計(jì)最小的差值和,要每天的波動(dòng)的差值最小,即 min = 最相近的一個(gè)數(shù)-當(dāng)前值 例如 1 2 3 5 8 中 第三天的最小值min = abs(2-3) = 1

數(shù)據(jù)約束

數(shù)據(jù)在Int范圍內(nèi)

思路

  1. 由分析看得出,需要排序所有的數(shù),然后取相近的-左右兩邊的數(shù)分別求差值 再求最小值
  2. 如果按照常規(guī)的數(shù)據(jù)處理,數(shù)組排序,然后在前后遍歷顯然很麻煩,只是處理找數(shù)據(jù),所以考慮容器。set map都能自動(dòng)排序,顯然選set
  3. 從樣例可以看得出來,數(shù)據(jù)不能做去重處理,所以直接使用mutiset即可

參考代碼

#include <bits/stdc++.h>
using namespace std;
multiset<int> s;//數(shù)據(jù)存放在一個(gè)集合中 
int main() {int n,ans=0;int minn=1e10,maxx=1e10,k;cin>>n;for(int i=0;i<n;i++){minn=1e10,maxx=1e10;//每次都初始化一下 cin>>k;s.insert(k);
//		multiset<int> ::iterator it;
//		for(it=s.begin();it!=s.end();it++){
//			cout<<*it<<" ";
//		}
//		cout<<endl;if(i==0){ans += k;}else{multiset<int> ::iterator ad;ad = s.find(k);ad++;
//			if((ad++)!=s.end()){ //不是最后一個(gè)if(ad!=s.end()){ //不是最后一個(gè)maxx  = abs(*ad - k);ad--;}else{ad--;}//處理前一個(gè)if(ad!=s.begin()){ad--;minn  = abs(*ad - k) ;}ans += min(maxx,minn);}}cout<<ans;}

相關(guān)知識(shí)點(diǎn)

set

特點(diǎn)

  • 無重復(fù)元素:不允許存儲(chǔ)重復(fù)的元素。
  • 有序存儲(chǔ):元素按某種規(guī)則(通常是升序)自動(dòng)排序。
  • 查找高效:可以高效查找某個(gè)元素是否存在。

例子
想象你在一副撲克牌中找一張牌,牌面上沒有重復(fù)的牌。如果你想找某張牌,只需按順序查找,而不需要檢查重復(fù)。每張牌都按照花色和點(diǎn)數(shù)排序,保證沒有重復(fù)并且順序明確。。

set 是關(guān)聯(lián)容器的一種,是排序好的集合(自動(dòng)排序) ,不能有重復(fù)的元素。

  • 不能直接修改set容器中元素的值。因?yàn)樵乇恍薷暮?容器并不會(huì)自動(dòng)重新調(diào)整順序,于是容器的有序性就會(huì)被破 壞,再在其上進(jìn)行查找等操作就會(huì)得到錯(cuò)誤的結(jié)果。若要修改set 容器中某個(gè)元素的值,則先刪除該元素,再插入新元素。
  • multiset容器類似set容器 ,但它能保存重復(fù)的元素。(mult開頭有多個(gè)的意思 mutimedia多媒體,muticultural多元文化)
  • set支持雙向迭代器,在插入和刪除時(shí),所以不能直接采用迭代器++/–的方式。 v在STL中使用結(jié)構(gòu)體 ,需要對(duì)特定要求的運(yùn)算符進(jìn)行重載;
  • STL默認(rèn)使用小于號(hào)來排序,因此,默認(rèn)重載小于號(hào): (如 果使用greater比較器就需重載大于號(hào)),且要注意讓比較函數(shù)對(duì)相同元素返回false.
函數(shù)名set 用法map 用法說明
insert 插入元素,返回迭代器mySet.insert(value),插入**鍵值對(duì) ** myMap.insert({key, value}) 或myMap.insert(make_pair(key, value));如果鍵已存在,則不會(huì)插入新鍵值對(duì),直接返回已存在的迭代器
size返回容器中元素的個(gè)數(shù)同set
find查找元素,返回迭代器mySet.find(value)同set myMap.find(key)若未找到則返回 end()迭代器
operator[] -(不適用)訪問/修改指定鍵對(duì)應(yīng)的值(若鍵不存在則插入默認(rèn)構(gòu)造的值
count返回等于給定值的元素個(gè)數(shù) mySet.count(value);返回鍵等于給定關(guān)鍵字的鍵值對(duì)個(gè)數(shù) myMap.count(key)只能是 0 或 1)

通用的成員函數(shù):

end 返回指向容器中最后一個(gè)元素之后位置的迭代器 返回指向容器中最后一個(gè)鍵值對(duì)之后位置的迭代器

begin 返回指向容器中第一個(gè)元素的迭代器 同set

clear 清空容器,刪除所有元素 清空容器,刪除所有鍵值對(duì)

erase 刪除元素,可通過迭代器或值刪除 刪除鍵值對(duì),可通過迭代器或鍵刪除 mySet.erase(it);mySet.erase(value);

	set<int> mySet;mySet.insert(5);// 插入元素mySet.insert(2);mySet.insert(8);mySet.insert(1);// 查找元素(返回迭代器)set<int>::iterator it=mySet.find(1);if (it!=mySet.end()) {cout<<"Found: "<<*it<<endl;}mySet.erase(it);// 刪除元素cout<<"Size1: "<<mySet.size() <<endl; 	// 獲取元素個(gè)數(shù)mySet.erase(5); // 使用值刪除mySet.clear();// 清空容器cout<<"Size2: "<<mySet.size() <<endl;	// 獲取元素個(gè)數(shù)
------------------------------set<string> partyGuests; // 定義一個(gè) set,模擬聚會(huì)的賓客名單partyGuests.insert("Alice");    // 添加一些賓客partyGuests.insert("Bob");partyGuests.insert("Charlie");partyGuests.insert("Alice");  // Alice 已經(jīng)在名單上了,不會(huì)重復(fù)添加// 輸出所有的賓客,按照字母順序排列for (set<string>::iterator it = partyGuests.begin(); it != partyGuests.end(); it++) {cout << *it << " ";}cout << endl;  // 輸出:Alice Bob Charlieset<string>::iterator search_it = partyGuests.find("Charlie"); // 查找某個(gè)賓客if (search_it != partyGuests.end()) {cout << "Charlie 已被邀請(qǐng)參加聚會(huì)!" << endl;} else {cout << "Charlie 沒有被邀請(qǐng)。" << endl;}partyGuests.erase("Bob");  //  // 刪除某個(gè)賓客 Bob 不來了,移除他cout << "當(dāng)前聚會(huì)有 " << partyGuests.size() << " 位賓客。" << endl;    // 查看聚會(huì)的賓客人數(shù)if (partyGuests.empty()) {    // 查看聚會(huì)是否為空cout << "聚會(huì)沒有賓客。" << endl;}partyGuests.clear();  // 聚會(huì)取消,清空所有賓客cout << "聚會(huì)已取消,清空所有賓客。" << endl;

自定義排序規(guī)則

  • set 會(huì)使用元素類型的 < 運(yùn)算符對(duì)元素進(jìn)行升序排序。
  • 可以通過指定自定義的比較器來改變排序規(guī)則,例如使用 greater<T> 來實(shí)現(xiàn)降序排序,或者自定義一個(gè)比較器來按特定的規(guī)則排序。
  • 自定義排序規(guī)則通常是通過提供一個(gè)**函數(shù)對(duì)象(結(jié)構(gòu)體或函數(shù)指針)**實(shí)現(xiàn)的。
  • 對(duì)于基本類型(如 intdouble 等),默認(rèn)按照升序排列。對(duì)于自定義類型(如類或結(jié)構(gòu)體),set 默認(rèn)使用 < 運(yùn)算符進(jìn)行排序。如果你沒有為自定義類型定義 < 運(yùn)算符,編譯器會(huì)報(bào)錯(cuò)。

(按字符串長(zhǎng)度排序)

假設(shè)你有一個(gè) set 來存儲(chǔ)字符串,并希望按字符串的長(zhǎng)度進(jìn)行排序(而不是字母順序)。你可以通過自定義比較器來實(shí)現(xiàn):

#include <iostream>
#include <set>
#include <string>
using namespace std;
// 自定義比較器,按字符串長(zhǎng)度排序
struct CompareByLength {bool operator()(const string& a, const string& b) const {return a.length() < b.length();  // 按長(zhǎng)度升序排列}
};
int main() {// 使用 lambda 表達(dá)式定義降序排序規(guī)則set<int, greater<int>> s;  s.insert(5);s.insert(2);s.insert(8);// 輸出按降序排列的元素for (int num : s) {cout << num << " ";  // 輸出 8 5 2 }set<string, CompareByLength> s;s.insert("apple");s.insert("banana");s.insert("kiwi");s.insert("orange");// 輸出按字符串長(zhǎng)度排序的元素for (const string& str : s) {cout << str << " ";  // 輸出 kiwi apple orange banana}return 0;
}
http://www.risenshineclean.com/news/39382.html

相關(guān)文章:

  • 地方旅游網(wǎng)站建設(shè)方案自己可以創(chuàng)建網(wǎng)站嗎
  • 國(guó)內(nèi)html5視頻網(wǎng)站建設(shè)網(wǎng)站分析培訓(xùn)班
  • 做個(gè)簡(jiǎn)單網(wǎng)站大概多少錢中文搜索引擎有哪些平臺(tái)
  • 制作網(wǎng)站和制作網(wǎng)頁(yè)的分別免費(fèi)獎(jiǎng)勵(lì)自己的網(wǎng)站
  • 公家網(wǎng)站模板百度代運(yùn)營(yíng)
  • 做服務(wù)員哪個(gè)網(wǎng)站靠譜營(yíng)業(yè)推廣策劃方案
  • 制作網(wǎng)站圖片磁力屋torrentkitty
  • 廈門旅游網(wǎng)站設(shè)計(jì)湖南seo優(yōu)化
  • 北京外貿(mào)網(wǎng)站建設(shè)公司怎么在百度發(fā)廣告
  • 免費(fèi)做明信片的網(wǎng)站新區(qū)快速seo排名
  • 小型企業(yè)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)搜索引擎營(yíng)銷的典型案例
  • 免費(fèi)網(wǎng)站建設(shè)步驟百度收錄權(quán)重
  • 網(wǎng)站投票系統(tǒng) js產(chǎn)品推廣方案范文500字
  • 惠州做網(wǎng)站的公司百度指數(shù)怎么看排名
  • 建設(shè)一個(gè)怎樣的自己的網(wǎng)站首頁(yè)鄭州粒米seo顧問
  • 建設(shè)電影網(wǎng)站廣告哪里找搜索引擎推廣法
  • 做app+的模板下載網(wǎng)站短視頻精準(zhǔn)獲客
  • 武漢網(wǎng)站制2023年8月份新冠
  • 佛山新網(wǎng)站制作咨詢東莞全網(wǎng)推廣
  • 深圳做網(wǎng)站的公司搜行者seo如何制作微信小程序店鋪
  • 公司網(wǎng)站 開源深圳seo專家
  • 供應(yīng)鏈管理軟件十大排名seo顧問培訓(xùn)
  • 網(wǎng)站管理員登錄哪有學(xué)電腦培訓(xùn)班
  • 蘇州個(gè)人網(wǎng)站建設(shè)信息推廣的方式有哪些
  • 做一個(gè)wordpress模板關(guān)鍵詞首頁(yè)排名優(yōu)化平臺(tái)
  • 西安有什么網(wǎng)站網(wǎng)絡(luò)輿情監(jiān)測(cè)中心
  • 建站的步驟有哪些杭州網(wǎng)站
  • php網(wǎng)站開發(fā)代碼東莞做網(wǎng)站最好的是哪家
  • 邯鄲網(wǎng)站制作多少錢蘇州網(wǎng)站建設(shè)制作公司
  • 貴州省城鄉(xiāng)和建設(shè)廳網(wǎng)站seo優(yōu)化的作用