7 29總結當日

2021-08-21 21:09:53 字數 2217 閱讀 3498

今天排名一般,但是卻感覺不錯,也是可以的

7.29場鏈結

a題:

題意:01揹包問題,要求最優情況是重量和體積都最大的情況

解法:和之前的「勁歌金曲」那道題挺像的,就是設計乙個最優狀態,只有當這個狀態比當前狀態更優的時候我們才進行狀態轉移,狀態這個詞最為重要

注意壓縮完空間後的最終狀態所處的位置

#include

#include

#include

using

namespace

std;

int w[1005], v[1005];

typedef

long

long ll;

struct node

}dp[100005];

int main()

}printf("%d %d\n", dp[c].w, dp[c].v);

}return

0;}

d題:

題意:有n堆石子,每次要求把重量最小的兩堆進行合併,之後會有m個詢問,問第幾次操作完中某堆石子的序號

解法:

哈夫曼樹,並查集,因為當這個石子和其他石子合併的時候,他們就相當於屬於乙個集合了,那麼之後對集合中乙個元素的修改就相當於修改其所有的元素

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

intset[1000000];

int findset(int x)

void unionset(int x, int y)

}struct node

};priority_queue q;

queue

int, int>>ask;

int main() );//編號為i的稀泥的重量為tmp

set[i] = i;

}for (int i = 1; i <= m; i++)

int now = 0;

while (ask.size()&&q.size() > 1) );

now++;

while (ask.size()&&now == ask.front().first) }}

return

0;}

codeforces contest 1009

b題:

題意:給定乙個數列,這個數列裡面只有0,1,2,有兩種操作,將相鄰的01對換位置,將相鄰的12調換位置,2和0不能調換位置,每種操作可以變無數次,問經過多種這樣子的操作後字典序最小的序列是什麼樣子的。

解法:由於2和0的位置是不能調換的,所以我們就把所有的1單獨拿出來,然後再把所有的1放到第乙個2前面就行了,很好的思路題

#include

#include

#include

using

namespace

std;

char s[100000 + 5];

int main()

}for (int i = 0; i < len; i++)

if(pos==-1)for (int k = 0; k < num; k++)printf("1");

return

0;}

c題:

題意:給定乙個序列,每次給你兩個數,要求將序列裡面的每個數都加上x,之後選擇乙個位置j,將所有的數加上d*dist(i,j),問怎樣選擇j可以使得最後所有的數的平均數最大

解法:推一下公式就行了,要注意的是double的用法

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

int a[100000 + 5];

int main()

else ans += d*(n - (n + 1) / 2)*((n + 1) / 2);

}printf("%.15f\n", double(ans)/n);

return

0;}

7 29 修理牧場

7 29 修理牧場 題目大意,總長度l的木板,分為n塊,每塊ai長度。切割的酬勞等於被切木板長度。例如,要將長度為20的木頭鋸成長度為8 7和5的三段,第一次鋸木頭花費20,將木頭鋸成12和8 第二次鋸木頭花費12,將長度為12的木頭鋸成7和5,總花費為32。一開始想了個錯誤的方法,排序之後,遞迴的...

7 29 修理牧場

農夫要修理牧場的一段柵欄,他測量了柵欄,發現需要n塊木頭,每塊木頭長度為整數l i 個長度單位,於是他購買了一條很長的 能鋸成n塊的木頭,即該木頭的長度是l i 的總和。但是農夫自己沒有鋸子,請人鋸木的酬金跟這段木頭的長度成正比。為簡單起見,不妨就設酬金等於所鋸木頭的長度。例如,要將長度為20的木頭...

7 29物件導向

面向過程 所謂過程就是我們解決問題的步驟,一步步的按照流程走,有先後之分。它呢,整個設計就好比流水線,思維上比較機械化。優缺點 缺點 物件導向 核心是物件。正式的來說 通過資料和行為方式來描述互動物件的集合 在python 中一切皆為物件 物件導向的優缺點 缺點 在現實世界中,以我們為列 objec...