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 }
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 }
k题
转换成分钟算
(未完
一以贯之的努力 不得懈怠的人生 每天的微小积累会决定最终结果 ————————裴之
欢迎加我QQ:1136244161一起讨论,共同进步