這個題有點繞。我們可以通過從終點出發,將已知邊反向,用bfs搜,找到可以直接到達終點的點。再通過對每個點遍歷,若這個點不能到終點,則反向後的所有與它相連點都不能到。但是注意,此時刪點有後效性,需要用兩個陣列完成。最後在所有合法點上再跑一遍迪傑斯特拉演算法求最短路即可。
這個題用dfs搜,對於乙個數,可以拆成素數的冪次之積,約數個數則為(冪次+1)之積。但是注意資料特別大,需要及時判斷是否超過已知數字大小(用除法判)。**如下。#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long int
const ll mod=
998244353
;using
namespace std;
ll b[
100010
],a[
100010
],vis[
100010
],pis[
100010
],dis1[
100010
],dis[
100010
],tot=
0,pot=0;
priority_queue
>p;
deque q;
struct node
tz[800010
],pz[
800010];
void
add1
(ll x,ll y)
void
add2
(ll x,ll y)
intmain()
for(i=
0;icin>>s>>t;
q.push_back
(t);
dis1[t]=0
;while
(!q.
empty()
)}}memcpy
(vis,dis1,
sizeof
(dis1));
for(i=
1;i<=n;i++)}
q.push_back
(s);
dis[s]=0
;while
(!q.
empty()
)}}if
(dis[t]
==1e12
) cout<<
"-1"
;else
cout<;return0;
}
這個題比較簡單,思路非常的清晰。先用並查集看有哪些人與小d認識,把認識的人的資訊存入陣列或者結構體中,然後用乙個簡單的揹包dp就解決了。**如下。#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long int
const ll mod=
998244353
;using
namespace std;
ll n,m,a[20]
=,ans=0;
void
dfs(ll pos,ll len,ll zi,ll sum)
return;}
intmain()
return0;
}
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long int
const ll mod=
998244353
;using
namespace std;
ll n,m,fa[
100010
],c,a[
100010
],b[
100010
],dp[
100010];
struct node
p[100010];
ll fin
(ll x)
void
jia(ll x,ll y)
}bool
pan(ll x,ll y)
intmain()
for(i=
0;i) j=0;
memset
(dp,0,
sizeof
(dp));
for(i=
2;i<=n;i++)}
m=j;
for(i=
0;i<=c;i++)}
for(i=
1;icout<<}return0;
}
習題日常第二十五練
這個題是線段樹的基礎綜合運用題。對於細節要求特別高,需要對每乙個標記以及互相之間的關係相當清晰。大體的思路就是連續的0或者1只可能出現在左面或者最右面或者序列中間,用線段是進行維護即可。具體見 include include include include include include inclu...
第二十四周學習筆記
自監督關鍵點檢測和特徵描述子生成 自監督訓練方法 使用全卷積神經網路架構,乙個共享的encoder對進行編碼,兩個decoder分別檢測關鍵點和生成描述子 outperform lift in almost all metrics quantitatively scores strongly in ...
冥想第二十四天
還有乙個需要提高的地方就是 慢一點,以往自己對成功和只是追求的太急切。一急切就亂了節奏,適當的急切是必要的 放輕鬆全身都是最舒服的狀態。平靜的內心讓自己能面對生活的困難。感謝自己,感謝家人,感謝朋友,感謝一切。不責怪自己,一天比一天進步就好。慢慢來。下午和客戶積極的溝通,全身心的投入,發現一點也不困...