codeforces1472G. Moving to the Capital
https://codeforces.com/contest/1472/problem/G
一開始ans[i]=d[i]
我們按照離1的距離從大到小列舉點u然後列舉他的出邊v,如果d[u]<d[v]說明u可以走到v,之後再用一次2,且v已經被處理過了,如果d[u]>=d[v]說明走這條邊就要用到1次2了,那麼之後就只能用1,那麼d[v]就是u走u->v能得到的最小值了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxl=3e5+10;
int n,m,k,cnt,tot,cas;
int a[maxl],ans[maxl],d[maxl];
bool vis[maxl];
char s[maxl];
vector<int> e[maxl],b[maxl];
inline void prework()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
e[i].clear(),b[i].clear();
for(int i=1;i<=m;i++)
{
int u,v;scanf("%d%d",&u,&v);
e[u].push_back(v);
}
for(int i=1;i<=n;i++)
vis[i]=false;
queue<int> q;
q.push(1);d[1]=0;vis[1]=true;
while(!q.empty())
{
int u=q.front();q.pop();b[d[u]].push_back(u);
for(int v:e[u])
if(!vis[v])
{
d[v]=d[u]+1;
q.push(v);vis[v]=true;
}
}
}
inline void mainwork()
{
for(int i=1;i<=n;i++)
ans[i]=d[i];
for(int i=n;i>=0;i--)
for(int u:b[i])
for(int v:e[u])
if(d[v]>d[u])
ans[u]=min(ans[u],ans[v]);
else
ans[u]=min(ans[u],d[v]);
}
inline void print()
{
for(int i=1;i<=n;i++)
printf("%d%c",ans[i]," \n"[i==n]);
}
int main()
{
int t=1;
scanf("%d",&t);
for(cas=1;cas<=t;cas++)
{
prework();
mainwork();
print();
}
return 0;
}
相關文章
- moving window baseline
- 【譯】 Types are moving to the right
- 理解滑動平均(exponential moving average)
- Moving Tables(貪心演算法)演算法
- [轉帖]Moving the JDK to a Two Year LTS CadenceJDK
- Challenges preventing us moving to 64 bit transaction id (XID)?
- capital許可監控工具API
- 檢查Capital許可狀態API
- capital許可使用報告分析API
- Capital許可證管理最佳實踐API
- vim 使用者手冊第三章 moving around
- Space Capital:地理空間情報手冊報告API
- 乾貨 | 呆滯庫存(Slow moving)產生原因分析和預防措施
- Arch Street Capital Advisors進軍基礎設施領域API
- Space Capital:2020年Q2太空投資報告API
- Ether Capital股票上市加拿大證券交易所交易API
- Capital One是如何踏上雲遷移的不歸之路?API
- 5G Capital一年,“首都標準”初現API
- Digi-Capital:2023年AR收入將超過700億美元API
- Space Capital:2024年Q2空間投資報告API
- 【每日一包0013】to-capital-case,to-constant-case,to-dot-caseAPI
- Digi-Capital:2019年全球AR/VR投資超41億美元APIVR
- Digi-Capital:2019年AR/VR投資超過40億美元APIVR
- Space Capital:2022年全球衛星通訊市場分析報告API
- Capital One應用區塊鏈協同認證系統專利API區塊鏈
- Mercom Capital:2023年儲能行業風險投資同比增長59%API行業
- Space Capital:2024年 第三季度太空投資報告API
- Space Capital:2023年第一季度太空投資報告API
- Digi-Capital:預測2024年全球AR / VR收入達到670億美元APIVR
- IHT獲得NEO Global Capital投資,目標打造房地產版的RippleAPI
- Condor Capital:2024年第二季度機器人報告API機器人
- Space Capital:2021年第四季度太空投資報告API
- Space Capital:2021年第二季度太空投資報告API
- Space Capital:2022年第四季度太空投資報告API
- Space Capital:2024年第一季度空間投資報告API
- 投資公司“Ether Capital”上市加拿大一家證券交易所API
- Space Capital:2022年第一季度空間投資報告API
- Space Capital:2021年第一季度空間投資報告API