摘要:
这道题是一个状压动归题。子集生成,每一位表示是否选择了第$i$个数。 转移:$f[S] = \sum f[S-\{x\}]$且$x\in S$,当该子集所有元素的和为$b_1$或$b_2$时不转移。 初始化:$f[\{\}]=1$,其他为$0$。 目标:$f[全集]$。 注意常数即可。 阅读全文
摘要:
题目传送门 分析: 这道题是跟$Tarjan$有关的一题。 如果某一个点双连通分量中没有割顶,则这个点双的答案为$2$。因为塌了任何一个点,其他任意两点仍然连通。防止塌的点就是救援口,所以要设置$2$个。 如果某一个点双连通分量中有一个割顶,说明至少有两个点双公用这一个割顶。所以必须保证每个点双中除 阅读全文
摘要:
这应该是$NOI2014$最简单的一题。 首先这题有$AND$、$OR$、$XOR$三个运算,跟二进制有关。 我们逐位看。 忽略$\leq m$的限制,在开始时每一位都可以是$0$或$1$,而不同的选择到最后的结果互不影响,所以共有四种组合。 想让结果更大,也就是想让结果尽可能多变成$1$。 加上$ 阅读全文
摘要:
题目传送门 一道分块的好题。 这题分块后,对于两种操作: ·让区间[l,r]+=w; ·查询区间[l,r]>=c的数的个数 分块后,我们将每一块中的数排序,这样每一块中的查询可以通过二分完成。 对于区间的修改,如果覆盖了整块,通过标签的修改满足题意;如果只是块中的一部分,暴力修改原数组再重新排序维护 阅读全文
摘要:
题目传送门 题意:给定一张无向图,求每个点被封锁之后有多少个有序点对$(x,y)(x!=y,1<=x,y<=n)$满足$x$无法到达$y$。 题目强调了所有村庄都相互可达。 首先会想到割顶,因为如果删去割顶,就会导致图的连通块增加。反之不变。 不是割顶答案就应该是$(n-1)*2$。因为连通块没有增 阅读全文
摘要:
题目传送门 这道题是一个二分图匹配问题。如果第$i$件装备的属性值为$j$,将装备$i$连边到属性值$j$(注意装备结点$≠$属性值结点)。 然后从$1$到$10000$跑二分图匹配,判断该点是否能被匹配。直到不能匹配为止。 阅读全文
摘要:
1 #include 2 3 using namespace std; 4 5 #define re register 6 #define rep(i, a, b) for (re int i = a; i = b; --i) 8 #define maxx(a, b) a = max(a, b); 9 #define minn(a, b) a = min(a, b); 10... 阅读全文
摘要:
题目传送门 这道题事实上解并不多,所以我们倒过来从$7$开始搜索。主过程中为广搜,而函数深搜进行拓展。其实是对于前导$0$删去的情况也要考虑,否则只有$20pts$。 最后别忘了判断$7$在不在$[A,B]$。 这道题如果要打表也可以,就是表会很大。 阅读全文
摘要:
题目传送门 这道题是一道$DP$题,思维难度比较大。 题意:先定义波形数组:满足当$i$全为奇数或偶数时,$a[i]>a[i-1]$且$a[i]>a[i+1]$。 求$n$的全排列中有多少个符合波形数组。 想法是:如果第$i$个数是山峰,下一个肯定是山谷,也就是说要从剩下的且比第$i$个数小的数中挑 阅读全文
摘要:
题目传送门 这道题的思想是$DP$。 首先通过简单推理发现:$(a|b)-(a\&b)=a\hat{} b$。[$(a\ and\ b) - (a\ or\ b) = a\ xor\ b$] 发现对于第$i$个同学的饭菜的选择受到2方面影响: 是否在前面的某个没有选择的同学$>B_i$的位置; 上一 阅读全文