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;
}
相關文章
- 【譯】 Types are moving to the right
- Moving the tempdb database(SQL server)DatabaseSQLServer
- 理解滑動平均(exponential moving average)
- Moving Tables(貪心演算法)演算法
- [CareerCup] 9.2 Robot Moving 機器人移動機器人
- AWR 報告修改moving window 出錯分析
- [轉帖]Moving the JDK to a Two Year LTS CadenceJDK
- Challenges preventing us moving to 64 bit transaction id (XID)?
- capital許可監控工具API
- What to Expect When Moving From SAP Business Suite to SAP S/4 HANAUI
- Tier 1 Capital 一級資本API
- 檢查Capital許可狀態API
- capital許可使用報告分析API
- Capital許可證管理最佳實踐API
- 乾貨 | 呆滯庫存(Slow moving)產生原因分析和預防措施
- Space Capital:地理空間情報手冊報告API
- Kalaari Capital :印度科技公司創業者研究報告API創業
- Arton Capital:2015年護照通用度排行API
- Capital IQ:top 10最富有美國科技公司 思科居首API
- T.H.Capital維持攜程持有評級API
- 5G Capital一年,“首都標準”初現API
- Capital One是如何踏上雲遷移的不歸之路?API
- Ether Capital股票上市加拿大證券交易所交易API
- Codeforces 219D Choosing Capital for Treeland:Tree dpAPI
- T.H.Capital維持暢遊股票持有評級API
- T.H.Capital維持新東方買入評級API
- Digi-Capital:遊戲市場進入冰河世紀API遊戲
- UpHonest Capital:美國人工智慧投資分析報告(附下載)API人工智慧
- FirstMark Capital:2016年物聯網產業版圖API產業
- Arch Street Capital Advisors進軍基礎設施領域API
- JG Capital給予騰訊增持評級:目標價700港元API
- JG Capital重申攜程增持評級 目標價70美元API
- Space Capital:2024年Q2空間投資報告API
- Capital One應用區塊鏈協同認證系統專利API區塊鏈
- Space Capital:2020年Q2太空投資報告API
- 【每日一包0013】to-capital-case,to-constant-case,to-dot-caseAPI
- IHT獲得NEO Global Capital投資,目標打造房地產版的RippleAPI
- First Round Capital:10個詞概括創業者的2016年!API創業