248382026-02-15 23:49:08999Festés (50 pont)cpp17Hibás válasz 22/50467ms48948 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_MAX);
            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_MAX;
    for(int i : Codp[m])mn=min(mn,i);
    cout<<mn<<endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base22/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms500 KiB
3Hibás válasz0/2275ms30004 KiB
4Hibás válasz0/21ms316 KiB
5Elfogadva3/34ms820 KiB
6Hibás válasz0/239ms5156 KiB
7Elfogadva2/2437ms48692 KiB
8Hibás válasz0/2423ms48912 KiB
9Hibás válasz0/2432ms48692 KiB
10Elfogadva2/2425ms48692 KiB
11Hibás válasz0/2423ms48692 KiB
12Hibás válasz0/2400ms44852 KiB
13Hibás válasz0/2419ms44852 KiB
14Elfogadva2/2142ms22324 KiB
15Elfogadva3/3144ms22188 KiB
16Elfogadva3/3252ms30052 KiB
17Elfogadva2/2247ms29956 KiB
18Elfogadva3/3248ms30004 KiB
19Elfogadva2/2363ms44084 KiB
20Hibás válasz0/2398ms46516 KiB
21Hibás válasz0/2416ms48436 KiB
22Hibás válasz0/2428ms48948 KiB
23Hibás válasz0/2419ms48908 KiB
24Hibás válasz0/2421ms48692 KiB
25Hibás válasz0/2467ms48872 KiB