[USACO17DEC] Barn Painting】的更多相关文章

题目描述 Farmer John has a large farm with NN barns (1 \le N \le 10^51≤N≤105 ), some of which are already painted and some not yet painted. Farmer John wants to paint these remaining barns so that all the barns are painted, but he only has three paint co…
题目链接 Solution 比较简单的树形 \(dp\) . \(f[i][j]\) 代表 \(i\) 为根的子树 ,\(i\) 涂 \(j\) 号颜色的方案数. 转移很显然 : \[f[i][1]=\prod(f[t][2]+f[t][3])\] 其中 \(k\) 代表它的子节点. 其他两种颜色以此类推. 但需要注意的是对于颜色固定的点,除固定的颜色外,其他两种颜色的方案要赋为 \(0\) . PS : 要开 longlong ,以及还要 mod 1000000007 . Code #incl…
设\(f[i][j]\)为\(i\)子树,当\(i\)为\(j\)时的方案数 #include <bits/stdc++.h> using namespace std; #define int long long const int N = 1000005; const int mod = 1e+9+7; vector <int> g[N]; int vis[N],n,m,t1,t2,f[N][4],c[N]; void dfs(int p) { vis[p]=1; int fla…
数组越界那个RE+WA的姹紫嫣红的... 乘法原理求种类数,类似于没有上司的舞会. #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define R(a,b,c) for(register int a = (b); a <= (c); ++ a) #define nR(a,b,c) for(regi…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5141 [算法] 树形DP 时间复杂度 : O(N) [代码] #include<bits/stdc++.h> using namespace std; typedef long long LL; ; ; ; struct edge { int to , nxt; } e[MAXN << ]; int n , k , tot; int color[MAXN] , hea…
P2324 [SCOI2005]骑士精神 CF724B Batch Sort CF460C Present CF482A Diverse Permutation CF425A Sereja and Swaps CF1187C Vasya And Array P3419 [POI2005]SAM-Toy Cars CF196C Paint Tree *Loj #6560 小奇取石子 *CodeChef - CLPERM POJ2689. Prime Distance P1792 [国家集训队]种树…
2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fallen Lord(sort(a+1,a+1+n,greater<int>()); 真好用) P4161 [SCOI2009]游戏 P1707 刷题比赛 2021-10-12 CF1573A Countdown P2717 寒假作业 P7868 [COCI2015-2016#2] VUDU P1660…
最近几天学了一下树形\(dp\) 其实早就学过了 来提高一下打开树形\(dp\)的姿势. 1.没有上司的晚会 我的人生第一道树形\(dp\),其实就是两种情况: \(dp[i][1]\)表示第i个人来时的最大人数 \(dp[i][0]\)表示第i个人不来时的最大人数 然后递归至叶子节点,倒推\(dp\) 状态转移方程: \[dp[root][1]+=dp[G[root][i]][0];\] \[dp[root][0]+=max(dp[G[root][i]][1],dp[G[root][i]][0…
题意 \(n\)个矩阵\((0\le x_1,y_1,x_2,y_2\le 200)\),可交,可以再放最多两个矩阵(这两个矩阵彼此不交),使得恰好被覆盖\(k\)次的位置最大.\(n,k\le 10^5\) 做法 考虑弱化版:只能放一个矩阵 先求出不添加时的状态,发现这时候有用的位置只有\(a_{i,j}=\{k,k-1\}\),故只将这个值映射到\(\{-1,1\}\),其他值映射到\(0\) 具体的,\(b_{i,j}=-[a_{i,j}=k]\),然后转换成了一个求最大子矩阵的问题 用经…
题目传送门 解题思路: 二维差分的板子题.题解传送门 AC代码: #include<iostream> #include<cstdio> using namespace std; ][],ans,a[][]; int main() { scanf("%d%d",&n,&k); ;i <= n; i++) { int x,y,xx,yy; scanf("%d%d%d%d",&x,&y,&xx,&am…