Offer收割機 程式設計練習賽1

2021-07-10 09:40:48 字數 1942 閱讀 9495

這次應該算是去年放假以後第一次寫**吧,感覺腦子還是有點秀逗的,這次的題目感覺確實都是水題,居然有一題還沒寫出來,好像第四題做的時候沒看到剩下來的70%的資料,以為是對語言70%的資料,再次表示讀題很重要!!!(想起去年的ec真是心痛)。

第一題,暴力模擬,只需要把所有滿足情況的

9 宮格表示出來就好了,然後暴力判斷給出的圖案和幾個滿足條件的

9宮格一樣。

第二題,暴力,使用乙個資料結構(我用的是priority_queue)來模擬整個過程就好了,二分答案,搞定。

第三題,暴力每一層的情況,發現直接就轉化成了乙個完全揹包問題,轉移方程:dp

[v]=

min(

dp[v

],dp

[v−b

[i]]

+a[i

]),複雜度為o(

nmk)

。第四題,(兩個陣列的)正序(乘積和)>亂序》逆序。這樣如果確定了那些位置放對空,哪些位置放對艦,就只有一種排列了。這個時候就可以暴力

16 個位置放了什麼。一共個就是21

6 種可能,然後每一種情況進行判斷就好了。複雜度是o(

nm∗2

nm) 只貼一下第四題的**,感覺第四題被我寫得很爛,寫了兩遍一樣的**。寫完以後想想完全沒有必要的,看來還是要多想想再寫。

#include 

using namespace std;

typedef pair pii;

#define for(i,x,y) for(int i = x;i < y;++ i)

#define ifor(i,x,y) for(int i = x;i > y;-- i)

#define mp make_pair

#define fi first

#define se second

const int maxn = 1000;

int n,m,t,s;

int a[4][4],p[maxn],q[maxn],lep,leq;

bool cmp(int a,int b)

bool cmp_pii(pii a,pii b)

void work()

sort(b,b+leb,cmp_pii); sort(c,c+lec,cmp_pii);

int lebp = min(leb,lep),sump = 0;

for(j,0,lebp) sump += b[j].fi*p[j];

if(sump < s) continue;

int lecq = min(lec,leq),sumq = 0;

for(j,0,lecq) sumq += c[j].fi*q[j];

ans = max(ans,sumq);

}if(ans == -1)

if(ans == 0)

printf("%d\n",ans);

bool flag = false;

for(i,0,maxp)

sort(b,b+leb,cmp_pii); sort(c,c+lec,cmp_pii);

int lebp = min(leb,lep),sump = 0;

for(j,0,lebp) sump += b[j].fi*p[j];

if(sump < s) continue;

int lecq = min(lec,leq),sumq = 0;

for(j,0,lecq) sumq += c[j].fi*q[j];

if(ans == sumq)

if(f) }}

if(flag) printf("yes\n");

else

printf("no\n");

return;

}int main()

}

Offer收割 程式設計練習賽1

做了三題,題目都比較暴力。a題 題意 給你乙個三階的幻方,三階幻方指的是將1 9不重複的填入乙個3 3的矩陣當中,使得每一行 每一列和每一條對角線的和都是相同的。現在準備將乙個三階幻方中的一些陣列抹掉 0代替 交給你來進行還原,並且希望她能夠判斷出究竟是不是只有一組解。如果只有一組解,輸出該三階幻方...

Offer收割 程式設計練習賽7

比較容易想到是o n 2 的解決方案,遍歷n種刪除可能,每次遍歷o n 時間求總高度。前者優化比較困難,因而想辦法優化每次遍歷求高度的時間。由前往後遍歷,當刪除第i個時,先前的排版是連續的,從而通過計數器等累加方法可以求得已完整行的總高度presum,以及當前未完整行的w,h。include def...

Offer收割 程式設計練習賽26

題解 按照條件求解出最大的三角形和最小的三角形,然後求重心即可。這裡求解面積有兩種方法 海 式 p p a p b p c 將三角形的每一條邊求解出來,然後進行處理 用有向向量進行計算,如果設a x0,y 0 b x1,y 1 c x2,y 2 三點為三角形三個頂點,a 為有向面積,那麼2a x0 ...