看到這個$3^i$就覺得很奇怪的樣子...為什麼一定要是$3^i$...而且不能重複使用...
不能重複使用就代表不會產生進製,那麼一定是若干個$3^i$相加減的式子...
仔細觀察,我們發現這是乙個最短路徑的問題,每個技能就是一條有向邊,考慮要求能夠用其他技能組合出來當前的技能,也就是說找到一條路徑使得從當前技能的$a$出發不經過當前技能的那條邊回到當前技能的$b$...這樣就是說我們需要求出從每個點出發走向每個點的最短路和次短路,要求最短路和次短路的第一條邊不相同...就可得到答案了...
有乙個需要特別注意的點就是出現$a_i=b_i$的情況要特判一下...
#include#include#include#include#include//by neighthornby neighthorn#define inf 0x3f3f3f3f
using namespace std;
const int maxn=1600+5,maxm=20000+5;
int n,m,a[maxm],b[maxm],c[maxm],ans[maxm],del[maxm];
int cnt,w[maxm],hd[maxn],to[maxm],nxt[maxm],vis[maxn];
int dis[maxn][2],from[maxn][2];
inline void add(int x,int y,int s)
inline void spfa(int x)
while(!q.empty())
} for(int i=hd[x];i!=-1;i=nxt[i])
ans[i]=from[to[i]][0]==i?dis[to[i]][1]:dis[to[i]][0];
}signed main(void)
某道 EGF 題目
有 n m k 盞燈,各有不同的編號與開關。其中有 n 盞亮著的,m 盞暗燈,k 棧壞的燈。亮燈按下開關將變成暗燈,暗燈按下開關將變成亮燈,壞燈無論如何按開關都是暗燈。求操作嚴格 t 次後,所有燈都是暗燈的方案數。結果對 10 9 7 取模。n,m leq 5 times 10 3,t,k leq ...
某比賽的某些題目
這裡我只寫一些認為應該寫報告的題目。像那種5分鐘敲出 的題就不寫了。感謝 xianbin5組織這場比賽,orz 題目1 給一些資料,建議一顆排序二叉樹。然後找到某個節點的祖父節點 父節點的父節點 n 50000 題解 描述很簡單,而且可以很簡單的敲出來。但是注意資料量。所以這裡要用到特殊的東西。乙個...
一道this的題目
請問下面 中的this值指向的是全域性物件還是物件o?function f return c var o new f console.log o.constructor.name object這裡的this指向全域性物件,因為 c call without new。這裡用正常的方式呼叫的函式 c 所...