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;
}