头像

qzz




离线:3小时前



qzz
5天前

2020年蓝桥杯第二场广东省JavaB需要多少分省一?




qzz
20天前

?




qzz
22天前

不是说叶子结点是黑色的吗?为什么图一的叶子结点有红色?




qzz
24天前

二维前缀和中:S[x2, y2] - S[x1 - 1, y2] - S[x2, y1 - 1] + S[x1 - 1, y1 - 1] 为什么要 x1-1,y2 和 x2,y1-1 鸭?为什么要-1

不是刚刚好对应吗?为什么还要x1-1,y1-1 这样的




qzz
1个月前
#include<bits/stdc++.h>
using namespace std;
bool cmp(const int a, const int b){
    return a>b;
}
int main() {
    std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int N; cin>>N;
    int A[N+5]; for (int i=1; i<=N; i++) cin>>A[i];
    int n,m,mi=INT_MAX;
    for (int i=sqrt(N); i>0; i--) if (N%i==0) {
        m=i, n=N/i;
        break;
    }
    sort(A+1, A+N+1, cmp);
    int c=1, i=0, j=-1, g[n+5][m+5], st[n+5][m+5]; memset(st, false, sizeof st);
    while (c<N) {
        while (j+1<m && !st[i][j+1]) g[i][++j]=A[c++], st[i][j]=1;
        while (i+1<n && !st[i+1][j]) g[++i][j]=A[c++], st[i][j]=1;     
        while (j>0 && !st[i][j-1])   g[i][--j]=A[c++], st[i][j]=1;
        while (i>0 && !st[i-1][j])   g[--i][j]=A[c++], st[i][j]=1;
    }
    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++) {
            if (j==m-1) cout << g[i][j];
            else cout<<g[i][j]<<' ';
        }
        cout<<'\n';
    }
    return 0;
}



qzz
1个月前
+Walter
#Gareth
+Edward

样例中间怎么会有这样的顺序




qzz
1个月前
for (int i=1; i<=c; i++) 
for (int W=w[i]; W<=k; W++)
for (int V=v[i]; V<=n; V++) {
    f[i][W][V]=max(f[i][W][V], f[i-1][W-w[i]][V-v[i]]+val[i]);
    // cout << f[i][j][k] << ' ' << f[i-1][j-w[i]][k-v[i]]+val[i] << '\n';
}



qzz
6个月前

直接上 Dijkstra 如果有重边和自环,怎么解决呢?




qzz
6个月前

样例为什么不是 12 分钟?