軟體包管理器

2022-08-04 10:30:16 字數 1579 閱讀 6746

軟體的關係形成一棵樹,安裝某軟體前必須安裝它依賴的軟體,解除安裝某軟體時必須解除安裝被它依賴的軟體,求解除安裝或安裝某軟體會影響多少軟體的狀態。

#include using namespace std;

const int n=1e5+10;

int nxt[n<<1],to[n<<1],tot,head[n];

void add_edge(int x,int y)

int siz[n],fa[n],dep[n],son[n],top[n];

int seg[n<<2],sum[n<<2],rev[n<<2],lazy[n<<2];

int ans;

void dfs1(int u,int father)

}void dfs2(int u,int father)

for(int i=head[u];i;i=nxt[i]) }

void pushup(int k)

void build(int k,int l,int r)

int mid=l+r>>1;

build(k<<1,l,mid);build(k<<1|1,mid+1,r);

pushup(k);

}void add(int k,int l,int r,int v)

void pushdown(int k,int l,int r,int mid)

void change(int k,int l,int r,int x,int y,int val)

int mid=l+r>>1;

pushdown(k,l,r,mid);

if(x<=mid)change(k<<1,l,mid,x,y,val);

if(y>mid)change(k<<1|1,mid+1,r,x,y,val);

pushup(k);

}void query(int k,int l,int r,int x,int y)

int mid=l+r>>1;

pushdown(k,l,r,mid);

if(x<=mid)query(k<<1,l,mid,x,y);

if(y>mid)query(k<<1|1,mid+1,r,x,y);

}void ask(int x,int y)

void find(int x,int y)

int read()

while(ch>='0'&&ch<='9')

return res*w;

}void write(int x)

if(x>9)write(x/10);

putchar(x%10+'0');

}void writeln(int x)

int main()

dfs1(1,0);

seg[0]=seg[1]=rev[1]=top[1]=1;

dfs2(1,0);

build(1,1,seg[0]);

int q=read();

while(q--)

else

/* for(int i=1;i<=n;i++)

*/} return 0;

}

軟體包管理器

不舔題解 然而被prey安利了子樹修改用dfs序,碼的樹鏈剖分才是親生的樹鏈剖分 豪情壯志臉 明明 樹鏈剖分 四個字那麼長維薩不用縮寫呢 因為並不卵知縮寫到底是樹剖還是鏈剖啊啊啊 uoj128 bzoj4196 1 include2 include3 using namespace std 45 d...

YUM軟體包管理器

yum在redhat下需要註冊redhat官網的訂閱賬號,並購買其訂閱服務才可以進行更行的,而對於fedora和ceontos等系統則是可以免費使用的,所以如果是中小型企業中的linux伺服器建議使用centos系統,可以減少企業在伺服器上的開銷。格式 yum options command pac...

linux rpm軟體包管理器

rpm包 的 查詢命令 選項英文 含義 q query 查詢 a all所有 iinfo 資訊 l list 顯示所有相關檔案 ffile 檔案,顯示檔案對應 rpm 包 rpm qa grep rpm qa less rpm qi 軟體全包名rpm ql 軟體全包名rpm qf 檔案的全路徑rpm...