248392026-02-15 23:54:09999Festés (50 pont)cpp17Hibás válasz 26/50481ms48928 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
#define int long long
using namespace std;

string numtostr(int BM, int n){
    string s="";
    int temp=BM;
    while(temp>0){
        if(temp%2)s='1'+s;
        else s='0'+s;
        temp/=2;
    }
    while(s.size()<n)s='0'+s;
    return s;
}

signed main() {
    int n,m;cin>>n>>m;
    vector<int> Ro(n);
    for(int i = 0;i<n;i++){
        cin>>Ro[i];
    }
    vector<vector<vector<int>>> Co(m+1,vector<vector<int>>(n,vector<int>(n)));
    for(int i = 1;i<=m;i++){
        for(int j = 0;j<n;j++){
            for(int k = j;k<n;k++){
                cin>>Co[i][j][k];
            }
        }
    }
    vector<vector<int>> Codp(m+1,vector<int>(1<<(n)));
    for(int i = 1;i<=m;i++){
        for(int BM=0;BM<(1<<n);BM++){
            int sum=0;
            for(int I = 0;I<n;I++){
                if(BM&(1<<I))sum+=Ro[I];
            }
            int biztkell=((1<<(n))-1)^BM;
            vector<int> tempdp(n,(int)(1e17));
            tempdp[0]=((biztkell&1)==0?0:Co[i][0][0]);
            for(int I = 1;I<n;I++){
                int mnar=((biztkell&(1<<I))==0?0:Co[i][I][I])+tempdp[I-1];
                for(int j = 0;j<I;j++){
                    mnar=min(mnar,Co[i][j][I]+(j>0?tempdp[j-1]:0));
                }
                tempdp[I]=mnar;
            }
            Codp[i][BM]=tempdp[n-1]+(i==m?sum:0);
        }
    }
    for(int i = 1;i<=m;i++){
        for(int BM=0;BM<(1<<n);BM++){
            Codp[i][BM]+=Codp[i-1][BM];
        }
    }
    int mn=(int)(1e17);
    for(int i : Codp[m])mn=min(mn,i);
    cout<<mn<<endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base26/50
1Elfogadva0/01ms540 KiB
2Hibás válasz0/01ms316 KiB
3Elfogadva2/2275ms30012 KiB
4Hibás válasz0/21ms316 KiB
5Elfogadva3/34ms720 KiB
6Hibás válasz0/239ms5172 KiB
7Elfogadva2/2446ms48764 KiB
8Hibás válasz0/2437ms48692 KiB
9Hibás válasz0/2426ms48696 KiB
10Elfogadva2/2430ms48892 KiB
11Hibás válasz0/2449ms48692 KiB
12Hibás válasz0/2402ms44852 KiB
13Hibás válasz0/2414ms44852 KiB
14Elfogadva2/2148ms22324 KiB
15Elfogadva3/3146ms22324 KiB
16Elfogadva3/3254ms30068 KiB
17Elfogadva2/2256ms30012 KiB
18Elfogadva3/3245ms30004 KiB
19Elfogadva2/2368ms44088 KiB
20Hibás válasz0/2407ms46504 KiB
21Hibás válasz0/2426ms48248 KiB
22Hibás válasz0/2432ms48928 KiB
23Hibás válasz0/2423ms48692 KiB
24Hibás válasz0/2425ms48692 KiB
25Elfogadva2/2481ms48780 KiB