248402026-02-15 23:57:04999Festés (50 pont)cpp17Hibás válasz 26/50490ms48948 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),1e17));
    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]+=(i>1?Codp[i-1][BM]:0LL);
        }
    }
    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/2289ms30000 KiB
4Hibás válasz0/21ms316 KiB
5Elfogadva3/34ms888 KiB
6Hibás válasz0/241ms5160 KiB
7Elfogadva2/2451ms48796 KiB
8Hibás válasz0/2444ms48928 KiB
9Hibás válasz0/2439ms48872 KiB
10Elfogadva2/2449ms48692 KiB
11Hibás válasz0/2439ms48692 KiB
12Hibás válasz0/2412ms44716 KiB
13Hibás válasz0/2425ms44852 KiB
14Elfogadva2/2151ms22324 KiB
15Elfogadva3/3155ms22324 KiB
16Elfogadva3/3261ms30020 KiB
17Elfogadva2/2257ms29952 KiB
18Elfogadva3/3254ms30156 KiB
19Elfogadva2/2386ms43900 KiB
20Hibás válasz0/2407ms46388 KiB
21Hibás válasz0/2439ms48460 KiB
22Hibás válasz0/2435ms48948 KiB
23Hibás válasz0/2444ms48692 KiB
24Hibás válasz0/2425ms48900 KiB
25Elfogadva2/2490ms48692 KiB