dfs
ACkingdom
这个人很懒,什么都没有留下
展开
-
Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree(dfs)
题目链接思路:dfs讨论m和n−1之间的大小关系,再计算每条边的贡献次数排序。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+7;const int M=2e4+5;const double eps=1e-8;const int mod=998244353;const in原创 2020-08-23 00:39:58 · 168 阅读 · 0 评论 -
Codeforces Round #658 (Div. 2) D. Unmerge(dp,01背包)
题目链接思路:将每个数和他之后的比他小的数都分为一组,对分好的组进行01背包,看能否将组的总和变为n。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const double eps=1e-8;const int mod=1e9+7原创 2020-07-22 22:29:46 · 126 阅读 · 0 评论 -
Codeforces Round #656 (Div. 3) D. a-Good String(dfs,二分)
题目链接思路:dfs+二分遍历整个字符串,然后每次都跑整个区间来判断需要改变的字母的多少,取最小值。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+7;const double eps=1e-8;const int mod=1e9+7;原创 2020-07-19 23:05:38 · 142 阅读 · 0 评论 -
Codeforces #642 D. Constructing the Array(dfs,二分)
题目链接题意:给你一个全为零的数组,执行n次操作,第i次操作为:选取一个最大的全为零的子区间(相同长度时取左),将该区间的中间位置的数字变为i,问n次操作后的数组会变成什么样子。思路:取中间值然后每次缩小一半,很明显有二分的性质,所以我们用dfs来二分搜索该数组,搜索时用pair记录子区间长度和中间值,然后将按照搜索的子区间的长度排序,排序后的第i个就是第i次操作的位置,然后将位置不变填入i,然后输出。代码:#include<bits/stdc++.h>using namespac原创 2020-05-15 20:46:44 · 160 阅读 · 0 评论