8月15日小練

2022-05-19 01:41:21 字數 2831 閱讀 3988

**: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[1]=1;17

for(i=2;i<=n;i++)

1826

while(sum) //

sum>10

2733}34

for(i=a[0];i>=1;i--) //

反序輸出

35 printf("%d"

,a[i]);

36 printf("\n"

);37}38

return0;

39 }

b  moving tables

hdu 1050

左右各有200間房間,編號一邊為奇數,一邊為偶數,中間有一條走廊,走廊最多只能讓一張桌子通過,問n組,分別從a搬到b,最少要花多少時間?

**:       貪心       0ms

1 #include 2 #include 3 #include 

4 #include 5

using

namespace

std;

6int

main()725

for(i=1;i<=200;i++)

26if(a[i]>sum)

27 sum=a[i]; //

同時最多要用到的

28 printf("

%d\n

",sum*10); //

*10,每次10min29}

30return0;

31 }

c    變形課

hdu 1181      給出若干個字串,0結束輸入。若乙個字串的最後乙個字元和另乙個字串的首字元相同,這兩個字串就變成乙個,若能找到乙個字串一b開始,以m結束,則輸出"yes.",否則輸"no.」

方法  dfs  本來我也是用dfs,但是後來寫著寫著,感覺不對.....因為每找乙個字串都要從第乙個開始......╭(╯^╰)╮......然後我就放棄了....... qaq

**:      15ms

1 #include 2 #include 3 #include 

4using

namespace

std;

5int map[100005];6

intk,len;

7classa8

a[100005

];13

void dfs(int

i)14

20else

21for(int j=1;j)

2229}30

intmain()

3147

for(j=1;j)

48if(a[j].x=='

b') //

找到b開始的字串

4953

if(k)

54 printf("

yes.\n");

55else

56 printf("

no.\n");

57}58return0;

59 }

d   calculation 2

hdu 3501     給出乙個數n,求比n小且不與n互質的數的和。

利用尤拉公式:初等數論與尤拉公式:

f(n)表示所有小於n,且與n互質的數的個數,n=p1^a1*p2^a2*p3^a3.......

f(n)=n(1-1/p1)(1-1/p2)(1-1/p3)........

所以可以求出num=n-1-f(n),即與n不互質的數的個數,又由:對於整數n,如果x(x**:     15ms    本來還寫了個0ms的,但是一樣的**再交一次卻變成了15ms

#include #include 

using

namespace

std;

int oula(int

n)

if(n==1) //

沒有因子了

break

; }

if(n!=1

) ans=ans/n*(n-1

);

return

ans;

}int

main()

return0;

}

e  an easy problem

hdu 2601    給出乙個數n<10^10,有i*j+i+j=n,滿足0i*j+i+j=(i+1)*(j+1)-1   所以:(i+1)*(j+1)=n+1;有:

**:   2125ms

1 #include 2 #include 3

using

namespace

std;

4int

main()5

18 printf("

%d\n

",sum);19}

20return0;

21 }

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月6日小練

csust小練習1 以後每天21 30 23 30都有小練 a max sum hdu 1003 大意是 給出n個數,找出最大的和,輸出起點和終點的編號 本來是暴力做,不出所料的超時了orz.15ms 1 include2 include3 using namespace std 4int main...