軟體的關係形成一棵樹,安裝某軟體前必須安裝它依賴的軟體,解除安裝某軟體時必須解除安裝被它依賴的軟體,求解除安裝或安裝某軟體會影響多少軟體的狀態。
#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...