**:csust練習5
a n!
hdu 1042 n的階乘,大數相乘,這裡的n<=10000,故可以用陣列不用字串。
**: 1546ms
1 #include 2 #include 3using
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 #include4 #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 #include4using
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 #includeusing
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 3using
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...