Submission #996985

# Submission time Handle Problem Language Result Execution time Memory
996985 2024-06-11T14:35:57 Z modwwe Cities (BOI16_cities) C++17
100 / 100
1557 ms 48068 KB
#include<bits/stdc++.h>
#define int long long
//#define ll long long
#define down cout<<'\n';
#define NHP     ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0);
#define modwwe  int t;cin>>t; while(t--)
#define bit(i,j) (i>>j&1)
#define sobit(a) __builtin_popcountll(a)
#define task "test"
#define fin(x) freopen(x".inp","r",stdin)
#define fou(x) freopen(x".out","w",stdout)
#define pb push_back
#define checktime   cerr << (double)clock() / CLOCKS_PER_SEC * 1000  << " ms";
using namespace std;
const int inf=1e9;
void phongbeo();
const int mod2=1e9+7;
const int  mod1=998244353;
struct icd
{
    int a,b;
};
struct ib
{
    int a;
    int b;
};
struct ic
{
    int a,b,c;
};
struct id
{
    int a,b,c,d;
};
struct ie
{
    int a,b,c, d,e,f;

};
int n,m,s1,s2,s4,s3,sf,k,r,mid,s5,s6,mx,s7,s8,s9,mx2,res,dem2=0,dem=0,l;
int  i,s10,s12;
int el=29;
main()
{
#ifndef ONLINE_JUDGE
    //fin(task),fou(task);
#endif
    NHP
    /// cin>>s1;
    // modwwe
    phongbeo(),down
    checktime
}
struct cmp
{
    bool operator()(ib a,ib b)
    {
        return a.a>b.a;
    }
};
int a[100001];
vector<ib> v[100001];
int dp[100001][32];
bool c[100001];
void phongbeo()
{
    cin>>n>>k>>m;
    s2=0;
    priority_queue<ib,vector<ib>,cmp> p;

    for(int i=1; i<=n; i++)
        for(int j=1; j<(1<<k); j++)
            dp[i][j]=1e18;
    for(int i=0; i<k; i++)
        cin>>a[i],dp[a[i]][(1<<i)]=0;
    for(int i=1; i<=m; i++)
    {
        cin>>l>>r>>s3;
        v[l].pb({r,s3});
        v[r].pb({l,s3});
    }
    for(int j=1; j<(1<<k); j++)
    {
        for(int i=0; i<k; i++)
        {
            if(bit(j,i))
            {
                for(int z=1; z<=n; z++){
                    dp[z][j]=min(dp[z][(j-(1<<i))]+dp[z][(1<<i)],dp[z][j]);
                    }
                }
        }
        if(j==(1<<k)-1)
        { s2=1e18;
             for(int i=1;i<=n;i++)
         s2=min(s2,dp[i][j]);
         cout<<s2;
         exit(0);
        }
        for(int i=1;i<=n;i++){
            if(dp[i][j]!=1e18)
        p.push({dp[i][j],i});
         c[i]=0;
        }
        while(!p.empty())
        {
             ib u=p.top();
              p.pop();
              if(c[u.b]) continue;
              c[u.b]=1;
              dp[u.b][j]=min(dp[u.b][j],u.a);
              for(auto x:v[u.b])
                if(!c[x.a])
              p.push({u.a+x.b,x.a});
        }
    }
}

Compilation message

cities.cpp:44:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   44 | main()
      | ^~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2904 KB Output is correct
2 Correct 1 ms 3164 KB Output is correct
3 Correct 1 ms 3164 KB Output is correct
4 Correct 1 ms 3164 KB Output is correct
5 Correct 1 ms 3164 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 329 ms 46784 KB Output is correct
2 Correct 325 ms 46904 KB Output is correct
3 Correct 162 ms 37416 KB Output is correct
4 Correct 188 ms 22736 KB Output is correct
5 Correct 138 ms 44708 KB Output is correct
6 Correct 87 ms 23236 KB Output is correct
7 Correct 3 ms 5464 KB Output is correct
8 Correct 2 ms 5464 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 5376 KB Output is correct
2 Correct 4 ms 5532 KB Output is correct
3 Correct 3 ms 5212 KB Output is correct
4 Correct 4 ms 5468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 734 ms 47664 KB Output is correct
2 Correct 651 ms 47064 KB Output is correct
3 Correct 414 ms 37316 KB Output is correct
4 Correct 530 ms 37968 KB Output is correct
5 Correct 386 ms 24236 KB Output is correct
6 Correct 353 ms 24552 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1557 ms 47608 KB Output is correct
2 Correct 1476 ms 48068 KB Output is correct
3 Correct 1526 ms 47032 KB Output is correct
4 Correct 855 ms 37320 KB Output is correct
5 Correct 1112 ms 37056 KB Output is correct
6 Correct 820 ms 26284 KB Output is correct
7 Correct 756 ms 25832 KB Output is correct