習題日常第二十四練

2021-10-09 03:39:02 字數 2881 閱讀 9684

這個題有點繞。我們可以通過從終點出發,將已知邊反向,用bfs搜,找到可以直接到達終點的點。再通過對每個點遍歷,若這個點不能到終點,則反向後的所有與它相連點都不能到。但是注意,此時刪點有後效性,需要用兩個陣列完成。最後在所有合法點上再跑一遍迪傑斯特拉演算法求最短路即可。

#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;

}

這個題用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 n,m,a[20]

=,ans=0;

void

dfs(ll pos,ll len,ll zi,ll sum)

return;}

intmain()

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,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 ...

冥想第二十四天

還有乙個需要提高的地方就是 慢一點,以往自己對成功和只是追求的太急切。一急切就亂了節奏,適當的急切是必要的 放輕鬆全身都是最舒服的狀態。平靜的內心讓自己能面對生活的困難。感謝自己,感謝家人,感謝朋友,感謝一切。不責怪自己,一天比一天進步就好。慢慢來。下午和客戶積極的溝通,全身心的投入,發現一點也不困...