題目描述:
bz題解:
(1)高消。
直接列異或方程組高消即可。
**:
#include#include高消(2)樹形$dp$。#include
#include
using
namespace
std;
const
int n = 105
;template
inline
void read(t&x)
while(ch>='
0'&&ch<='9')
x = f*c;
}int
n,a[n][n];
void
gs()
}int
ans;
void dfs(int u,int
now)
if(a[u][u])dfs(u-1,now+a[u][n+1
]);
else
}int
main()
for(int i=1;i<=n;i++)
a[i][i]=a[i][n+1]=1
; gs();
ans = 0x3f3f3f3f
; dfs(n,0);
printf(
"%d\n
",ans);
}return0;
}
設狀態$dp[x][0/1][0/1]$表示:點$x$按/不按,子樹內其他節點全亮,自己亮/不亮的最小代價。
**:
#include#includedp#include
#include
using
namespace
std;
const
int n = 105
;const
int inf = 0x3f3f3f3f
;template
inline
void read(t&x)
while(ch>='
0'&&ch<='9')
x = f*c;
}int
n,hed[n],cnt;
struct
ege[
2*n];
void ae(int f,int
t)int dp[n][2][2
];void dfs(int u,intf)}
intmain()
dfs(
1,0);
printf(
"%d\n
",min(dp[1][1][1],dp[1][0][1
]));
}return0;
}
bzoj2466 中山市選2009 樹
同上一題。應該可以樹形dp,然而我不會。include include include include includeusing namespace std define rep i,s,t for int i s i t i define dwn i,s,t for int i s i t i d...
BZOJ 2466 中山市選2009 樹
題解 n 100 急忙叫隊友是不是暴力題啊.qko 好像我會o n 我 好巧,我也會o n 的,那就莽吧 四個狀態 dp1 x 0 表示不摁且這個節點不亮的個數 dp1 x 1 表示不摁且這個節點亮的個數 dp2 x 0 表示摁且這個節點不亮的個數 dp2 x 1 表示摁且這個節點亮的個數 incl...
2466 中山市選2009 樹
題目鏈結 題目大意 給定一棵樹,每個點有乙個0 1的權,一次操作可以使得x和x的直接鄰居點權 1,初始均為0,求最少多少次操作可以全部變成1 題解 樹形dp可以o n 解決 但這不重要 考慮對每個點列出乙個xor方程,這樣就可以高斯消元了 但是有可能有自由元 暴力列舉代入計算 我的收穫 gauss暴...