2018 「百度之星」程式設計大賽 初賽(A)

2022-05-11 05:14:36 字數 2424 閱讀 7104

第二題還算手穩+手快?最後勉強擠進前五百(期間看著自己從兩百多掉到494名)

1001  度度熊拼三角    (hdoj 6374)

簽到題 

題意:給n根木棒 求可以拼出的周長最長的三角形

可以用貪心的思想做 對所有的木棒長度進行排序 取最長的三根進行判斷是否可以組成三角形 若不能 捨去最長的一根 每次都選擇相鄰的三根 for一遍就好

複雜度為o(nlogn)

**如下

#include #include 

#include

#include

using

namespace

std;

const

int maxn=1010

;int

n,ans;

inta[maxn];

int cmp(int a,int

b)int check(int

x)int

main()

sort(a,a+n,cmp);

int flag=0

;

for(int i=0;i)

}if(flag==1) printf("

%d\n

",ans);

else printf("

-1\n");

}return0;

}

view code

1002 度度熊學佇列      (hdoj 6375)

因為是用stl裡的list做的 對我來說也算是個簽到題了 幾乎就算是個list的板子題了

題意:rt 講的非常清楚

沒想到居然沒有卡 stl  從此有了stl的真香警告(突然開始打算好好學stl了)

**如下

#include #include 

#include

#include

#include

using

namespace

std;

const

int maxn=150010

;list

lst[maxn];

intn,q,op,u,v,w,val;

void read(int &x)

intmain()

if(op==2

)

else

if(w==1) }}

if(op==3

) }}}

return0;

}

view code

1003 度度熊剪紙條  (hdoj 6376)

比賽的時候沒有肝出來……orz

題意:給乙個長度為n的序列 全部由0 1組成  可以切k刀 切完後的k+1段可以自由拼接(不可翻轉)求最終序列中的字首1的數量

應該要分四種情況 先上男朋友的**

**如下

#include #include 

#include

#include

#include

using

namespace

std;

const

int maxn=1e5+50

;int

n,k,cnt,cnt1,ans;

int b[4

];char

s[maxn];

struct

node

kk[maxn];

intcmp(node a,node b)

void work(int k,int

tmp)

}ans=max(ans,tmp);

}int

main()

printf(

"%d\n

",ans);

continue

; }

int num=0

; cnt=cnt1=0

;

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

else

if(num!=0

) num=0

; }

}k++;

ans=0

; sort(kk+1,kk+1+cnt,cmp);

if(cnt1==2

)

else

if(cnt1==1

)

else work(k,0

); printf(

"%d\n

",ans);

}return0;

}

view code

2011百度之星程式設計大賽初賽A

第一題 圖示排列 研究發現,同乙個開發者開發的程式的圖示有很大的相似性。如果把同乙個開發者開發的應用放在一起,使用者很快就會厭倦相似的圖示,如果把這些圖示穿插擺放效果就會好很多。現在工程師想給使用者推薦來自m個開發者的n個應用,在推薦的時候這些應用的圖示將排成整齊的一行展示給使用者,相鄰兩個圖示之間...

2018百度之星初賽1003

problem description 度度熊有一張紙條和一把剪刀。紙條上依次寫著 n 個數字,數字只可能是 0 或者 1。度度熊想在紙條上剪 k 刀 每一刀只能剪在數字和數字之間 這樣就形成了 k 1 段。他再把這 k 1 段按一定的順序重新拼起來。不同的剪和接的方案,可能會得到不同的結果。度度熊...

百度之星2018初賽A輪

題目描述 題解 簽到題。排個序列舉小的兩條然後二分出第三條就好了。其實排序之後只要看連續的三條就行了。include define n 1005 using namespace std int n,s n ans int main printf d n ans return 0 題解 當時腦子抽了寫...