AGC 030 B - Tree Burning 结论+枚举】的更多相关文章

考试 T2,是一个脑筋急转弯. 最暴力的贪心是每次先选左,再选右,再选左..... 然而这么做在一些情况下是错的. 但是,我们发现我们的选法一定是 $LLLLRLRLRLRLR$ 或 $RRRRLRLRLRLRLR$ (易证明) 所以直接枚举第一次向左/右走多少次,然后剩余的直接 $O(1)$ 计算即可.…
B - Tree Burning 链接 题意: 一个长度为L的环,有n个位置上有树,从0出发,每次选择一个方向(顺时针或者逆时针),一直走,直到走到一棵树的位置,烧掉这棵树,重复这个过程,直到没有树.求最多走多少距离. 分析: 最优一定是LLLRLRLRL……类似这样的,于是枚举每个点,计算答案. 代码: #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #in…
题目链接 \(Description\) 有一个长为\(L\)的环,上面有\(n\)棵树,坐标分别为\(a_i\).初始时在原点. 每次你可以选择顺时针或逆时针走到第一棵没有被烧掉的树,停在这个位置,然后烧掉这棵树.重复这一过程直到所有树都被烧掉. 求走的总路程最多可以是多少. \(n\leq2\times10^5,\ a_i,L\leq10^9\). \(Solution\) 真的菜啊QAQ 当时连这个都不会 记顺时针走一次为\(L\),逆时针走一次为\(R\). 初步想法是\(LRLRLR.…
题面 略 BZOJ 传送门 分析 具体分析见 dalao博客 妙就妙在当i<x,j<xi<x,j<xi<x,j<x时,(i,j)(i,j)(i,j) ^ (i,x)(i,x)(i,x) ^ (i,j+x)=0(i,j+x)=0(i,j+x)=0 那么就枚举第xxx行的一半,然后就能得到第xxx整行.因为只要满足上面的结论就一定存在可行方案,所以111~(x−1)(x-1)(x−1)的每一行的选择互不影响,所以对于 i:1i:1i:1~(x−1)(x-1)(x−1)每一行…
题目链接 https://atcoder.jp/contests/agc030/tasks/agc030_b 题解 细节好题.. 首先假设第一步往右走,那么可以发现当拐弯的次数一定时路径是唯一的 于是可以枚举这个值 然后很烦的是枚举之后要分奇偶讨论.. 最后再翻过来做一遍处理第一步往左走就行了 时间复杂度\(O(n)\) 代码 #include<cstdio> #include<cstdlib> #include<iostream> #include<algori…
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…
第一次套刷AtCoder 体验良好 传送门 Poisonous Cookies cout<<b+min(c,a+b+); Tree Burning 难度跨度有点大啊 可以证明当第一次转向之后,接下来每次的方向都和前一次相反 因为转向后再往相同方向走一定不如初始就往该方向走然后转两次向 枚举初始往哪个方向走以及走几步,前缀和优化即可 #include<ctime> #include<cmath> #include<cstdio> #include<cst…
老久没更了,冬令营也延期了(延期后岂不是志愿者得上学了?) 最近把之前欠了好久的债,诸如FFT和Matrix-Tree等的搞清楚了(啊我承认之前只会用,没有理解证明--),FFT老多人写,而MatrixTree没人证我就写一下吧-- Matrix Tree结论 Matrix Tree的结论网上可多,大概一条主要的就是,图中生成树的数量等于 \(V-E\) 的任一余子式,其中: \(V\) 为对角阵,第 \(i\) 个元素为点 \(i\) 的度数 \(E\) 为对称阵,对角线为零且 \(E_{i,…
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…
JAVA代码 public enum EnumTest { HELLO,WORLD } 字节码 public final class EnumTest extends java.lang.Enum<EnumTest> { public static final EnumTest HELLO; public static final EnumTest WORLD; public static EnumTest[] values(); Code: 0: getstatic #1 // Field…