8月10號小練

2022-05-19 01:45:11 字數 2409 閱讀 8368

**:csust訓練3

a 三分的題目,給出燈高,人高,以及和牆的距離,求最長的影子長度。   light bulb

zoj 3203

本來我是三分角度,角度[0,atan(h/d)],測試資料都是對的,但是wa了,我到現在還是不知道為什麼........

後來是三分投在牆上的影子長度,[0,h],投在牆上的影子最多是h。

**:     0ms

1 #include 2 #include 3 #include 4

using

namespace

std;

5int

main()

626 printf("

%.3lf\n

",l2);27}

28return0;

29 }

這道題還有個數學方法,直接求峰值,詳情見: (表示膜拜,用數學方法的都膜拜)

b   求最長回文子串的長度,如果暴力0(n^2)果斷超時,要用manacher演算法。

優化原因見:  

**: 360 ms/15000ms     10936kb/65536kb     這道題的時間限制真長......從沒做過15s的題orz

1 #include2 #include3 #include4

using

namespace

std;

5#define n 1000008

6char str[n], str1[n<<1];7

int p[n<<1];8

intmaxx;

9void

manacher()

10

32if( p[i]-1>maxx )

33 maxx=p[i]-1; //

更新最長長度

34} 35}

36int

main()

3745 }

c    minimum inversion number

hdu 1394   大意是給n個數,分別是0~n-1,前面的數比後面的數大的數對有多少個,算好之後把第乙個數移到最後,又算.......最後求最小的數對是多少個。此題用線段樹做,但是我還沒看線段樹,過一陣再補上,先講下不用線段樹的做法。

**  :   265ms

1 #include 2 #include 3

using

namespcae std;

4int

main()

524 printf("

%d\n

",minn);25}

26return0;

27 }

d     line belt

hdu 3400   三分疊三分

**:     0ms ,注意不能用while,用do....while,因為至少要執行一次,算ab,cd 間的距離

1 #include2 #include3 #include4 #include5 #include6 #include

7using

namespace

std;

8struct

point9;

12double

dis(point a,point b)

1316

double

p,q,r;

17double find2(point a,point c,point d)//

三分cd

18while(dis(left,right)>1e-5

);

37return

t2;38}39

double find(point a,point b,point c,point d) //

三分ab

40while(dis(left,right)>=1e-5

);59

return

t2;60}61

intmain()

6273

return0;

74 }

e   超級簡單,母函式解決 fruit

hdu 2152

**:    0ms

1 #include 2 #include 3 #include 

4using

namespace

std;

5int a[105],b[105];6

int c1[10005],c2[10005];7

intmain()

826 printf("

%d\n

",c1[m]);27}

28return0;

29 }

8月22日小練

8月21日小練 a find the shortest common superstring hdu 1841 b 免費餡餅 hdu 1176 dp 思路 從時間後往前推,dp i j 表示在i,j地能接到的最多的餡餅數。46ms 1 include 2 include 3 include 4usi...

8月19日小練

csust訓練 a 小q系列故事 絲的逆襲 hdu 4500 一道以前就做過的題,而且當時也做出來了,就是找到乙個得分最高的位置,女為正數,男為負數,與鄰居性別不同則加上絕對值,否則相減。15ms 1 include2 include3 include 4using namespace std 5i...

8月15日小練

csust練習5 a n hdu 1042 n的階乘,大數相乘,這裡的n 10000,故可以用陣列不用字串。1546ms 1 include 2 include 3 using namespace std 4int a 40000 5 intmain 615 a 0 1 0 記錄陣列的長度 16 a...