gta5线下办公室网站正在建设哈尔滨餐饮加盟网站建设
2026/4/18 8:48:22 网站建设 项目流程
gta5线下办公室网站正在建设,哈尔滨餐饮加盟网站建设,wordpress 国内模板,wordpress炫酷主题D https://codeforces.com/contest/2176/problem/D 哎哎#xff0c;经典的赛后过题。分享D的另一种不同的思路。 Hint1 首先可以观察到除了单独一条边成斐波那契数列的情况#xff0c;其它更长的数列情况中#xff0c;除了作为开头的两个点#xff0c;其它的点都是严格单调…D https://codeforces.com/contest/2176/problem/D哎哎经典的赛后过题。分享D的另一种不同的思路。Hint1 首先可以观察到除了单独一条边成斐波那契数列的情况其它更长的数列情况中除了作为开头的两个点其它的点都是严格单调递增的。根据这个这个观察我们可以把图上原来{u,v}(ta[u]ta[v])的边删除。这样就变成有向无环图了。再运用dfs回溯dp(可以参考代码理解)最后再加上单独一条边成斐波那契数列的情况就可以了。附上代码/* by 01022.hk - online tools website : 01022.hk/zh/regexdso.html */ int n,m;cinnm; int ansm; vvi g(n1),g1(n1); vi din(n1); vi ta(n1); for (int i1;in;i) cinta[i]; for (int i1;im;i) { int u,v;cinuv; g[u].push_back(v); } for (int i1;in;i) { vi tc; for (auto v:g[i]) { if(ta[v]ta[i]) { tc.push_back(v); } } g1[i]g[i]; g[i]tc; } for (int i1;in;i) { auto tvg[i]; for (auto v:tv) { din[v]; } } vi dp(n1); vi vis(n1); vectormapint,int cnt(n1); auto dfs[](auto self,int u)-void { vis[u]1; // coutuendl; for (auto v:g[u]) { din[v]--; if(vis[v]0) self(self,v); cnt[u][ta[v]-ta[u]](cnt[u][ta[v]-ta[u]]cnt[v][ta[u]]1)%mod; } }; for (int i1;in;i) { if(!din[i]vis[i]0) { // coutiendl; dfs(dfs,i); } } for (int i1;in;i) { for (auto v:g1[i]) { ans(anscnt[v][ta[i]])%mod; } // couti ansendl; } coutansendl;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询