关于二维 vector 存图
  • 板块灌水区
  • 楼主lizihan250
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/7 15:01
  • 上次更新2024/12/7 17:20:56
查看原帖
关于二维 vector 存图
421987
lizihan250楼主2024/12/7 15:01

在今年的 NOIP 中,考生 ZJ-0147 在 T3 代码中使用 vector<vector<int> > adj; 存储树,并使用以下代码读入:

while(t--)
{
    adj.clear();
    adj.shrink_to_fit();
    scanf("%d %d",&n,&k);
    adj.resize(n+5);
    for(int i=1;i<n;i++)
    {
        scanf("%d %d",&nums[i].u,&nums[i].v);
        adj[nums[i].u].push_back(nums[i].v);
        adj[nums[i].v].push_back(nums[i].u);
    }
    if(c==18)
    {
        printf("1\n");
        continue;
    }
    /*
    task 1 to 6
    */
}

最终未能拿到链的 44pts。随后,该考生在赛后自测时,将代码微调为如下形式:

while(t--)
{
    if(c==18)
    {
        printf("1\n");
        continue;
    }
    adj.clear();
    adj.shrink_to_fit();
    scanf("%d %d",&n,&k);
    adj.resize(n+5);
    for(int i=1;i<n;i++)
    {
        scanf("%d %d",&nums[i].u,&nums[i].v);
        adj[nums[i].u].push_back(nums[i].v);
        adj[nums[i].v].push_back(nums[i].u);
    }
    if(k>1)
    {
        printf("%d\n",pi[n-2]);
        continue;
    }
    /*
    task 1 to 6
    */
}

观察到除测试点 1818 以外,772525 中的所有测试点全部 RE。

请大佬分析一下原因,并给出二维 vector 的存图建议。

(我寻思我学了这么久 OI 这样存图从来没出过事啊,怎么就这回挂了呢?)

2024/12/7 15:01
加载中...