明明這麼簡單的題目調的我死去活來的。。
題意:給你一棵樹,樹上的點都有乙個顏色的屬性,然後,問你找一條路徑,能經過所有顏色,有多少種方案。
分析:xjb容斥一波,暴力列舉那些點不被選擇,然後dfs一遍,求出當前圖的路徑數量,乘以容斥係數累加起來就好了。
#include
#include
#include
#include
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fd(i,a,b) for(int i=a;i>=b;i--)
using
namespace
std;
int n,m,k;
typedef
long
long ll;
const
int n=3e5+5;
int head[n],next[n],go[n],tot;
int bz[15];
int col[n],vis[50005];
ll ans=0,cnt;
inline
int dfs1(int x)
}}inline
void dfs(int x,int bo,int num)
if (num%2==0)
ans+=sum;
else ans-=sum;
}}inline
void add(int x,int y)
int main()
k=1;
ans=0;
dfs(1,0,0);
bz[1]=1;
dfs(1,1,1);
//dfs(1,1,1);
printf("%lld\n",ans);
}
GDOI2017模擬4 11總結
昨天csdn好像炸了,然後就沒有寫總結。總結還是要每天更新的,畢竟只有兩個星期就要gdoi了,要好好從總結裡提煉一些短期內有用的東西。第一題是sb題,很快就掃過了,然後看完剩下的題後,感覺最後一題不可做,然後t3是裸的點分治,但是感覺時間複雜度過不去,就想了兩種分治方法,結合起來用好像很快的樣子,t...
GDOI2017模擬8 12 躲藏
給出乙個n m的網格圖,圖中有一些障礙節點。現在有a個男生和b個女生,還有乙個小標。男生要和女生配對,小標可以和任何乙個人配對。每一對cp 霧 只能待在乙個點。乙個點只能有一對cp。現在給出a b 1個人的初始座標,和他們的移動速度 即移動到4相鄰格仔所需的時間 所有人同時移動,求完成配對的最小時間...
GDOI2017模擬8 12 新車
平面上有乙個數軸,e點為目標點。你現在要開 車從w前往e,每移動1格需要1l油。你的油箱容量為s,初始時裝滿了98 汽油。數軸上有n個加油站,每個加油站提供98 95 92 中的一種。到了加油站你可以選擇加任意數量的油,你的油箱是茲瓷所有油甚至混合油的。你認為98 最吼,95 其次,92 跑的最慢。...