답안 #979341

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
979341 2024-05-10T16:47:06 Z lftroq Toll (BOI17_toll) C++14
0 / 100
43 ms 88788 KB
/*

                                             :-=-
                                        :%@@@@@@@@@=
                                     .#@@@@@%@%@@@@@@=
                                    -@@@@@@@@@@@@@@@@@#
                                  .+@@@@@@@@@@@@@@@@@@@@.
                                  #@@@@@@@@@@@@@@@@@@@@@%
                                .*@@@@@@@@@@@@@@@@@@@@@@@=        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
                                .@@@@@@@@@@@@@@@@@@@@@@@@#       |      lftroq ♥      |
                                +@@@@@@@@@@@%%@@@@@@@@@@@@-       \_________/
                               .%@@@@@@@@@@%##%@@@@@@@@@@@#        //
                               -@@@@@@@@%%%%%%%%%@@@@@@@@@@:
                          -+-  =@@@@@%##%#%##**+#@@@@@@@@@@-
                          .+++.%@@@%##%%%%%%%#**+##%%@@@@@@+
                            +=*%@@@#*###%%#=--+=+*##%@@@@@@%.
                            :*+%@@*+**##*=======+***#@@@@@@@:
                             =+++**%@###*=++=-==++**#@@@@@@@:
                           .**===*%@@@##+=**#*==***@@@@@@@@@:
                          :+++=+*+%%@@%#==+*%#*+=++@@@@@@@@%
                          .**#*+*+**+%#+=---=***+==*@@@@@@@:
                          :**#*+=+**@%##*%#++++--=++#@@@@@@@+-::.
                         =%**###**#@@%*=*%%%%%*==++++%@@@@@@#=-----.
                      .%@@%***###@@@%*++%%%#*===+=++++%@@@@%*=-----=.
                      =**##+=+##@@@@=+%+=***#%@#+**++++%@@%+=-------=:
                    .++===++====@@@@+--==-=#%%%%+++*++++#%+=------==+=.
                   -++--=++-:::::=#@#----+--*%%*+**+++++++==-----===--+=
                   :*+=--++-::::::--=-----==-=%==+%%***++=---=---===-=++:
                    :*+--+=-::::::::---:----+=-=++##***===-::::-+----=*+:
                     .=--:::.:::-=-::---::--------++--=====-::::--:-==++
                     :=::::::--::::::--=+-:--++++==++--==:::-:::----==+=
                     *-:::::::.....:-++++++++++++++=+=---::::===-:------
                    :+:--:......:-+++++++++++++++++====---:--=-=----:-:=.
                    :==--:::.:=+++++++++++++++++++++-::===-:-===-----=--:
                    .+=--:::-:=+++++==++++++++++++++=--:.:-===+-------+=-.
                     .+==-----::-+++-:+++=====+++++++=--=======--:----==+=.
                     :+===-----------:-++====+++++++++=--==--+-:------==-::
                      +=====-::----+-::-+====+++++++++++=---==:-===:-==-==.
                      :+===========+-::::-----+++++++++++*=--======-=+=-=.
                       .=========++=-::::::----:::-++++++*+=+======+++==.
                          .=========-::::::-----:::=+++++**+=+**====-:.   .
                             *======-::::::::-:-----++++++++==++++++-
                             #======-:::::::::-------++++++++====+++=
                             =======-:::::::::----:::=+++++++=====+++
                             =====---:::::::::::------=++++++===+==++=
                             :===-:--:::::::::::-------+++++++===++=++
                             .===-:--:::::::::::::-----=+++++====++===.
                             .+=-::--::::::::::::-:-----++++++====++=+:
                             .=-:::--::::::::::::-------=+++++===-----+=
                             .=-:::--:::::::::::---------=++++==-----==+=.
                             .=-:::---:::::::::::---------+++===-----===++.
                             .=::::---:::::::-:-----------=++==-:-----===+-
                             .--:::---:::::::--------------=+=----==--===+-
                             .=::::---::::::::::-------===--==-------=--==:
                             .=--::--::::----:---:::::-:----:::-----======-
                             .=---:--:::---::::::--------------------==++++
*/
#include <bits/stdc++.h>
#define fastIO ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define MOD 1000000007ll
#define MOD2 998244353ll
#define endl '\n'
#define PI acos(-1)
#define INFINITE 1000000000
#define INFINITE2 1000000000000000000ll
#define llll pair<ll,ll>
#define ldld pair<ld,ld>
#define fi first
#define se second
#define sqrt sqrtl
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;

using namespace std;

int k,n,m,q;
int dp[17][50005][5][5],cost[50005][5][5],mask[50005];

void dnc(int l,int r,int level=0)
{
    if(l==r) return;
    int mid=(l+r)>>1;
    for(int a=0;a<k;a++) dp[level][mid][a][a]=0;
    for(int i=mid-1;i>=l;i--)
    {
        for(int a=0;a<k;a++) for(int b=0;b<k;b++) for(int c=0;c<k;c++) dp[level][i][a][c]=min(dp[level][i][a][c],dp[level][i+1][b][c]+cost[i][a][b]);
    }
    for(int a=0;a<k;a++) for(int b=0;b<k;b++) dp[level][mid+1][a][b]=cost[mid][a][b];
    for(int i=mid+2;i<=r;i++)
    {
        for(int a=0;a<k;a++) for(int b=0;b<k;b++) for(int c=0;c<k;c++) dp[level][i][c][a]=min(dp[level][i][c][a],dp[level][i-1][c][b]+cost[i][b][a]);
    }
    for(int i=mid+1;i<=r;i++) mask[i]|=(1<<level);
    dnc(l,mid,level+1);dnc(mid+1,r,level+1);
}

void solve()
{
    cin >> k >> n >> m >> q;
    for(int i=0;i<n;i++) for(int a=0;a<k;a++) for(int b=0;b<k;b++) cost[i][a][b]=INFINITE;
    for(int level=0;level<17;level++) for(int i=0;i<n;i++) for(int a=0;a<k;a++) for(int b=0;b<k;b++) dp[level][i][a][b]=INFINITE;
    while(m--)
    {
        int u,v,w;
        cin >> u >> v >> w;
        cost[u/k][u%k][v%k]=w;
    }
    dnc(0,(n-1)/k);
    while(q--)
    {
        int u,v;
        cin >> u >> v;
        if(u/k==v/k)
        {
            cout << -1 << endl;
            continue;
        }
        int level=__builtin_ctz(mask[u/k]^mask[v/k]),ans=INFINITE;
        for(int j=0;j<k;j++) ans=min(ans,dp[level][u/k][u%k][j]+dp[level][v/k][j][v%k]);
        if(ans==INFINITE) ans=-1;
        cout << ans << endl;
    }
}

int main()
{
    fastIO
    //freopen("hanhhhh.inp","r",stdin);
    //freopen("hanhhhh.out","w",stdout);
    int t=1;
    //cin >> t;
    while(t--)
    solve();
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 37 ms 88788 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 43 ms 88656 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 37212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 37212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 37 ms 88788 KB Output isn't correct
2 Halted 0 ms 0 KB -