杭電多校訓練第一場

2022-08-29 07:51:12 字數 2066 閱讀 8423

第一題:

注意:題目中的x|n代表的意思是n能被x整除。

題目的意思是:給你乙個整數n,尋找x,y,z,使得x+y+z=n並且x|n,y|n,z|n,求xyz的最大值。

可以證明,如果n是3的倍數,當x=y=z=n/3時,有最大值;如果n是4的倍數,當x=y=n/4,z=n/2時有最大值;否則沒有符合條件的x,y,z

特別注意:用cin,cout會超時

1 #include 2 #include3

using

namespace

std;

4 typedef long

long

ll;5

ll n,t,x;

6int

main()719

else

20 printf("

-1\n");

21}22else

2327}28

return0;

29 }

view code

第十一題:

時間轉化問題

提取字串中的數字時,不能直接提取,要特別注意數字是兩位數以上的情況!

1 #include 2 #include3 #include4 #include5

using

namespace

std;

6int

t,a,b;

7char s[20];8

intmain()

923 c=8-c;

24 a-=c;

25if(a<0)26

29else

if(a>=24)30

33 printf("

%02d:%02d\n

",a,b);34}

35else

if(len==6)36

42 c=8-c;

43 a-=c;

44if(a<0)45

48else

if(a>=24)49

52 printf("

%02d:%02d\n

",a,b);53}

54else

5563 i++;

64int d=s[i]-'0'

;65 d*=6

;66 c*=60

;67 c+=d;

68 a*=60

;69 a+=b;

70if(s[3]=='-'

)7174 c=480-c;

75 a-=c;

76if(a<0)77

80else

if(a>=60*24)81

84 printf("

%02d:%02d\n

",a/60,a%60

);85}86

}87return0;

88 }

view code

第三題:

給你3n個點,輸出n個不相交的三角形的頂點座標

1 #include 2 #include3

using

namespace

std;

4struct

node

5mp[10005];8

intt,n;

9bool

cmp(node a,node b)

1016

intmain()

1727 sort(mp,mp+3*n,cmp);

28for(int i=0;i<3*n;i+=3)29

32}33//

cout << "hello world!" << endl;

34return0;

35 }

view code

2019杭電多校暑假訓練 第一場

題目大意 一張圖里有n個節點,m條邊,要讓我們去割掉一些邊,讓從1到n的距離增大。解題思路 首先跑一遍從1 n 的最短路,然後得到d1陣列,然後根據性質 d v d u w i 這個性質得到最短路的邊,然後重新構建乙個最短路徑的圖,然後再求這張新圖的最小割。ac include include in...

杭電多校第一場補題

include include include include include include include include define int long long using namespace std const int maxn 1e4 10 const int inf 0x3f3f3f3...

2019杭電多校第一場

dp i j k t dp i j k t dp i j k t 表示0 1 2,3 0,1,2,3 0,1,2,3出現的位置排序後為i,j k,t i,j,k,t i,j,k,t的方案數 列舉第t 1 t 1t 1位的情況進行轉移 對於限制情況,固定右端點,暴力列舉所有狀態,把所有非法狀態清零 i...