2018多校1 hdu6298 6300 6308

 

a题

找规律之后发现当n%3==0时,乘积为(n/3)^3,

n%4==0时,乘积为(n/2)*(n/4)^2,

其余全为-1

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int t;
 8     long long n,cnt;
 9     scanf("%d",&t);
10     while(t--){
11         scanf("%lld",&n);
12         if(n%3==0) cnt=(n/3)*(n/3)*(n/3);
13         else if(n%4==0) cnt=(n/2)*(n/4)*(n/4);
14         else cnt=-1;
15         printf("%lld\n",cnt);
16     }
17     return 0;
18 }
View Code

 

c题

将3n个点以x坐标从小到大排序,再顺序输出原来是第几个点

 1 #include <iostream>
 2 #include <cstdio>
 3 
 4 using namespace std;
 5 
 6 const int n=10010;
 7 int q[n],s[n],emm[n];
 8 
 9 void quick_sort(int q[],int s[],int l,int r){
10     if(l>=r) return;
11     int i=l-1,j=r+1,x=q[l+r>>1];
12     while(i<j){
13         do(i++);while(q[i]<x);
14         do(j--);while(q[j]>x);
15         if(i<j) {
16             swap(q[i],q[j]);
17             swap(s[i],s[j]);
18         }
19     }    
20     quick_sort(q,s,l,j);
21     quick_sort(q,s,j+1,r);
22 }
23 
24 int main()
25 {
26     int t,n2;
27     scanf("%d",&t);
28     while(t--){
29         scanf("%d",&n2);
30         for(int i=0;i<3*n2;i++){
31             scanf("%d %d",&q[i],&emm[i]);
32             s[i]=i+1;
33         }
34         quick_sort(q,s,0,n2*3-1);
35         for(int i=0;i<n2;i++){
36             printf("%d %d %d\n",s[i*3],s[i*3+1],s[i*3+2]);
37         }
38     }
39     return 0;
40 }
View Code

 

k题

转换成分钟算

(未完

posted @ 2019-07-16 17:11  moomight  阅读(124)  评论(0编辑  收藏  举报