QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#210799#5364. 面国漫步Liang_Yusong0 0ms3744kbC++141.8kb2023-10-11 20:16:192023-10-11 20:16:19

Judging History

你现在查看的是最新测评结果

  • [2023-10-11 20:16:19]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:3744kb
  • [2023-10-11 20:16:19]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e2+5,K=N*N;
const LL INF=1ll<<60;
int n,k,a[K],m,b[N],pos[N],cnt[N];
LL dis[N];
struct Edge
{
    int u,v;
    LL w;
};
vector<Edge>ans;

signed main()
{
    ios::sync_with_stdio(false),cin.tie(nullptr);
    cin>>n>>k;
    for(int i=1;i<=k;++i)
        cin>>a[i];
    for(int i=2;i<=k;++i)
        if(a[i]==1)
            return cout<<"No\n",0;
    for(int i=1;i<=k;++i)
        pos[a[i]]=i;
    for(int i=1;i<=k;++i)
        if(pos[a[i]]==i)
            b[++m]=a[i];
    // cout<<"m:"<<m<<"\n";
    // cout<<"b:\n";
    // for(int i=1;i<=m;++i)
    //     cout<<b[i]<<" \n"[i==m];
    // cout<<"pos:\n";
    // for(int i=1;i<=n;++i)
    //     cout<<pos[i]<<" \n"[i==n];
    for(int i=1;i<=m-1;++i)
    {
        int l=pos[b[i]]+1,r=pos[b[i+1]]-1;
        for(int j=l;j<=r;++j)
            if(++cnt[a[j]]>=2) // 出点都是 a[l],所以在 SPFA 过程中不可以入两次队
                return cout<<"No\n",0;
        for(int j=l;j<=r;++j)
            cnt[a[j]]=0;
    }
    for(int i=1;i<=n;++i)
        dis[i]=INF;
    int nowdis=0; // 当前 a[l] 的 dis (吗)
    for(int i=1;i<=m-1;++i)
    {
        int l=pos[b[i]]+1,r=pos[b[i+1]]-1;
        for(int j=l;j<=r;++j)
        {
            --dis[a[j]]; // 想要被更新,距离至少得 -1
            ans.push_back({b[i],a[j],dis[a[j]]-nowdis});
        }
        nowdis+=INF-dis[b[i]];
        // cout<<"nowdis: "<<nowdis<<"\n";
        // cout<<"dis:\n";
        // for(int j=1;j<=n;++j)
        //     cout<<dis[j]<<" \n"[j==n];
        ans.push_back({b[i],b[i+1],INF-dis[b[i]]}); // 不是最优点不更新后面
    }
    cout<<"Yes\n"<<ans.size()<<"\n";
    for(auto [u,v,w]:ans)
        cout<<u<<" "<<v<<" "<<w<<"\n";
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3744kb

input:

3 1
1

output:

Yes
0

result:

wrong answer Wrong Answer on the First line of output

Subtask #2:

score: 0
Wrong Answer

Test #16:

score: 0
Wrong Answer
time: 0ms
memory: 3616kb

input:

85 78
1 46 49 66 12 47 36 28 44 17 48 34 5 82 20 40 69 52 75 27 14 43 53 83 33 55 38 77 58 56 76 81 6 84 19 80 67 3 50 25 26 21 29 62 70 22 68 63 74 37 7 73 78 42 32 2 64 8 39 71 59 18 23 24 9 51 85 11 57 41 45 16 54 30 35 61 72 4

output:

Yes
77
1 46 0
46 49 0
49 66 0
66 12 0
12 47 0
47 36 0
36 28 0
28 44 0
44 17 0
17 48 0
48 34 0
34 5 0
5 82 0
82 20 0
20 40 0
40 69 0
69 52 0
52 75 0
75 27 0
27 14 0
14 43 0
43 53 0
53 83 0
83 33 0
33 55 0
55 38 0
38 77 0
77 58 0
58 56 0
56 76 0
76 81 0
81 6 0
6 84 0
84 19 0
19 80 0
80 67 0
67 3 0
3 5...

result:

wrong answer Wrong Answer on the First line of output

Subtask #3:

score: 0
Skipped

Dependency #1:

0%

Subtask #4:

score: 0
Skipped

Dependency #2:

0%

Subtask #5:

score: 0
Skipped

Dependency #1:

0%