调试
查看原帖
调试
766675
da_ke楼主2024/9/17 16:58

发现和修复错误:调试是找出并修复代码中错误的关键步骤。通过调试,开发者可以逐步跟踪代码执行过程,定位问题的根本原因,并及时修复这些错误,确保代码的正确性和可靠性。

提高代码质量:调试有助于发现代码中的逻辑错误、潜在的错误或者代码不规范的地方。通过逐行调试代码,开发者可以更加深入地理解代码的运行机制和细节,以及找出代码中的问题并进行修正,从而提高代码质量。

加快开发速度:调试可以帮助开发者快速定位问题,减少排查错误的时间,从而提高开发速度。通过调试,开发者可以逐步分析代码执行过程,并逐步排除错误,减少调试时间,加快代码开发的进度。

增强开发技能:经过长时间的调试实践,开发者可以积累大量的经验和技巧。不仅可以提高开发者的调试能力,还可以提高他们解决问题的能力和创新能力。

怎么样,是不是心动了,快试试吧!

20 pts 求条!

#include <bits/stdc++.h>

#define i64 long long
#define rep(i,l,r) for(int i=(l);i<=(r);i++)
#define fdn(i,r,l) for(int i=(r);i>=(l);i--)
#define pii pair<int,int>
using namespace std;

typedef long long ll;
typedef double db;
typedef __int128 i128;

const int N=1e4+23;
const int K=114;

int n,m,k;
ll dis[N][K]; bool vis[N][K];

ll cl(ll x,ll y)
{
    if(x%y==0) return x/y;
    else return (x/y)+1;
}

int main()
{
#ifndef ONLINE_JUDGE
    freopen("bus.in","r",stdin);
    freopen("bus.out","w",stdout);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
    cin>>n>>m>>k;
    vector<vector<pair<int,ll> > > linker(n+1);
    rep(i,1,m)
    {
        int u,v,w;
        cin>>u>>v>>w;
        linker[u].push_back({v,w});
    }
    priority_queue<pair<ll,int> > q;
    memset(dis,127,sizeof(dis));
    dis[1][0]=0;
    q.push({0,1});
    while(!q.empty())
    {
        int u=q.top().second; ll p=q.top().first;
        q.pop();
        if(vis[u][p%k])
            continue;
        vis[u][p%k]=1;
        for(auto i:linker[u])
        {
            int v=i.first; ll w=i.second;
            ll t;
            if(p>=w) t=p;
            else t=cl(w-p,k)*k+p;
            if(t+1<dis[v][(t+1)%k])
            {
                dis[v][(t+1)%k]=t+1;
                q.push({t+1,v});
            }
        }
    }
    cout<<((dis[n][0]==1ll<<59)?-1:dis[n][0])<<endl;
}
2024/9/17 16:58
加载中...