第一題:
注意:題目中的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 #include3view codeusing
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 }
第十一題:
時間轉化問題
提取字串中的數字時,不能直接提取,要特別注意數字是兩位數以上的情況!
1 #include 2 #include3 #include4 #include5view codeusing
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 }
第三題:
給你3n個點,輸出n個不相交的三角形的頂點座標
1 #include 2 #include3view codeusing
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 }
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...