錯失AK良機的測試48T3 Walk

2022-03-16 13:57:25 字數 1639 閱讀 2232

圖論一般技巧新建虛點。

新建2^k個虛點。

四種轉移。普通點n,新點k。

n->n 1

n->k(自己的) 0

k->k 0

k->n 1

本題bfs,邊權為1,則最先掃到最優,要避免重複掃。

使虛點只用來更新一次,只入隊一次,從而避免重複考慮。

列舉子集:見小技巧標籤的部落格。

對於每個點列舉子集,(2^k)^2;

但是要是每個點只掃一次。

發現子集如果掃過,子集的子集一定掃過。

所以每次只考慮下一層子集,放到佇列裡即可。

o(n+m+2^k)

#include#define f(i,a,b) for(rg int i=a;i<=b;++i)

#define ll long long

#define rg register

#define il inline

#define pf(a) printf("%d ",a)

#define phn puts("")

using

namespace

std;

intread();

/*單向雙向

*/#define n 300010

#define m 1000010

#define id 2000010

intn,m,k,val[n],ok[id];

intto[m],fir[m],head[id],cnt;

il void add(int x,int y)

int dis[id],vis[id],id[1500010

],gx[id];

deque

q;il int max(int x,int y)

#define inp(x) q.push_front(x)

#define inb(x) q.push_back(x)

#define out() q.pop_front()

intmain()

rg intu,v,x;

f(i,

1,m)

memset(dis,-1,sizeof

(dis));

inb(

1);vis[1]=1;dis[1]=0

;

while(!q.empty())

}if(!vis[id[x=val[u]]])

if(!gx[x])

}for(rg int j=x;j;j-=j&-j)}}

}else

}for(rg int j=x;j;j-=j&-j)}}

}}

f(i,

1,n)printf("

%d\n

",dis[i]);

}il

intread()

/*g++ 1.cpp -g

./a.out

5 2

5 4 2 3 7

1 4

2 3*/

view code

技巧總結:

樹、圖:邊化點,點化邊,互化。

圖:建立虛點、拆點、源點匯點。

圖到樹:最小生成樹。

樹鏈:1、樹剖 2、倍增 (最終詢問可倍增下放)

測試詳解4 Web測試和App測試的區別

1 相容性測試的區別 在web端是相容瀏覽器,在應用端相容的是手機裝置而且相對應的相容性測試工具也不相同,web因為是測試相容瀏覽器,所以需要使用不同的瀏覽器進行相容性測試 常見的是相容ie6,ie8,鉻,火狐 如果是手機端,那麼就需要相容不同品牌,不同解析度,不同的android版本甚至不同作業系...

效能測試中的4個不可忽視的測試

效能基準測試 穩定性測試 併發測試 容量規劃測試。1 效能基準測試 效能基準測試,通常被稱為 performance benchmark test,是每次對外發布產品版本前 必須要完成的測試型別。效能基準測試,會基於固定的硬體環境和部署架構 比如專用的伺服器 固定的專用網路環 境 固定大小的集群規模...

Junit4測試套件的使用

測試套件就是組織測試類一起執行的 在測試套件中也可以新增其他的測試套件。和新增測試類一樣,直接在suiteclasses裡加入其他測試套件類的名稱就可以了。import static org.junit.assert.import org.junit.test import org.junit.ru...