2020牛客暑期多校训练营(第六场)
Easy Construction
思路:如果(n∗(n+1)/2)%n!=k则无解。
若n为奇数,序列为{n, 1, n-1, 2, n-2, ...} 。
如果n是偶数,序列为{n, n/2, 1, n-1, 2, n-2, ...} 。
#include <iostream> using namespace std; int main() { int n,k; scanf("%d%d", &n, &k); if (k != (n * (n + 1) / 2) % n) printf("%d\n",-1); else { for (int i = 1; i * 2 < n; i ++) printf("%d %d ", i, n - i); if(n%2==0) printf("%d ",k); printf("%d",n); } return 0; }
Combination of Physics and Maths
思路:最大一定存在于某一列之和中,枚举每一列即可。
#include <iostream> using namespace std; int t, n, m, a[210][210]; int main() { scanf("%d",&t); while(t--) { scanf("%d%d", &n, &m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf("%d", &a[i][j]); } } double ans = 0; for (int j = 0; j < m; j++) { double sum = 0; for (int i = 0; i < n; i++) { sum += a[i][j]; ans =max(ans, 1.0*sum / a[i][j]); } } printf("%.8f\n", ans); } return 0; }