图论---搜索
小松萘
厉害的人可真多啊
展开
-
CodeForces - 1093D Beautiful Graph (DFS染色)
留个教训T^T,a 和b忘记清零改了半天const ll mod=998244353;ll qpow(ll a,ll b)//a^b//快速幂{ if(b==0) return 1; a%=mod; ll ans=1,temp=a; while(b) { if(b&1) ans=(ans*temp)%mod; temp=(temp*temp)%m...原创 2020-03-20 20:21:16 · 126 阅读 · 0 评论 -
CodeForces - 1105D Kilani and the Game (多源BFS)
????♂️ ????♂️ ????♂️昨天没读懂题写了半天,,,题意:每个人每次可扩张的点是从当前占据点开始走s[ i ] 步可到达的所有点,每轮每个人依次扩张,问你最后每个人占据的格子有多少(1)多个起点,多源BFS(2)每次扩张的时候肯定从最外围(即上一次扩张走的剩余步数为0的点),所以我们对每个点除了坐标之外还要存下该点还能走几步int n,m,p,s[11],ans[11];char m...原创 2020-03-16 09:43:29 · 150 阅读 · 0 评论 -
CodeForces - 1141G Privatization of Roads in Treeland(树上染色)
????️♂️ ????️♂️ ????️♂️若没有坏点,则颜色数量是度数最多的点的度数,现在最多有k 个坏点,则颜色种类就是第k+1大度数的度,输入边的时候记录下每个边的id方便对边染色。int ans;vector<pair<int,int>>mp[MAXN];int col[MAXN];void dfs(int x,int f,int c){ for(auto...原创 2020-02-21 12:07:37 · 155 阅读 · 0 评论 -
CodeForces - 1307D Cow and Fields (路径转换,BFS)
???? ???? ????和上一场CF的E题一个套路i,假设x,y之间新添加一条边之后,1到n的最短路有三种情况:(1)1 ,n(不走这条边,即d1[ n ])(2)1,x,y,n(d1[ x ] + 1 + d2[ y ](3) 1,y,x,n(d1[ y ] + 1 + d2[ x ])做两次bfs求出d1d2,为了方便统计(只使用(2)情况),对v排序,然后维护一个后缀最大即可int n,m,k...原创 2020-02-18 15:22:35 · 167 阅读 · 0 评论 -
2020牛客寒假算法基础集训营6 B - 图(搜索,环处理)
???? ???? ????题目给出的图很特殊(然而本箬蒻并不会基环树)可以看出最长简单路径无非就一种情况:从某点开始走,直到遇见某个环,在环上转一圈。(1)没有环的话直接记忆化搜索即可。(2)环的处理:遇见环的时候定义某点为圆开始,然后把圆上的点的dp值全部换为圆的周长即可int to[MAXN],dp[MAXN],ist[MAXN],ring[MAXN];//是否是圆的开始void dfs(int ...原创 2020-02-16 17:10:03 · 179 阅读 · 0 评论 -
Codeforces Round #570 (Div. 3) E - Subsequences (easy version) (广搜)
???? ???? ????题意:从一个字符串中找到k个不重复的子序列,删除的字符数之和最小为多少最先想到的肯定是只删除一个,接着就是只删除两个。。。应该想到使用队列按顺序检验字符串,有点像那个在房子旁边安排人的题,那个也是从最靠近的部分开始贪心,还有就是string 中使用erase这个函数,如果不希望原字符串改变,一定要先把原字符串拷贝一下QAQsigned main(){ int n,k;cin&g...原创 2020-01-16 14:45:47 · 164 阅读 · 0 评论 -
Codeforces Round #611 (Div. 3) D - Christmas Trees(BFS)
???? ???? ????题意:现在已知圣诞树在x位置,求人的位置,使每个人到达距离他最近的树的距离之和最小安排人肯定从树旁边开始安排,树的距离为1的位置安排满之后继续安排下一层,因为线无线长,也没什么限制,就直接bfsmap<int, bool> vis;queue<pair<int, int>> q;vector<int> v;int main()...原创 2019-12-29 10:28:37 · 213 阅读 · 0 评论 -
Codeforces Round #606 (Div. 2) E - Two Fairs(DFS,反向思维)
题意:求点对中,满足要互达必须经过a,b两点的对数,图为无向连通图若(x,y)要满足互达必须经过(a,b),反过来想,a必须通过b点到达y点:满足a—>b—>y;b必须通过a点到达x点:满足b—>a—>x,无向图:x—>a—>b;连起来即为:x—>a—>b—>y;int vis[MAXN];vector<int>edge...原创 2019-12-18 22:26:42 · 166 阅读 · 0 评论