AtCoder AGC030B Tree Burning】的更多相关文章

题目链接 https://atcoder.jp/contests/agc030/tasks/agc030_b 题解 细节好题.. 首先假设第一步往右走,那么可以发现当拐弯的次数一定时路径是唯一的 于是可以枚举这个值 然后很烦的是枚举之后要分奇偶讨论.. 最后再翻过来做一遍处理第一步往左走就行了 时间复杂度\(O(n)\) 代码 #include<cstdio> #include<cstdlib> #include<iostream> #include<algori…
Tree Burning 题目链接:https://atcoder.jp/contests/agc030/tasks/agc030_b 数据范围:略. 题解: 开始以为是左右左右这样,发现过不去样例. 看了样例之后,觉得是:看左边右边哪个比较长,走长的那个. 发现过了第一个样例,过不去第二个了.... 看了看第二个样例,又画了画第三个样例,加上枫哥在给我这道题之前的提示:你要大胆猜啊... 发现:一定是先往一个方向连续走几个,然后左右横跳. 这个就对了,用数学归纳法容易证明. 所以我们只需要开始…
B - Tree Burning 链接 题意: 一个长度为L的环,有n个位置上有树,从0出发,每次选择一个方向(顺时针或者逆时针),一直走,直到走到一棵树的位置,烧掉这棵树,重复这个过程,直到没有树.求最多走多少距离. 分析: 最优一定是LLLRLRLRL……类似这样的,于是枚举每个点,计算答案. 代码: #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #in…
Problem Statement Aoki loves numerical sequences and trees. One day, Takahashi gave him an integer sequence of length N, a1,a2,…,aN, which made him want to construct a tree. Aoki wants to construct a tree with N vertices numbered 1 through N, such th…
题目链接 \(Description\) 有一个长为\(L\)的环,上面有\(n\)棵树,坐标分别为\(a_i\).初始时在原点. 每次你可以选择顺时针或逆时针走到第一棵没有被烧掉的树,停在这个位置,然后烧掉这棵树.重复这一过程直到所有树都被烧掉. 求走的总路程最多可以是多少. \(n\leq2\times10^5,\ a_i,L\leq10^9\). \(Solution\) 真的菜啊QAQ 当时连这个都不会 记顺时针走一次为\(L\),逆时针走一次为\(R\). 初步想法是\(LRLRLR.…
考试 T2,是一个脑筋急转弯. 最暴力的贪心是每次先选左,再选右,再选左..... 然而这么做在一些情况下是错的. 但是,我们发现我们的选法一定是 $LLLLRLRLRLRLR$ 或 $RRRRLRLRLRLRLR$ (易证明) 所以直接枚举第一次向左/右走多少次,然后剩余的直接 $O(1)$ 计算即可.…
第一次套刷AtCoder 体验良好 传送门 Poisonous Cookies cout<<b+min(c,a+b+); Tree Burning 难度跨度有点大啊 可以证明当第一次转向之后,接下来每次的方向都和前一次相反 因为转向后再往相同方向走一定不如初始就往该方向走然后转两次向 枚举初始往哪个方向走以及走几步,前缀和优化即可 #include<ctime> #include<cmath> #include<cstdio> #include<cst…
A - Poisonous Cookies 有毒还吃,有毒吧 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('\n') #define MAXN 100005 #define e…
A - Poisonous Cookies 签到. #include <bits/stdc++.h> using namespace std; #define ll long long ll a, b, c; int main() { while (scanf("%lld%lld%lld", &a, &b, &c) != EOF) { ) printf("%lld\n", b + c); ); } ; } B - Tree Bur…
1. 3721 Smuggling Marbles 大意: 给定$n+1$节点树, $0$为根节点, 初始在一些节点放一个石子, 然后按顺序进行如下操作. 若$0$节点有石子, 则移入盒子 所有石子移向父亲节点 把所有不少于$2$个石子的节点的石子丢掉 若树上还有石子,则返回第一步 对于所有$2^{n+1}$种初始放石子的方案, 求出最后盒子中石子总数之和. 长链剖分, 这道以后再写 2. 3727 Prefix-free Game 两个串$s,t$合法要满足 $s$不为$t$的前缀且$t$不为…