czl蒻蒟的OI之路7

2021-08-08 01:41:12 字數 1726 閱讀 8164

t2odd sumwa一次後ac

t3minimal string已ac

t4broken bst

t5array queries

t6mice and holes

蒻蒟的總結

題意:給你兩個數n和k,讓你把n分成k個數相乘(乘數中不能有1),如果不能的話就輸出-1。可以的話就把乘數都輸出。

分析過程:

既然乘數不能有1,並且還要剛好分到k個,所以前面k-1個數字盡量是較小的k的因數,最後乙個數再輸出n除以前面的數的值。但是在這部執行前要有一些特判,如果pow(2,k)>n(即就算全部都用2拆分,都會達不到k),就直接輸出-1。如果k等於1,就直接輸出n。有了這些特判之後,在進行拆分,拆分時都用質數去試,這樣能節省很多時間。同時還要注意如果拆分到最後乙個是1,也是要輸出-1的。

給出題解:

#include

using

namespace

std;

int pre[2000];

bool prime(int n)

return

true;

}void get_pre()

}int main()

; get_pre();

if(prime(n)==true)cout

<<-1}}

for(int i=1;icout

<" ";

}cout

0;}

題意:

給你乙個數列,求數列中的一些數加起來的值為奇數,輸出這個奇數的最大值。

分析過程:

這個數列中的數,有正數,也有負數。在計算這個最大值的時候,可以先把正數和負數分成兩堆,先計算正數的所有數的和,判斷是否是奇數。如果是奇數,就直接輸出這個值(因為加上負數也只會變小)。如果是偶數,就分別把數列中最小的正奇數a和最大的負奇數b拉出來比較。如果找不到這個a或b,就用原值加上b或減去a。如果找到這兩個數了,就比較兩個數的絕對值大小。如果a大,就用原值加上b,反之則減去a。這樣求得的就是最大值。

給出題解:

#include

using

namespace

std;

int zh[100050],fu[100050],a[100050];

bool ji(int a)

int main()

else

}sort(zh+1,zh+1+cntz);

sort(fu+1,fu+1+cntf);

// cout}

for(int i=1;i<=cntz;i++)

}// coutif(a==0)cout

stack

s;for(int i=0; iif(s.size()==0)

else

s.push(ss[i]);}}

while(!s.empty())

cin>>q;

for(int j=1; j<=300; j++)}}

for(int i=1; i<=q; i++)

cout

0;}

題意:

分析過程:

給出題解:

這是前天的題目,有三道題沒有做出來,剩下的3題也是拼死才訂正出來一題,表示時間真的有點緊張了。昨天還有動態規劃專題,所以時間很少。不過並不是說不會補了,這些題都是我的弱處,要抓緊攻克它。

繼續貼出吳老師的話:學資訊的人永不服輸!!!

czl蒻蒟的OI之路3

t2arpa and an exam about geometry 已ac t3five dimensional points 已ac t4little elephant and lcm wa後兩次已ac t5polycarpus dice wa後三次已ac 補群賽3 t5bank hackingn...

czl蒻蒟的OI之路4

t2math show wa十次後ac t3four segments 未ac t4monitor 未ac t5chemistry in berland 未ac t6random query 2次wa後ac 蒻蒟總結 題意 給你一串01數列,要求你可以刪掉幾個資料,使得新的出的陣列裡面,1的後面沒有...

C 合輯 蒟蒻之路

蒟蒻之路1 知道你的成績x,如果大於59分,就是合格了,輸出 pass include using namespace std intmain return0 蒟蒻之路2 知道你的成績x,如果大於等於80分,就是優秀了,輸出 excellent 否則輸出 ohno 否則 用else來表達哦!incl...