摘要:
对于这些运算,我们考虑一个问题。对于叶子取反,因为每次只对一个叶子节点操作,一般来说,他的父亲节点会反转,只有存在以下情况不会反转 1.or运算且有一个儿子是1,那么另一个儿子无论怎么操作都是1 2.and运算,如果一个儿子是0,那么另一个儿子无论怎么操作都是不变化。 #include<bits/s 阅读全文
摘要:
做的时候想到拆点,但是没想到维护关系的方法。 这题我们考虑一个字符串分成原串和相反串,用i和i+n表示,我们要做的是维护所有串的相对关系,也就是选了某些串就要选其他串 考虑任意两个字符串i,j之间的关系,如果他们不反转和一个反转都是满足要求的,那么就不用约束关系 如果不反转和反装都不能满足要求,那么 阅读全文
摘要:
A 映射一下 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pll; const int N=4e5+10; const int inf=1e9; int a[N]; 阅读全文
摘要:
本题如果去掉怪物选项就是双关键字最短路。 问题是现在多了一个怪物选项,因为这个怪物选项被杀死后他不会复生,因此我们不能重复计算这个值的答案。 所以对于每条过来的路,前面一个点遇到的怪物的后面的点就不用计算了,也就是去重。 根据这个思路,我们可以得到我们想要干的是当枚举到当前点,我们希望计算出他的co 阅读全文