随笔分类 -  B-搜索=====================

摘要:Link: 传送门 A: 按值大小插入后用树状数组统计两边个数 #include <bits/stdc++.h> using namespace std; #define X first #define Y second #define pb push_back typedef double db; 阅读全文
posted @ 2018-09-13 09:13 NewErA 阅读(204) 评论(0) 推荐(0)
摘要:Link: Codeforces #192 传送门 前两天由于食物中毒现在还要每天挂一天的水 只好晚上回来随便找套题做做找找感觉了o(╯□╰)o A: 看到直接大力模拟了 但有一个更简便的方法,复杂度为$O(被禁止的格子数)$ 如果将每个黑格子上下左右四条线都染上色 可以发现一个格子最终无法被“净化 阅读全文
posted @ 2018-08-16 19:24 NewErA 阅读(198) 评论(0) 推荐(0)
摘要:Link: ARC061 传送门 C: 暴力$dfs$就好了 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll n,res=0; int dgt[15],cnt; void dfs(int dep,ll su 阅读全文
posted @ 2018-07-19 09:17 NewErA 阅读(166) 评论(0) 推荐(0)
摘要:Link: ARC063 传送门 C: 将每种颜色的连续出现称为一段,寻找总段数即可 #include <bits/stdc++.h> using namespace std; int cnt=0,len; char s[100005]; int main() { scanf("%s",s+1);l 阅读全文
posted @ 2018-07-10 21:12 NewErA 阅读(228) 评论(0) 推荐(0)
摘要:Link: BZOJ 1053 传送门 Solution: 关键要看出几个性质: 1、虽然$2e9$很大,但最多也只能由前12个素数组成 2、对于每一个“反素数”,随着质因数的增大,系数必然减小 (否则可将两质因数交换,得到的值必然更小) 接下来直接$dfs$即可 Code: 阅读全文
posted @ 2018-07-01 17:14 NewErA 阅读(163) 评论(0) 推荐(0)
摘要:Link: BZOJ 2547 传送门 Solution: 很容易通过解可行性的单调性想到二分答案,接下来考虑如何验证解 发现一个很奇妙的条件:步兵和骑兵的个数相同 因此交换位置时不用考虑可行性,保证能完成交换(口胡证明一下就行了) 于是可以将每一次交换位置想成转变职业(不用考虑能否交换) 每一个士 阅读全文
posted @ 2018-06-05 21:54 NewErA 阅读(248) 评论(0) 推荐(0)
摘要:Link: BZOJ 1804 传送门 Solution: 不容易啊,第一道完全自己A掉的IOI题目..... 算法思想其实很简单: 模拟缩减的过程即可 将每条边转为2条有向边,每次找到最左边的边,沿着最外圈走一周,并将走过的边打上$vis$标记 最后那些正向和反向都被走过的边就是能留下的边(最后形 阅读全文
posted @ 2018-06-05 20:51 NewErA 阅读(295) 评论(0) 推荐(0)
摘要:Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1193 Solution: 能立刻看出贪心算法,但发现在小数据时明显不适用 于是我们采取大数据时贪心,到一定范围时爆搜的算法 (似乎有点像AlphaGo的策略?) 在数据大于10时,我们每次 阅读全文
posted @ 2018-05-26 22:51 NewErA 阅读(297) 评论(0) 推荐(0)