牛客多校 —— 第六場
阿新 • • 發佈:2020-07-29
傳送門
B. Binary Vector
題意
資料範圍
樣例
題解
Code
cpp
C. Combination of Physics and Maths
題意
給定一個\(N\)行,\(M\)列的矩陣,求子矩陣的和除這個子矩陣最後一行的和最大值
資料範圍
\(1\leq N,M\leq 200\)
\(1\leq a_{i,j} \leq 5\times 10^{4}\)
樣例
- 輸入
1
3 3
1 3 5
6 8 9
2 7 4
- 輸出
4.50000000
題解
貪心只需要考慮一列的壓強即可,假如\(\frac{a}{b} < \frac{c}{d}\),那麼必有\(\frac{a}{b}<\frac{a+c}{b+d}<\frac{c}{d}\)
Code
cpp
#include<bits/stdc++.h> using namespace std; #define rep(i,a,n) for(int i=a;i<n;i++) #define per(i,a,n) for(int i=n-1;i>=a;i--) #define db double const int N=210; int a[N][N]; int n,m; int _; int main(){ for(scanf("%d",&_);_;_--){ scanf("%d%d",&n,&m); rep(i,0,n) rep(j,0,m) scanf("%d",&a[i][j]); db ans=-1e3; rep(j,0,m){ db sum=0; rep(i,0,n){ sum+=a[i][j]; ans=max(ans,sum/a[i][j]); } } printf("%.8lf\n",ans); } }
E.Easy Construction
題意
給定一個\(N,P\),構造一個\(1\sim N\)的排列,使得長度為\(i\in [1,N]\) 的連續子序列的和\(mod \; N = P\)
資料範圍
\(1\leq N\leq 5000\)
\(1\leq P < N\)
樣例
- 輸入
2 1
- 輸出
1 2
- 輸入
3 1
- 輸出
-1
題解
先判斷一下當前\(N\)個數的和模\(N\)是否滿足,不滿足直接輸出-1
如果滿足,判斷\(k\)為0的情況,
- 不為0,輸出k
- 為0不操作
然後以\(k\)為中心向兩邊走即可,最後判斷是否有剩下的即可
Code
cpp
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<n;i++)
#define per(i,a,n) for(int i=n-1;i>=a;i--)
#define ll long long
int n,k;
int sum=0;
int main(){
scanf("%d%d",&n,&k);
rep(i,1,n+1) sum+=i;
if(sum%n != k) {
puts("-1");
return 0;
}
int i=1;
int rec=n;
printf("%d ",n);
rec--;
if(k!=0){
printf("%d ",k);
rec--;
}
while(rec) {
printf("%d ",k+i);
printf("%d ",n-k-i);
i++;
rec-=2;
}
if(rec) printf("%d ",k+i);
}
K.K-bag
題意
多組樣例,給定長度為\(N\)的序列\(A\),以及一個數\(K\)表示\(i\)
資料範圍
樣例
題解
Code
cpp