摘要: P1414 又是毕业季II 把每个数的所有因数都枚举出来,假设因数为i,则让cnt[i]++。 根据选x+1个数的gcd小于等于选x个数的gcd for (int i = 1; i <= n; i++)//先枚举选几个人 { while (mx > 0 && cnt[mx] < i)//然后从最大的 阅读全文
posted @ 2021-04-27 22:43 Lecoww 阅读(102) 评论(0) 推荐(1) 编辑
摘要: 记得就更 P1378 油滴扩展 写的挺繁琐的,简单来说就是放长方形里放圆,这个圆的圆心已经确定了,半径慢慢扩展,直到碰到边框或者已放的任何一个圆停止,求总面积减去最大覆盖面积。 #include<bits/stdc++.h> using namespace std; #define ll long 阅读全文
posted @ 2021-04-25 22:19 Lecoww 阅读(60) 评论(1) 推荐(0) 编辑
摘要: 做法:记录每个点i向左与它最近的不互质的数j,从j+1到i是可以分成1块的。 对于每次询问,从r开始一直贪心往前跳,每跳一步ans++;但这样一步一步跳会T,需要去倍增优化。 #include<bits/stdc++.h> using namespace std; #define ll long l 阅读全文
posted @ 2021-04-22 21:14 Lecoww 阅读(122) 评论(0) 推荐(1) 编辑
摘要: 爆搜,按照题意来搜。。。 太难写了,当模拟写的,代码分成了很多块,长度比较难看。。。 #include<bits/stdc++.h> using namespace std; #define ll long long #define fastio ios::sync_with_stdio(false 阅读全文
posted @ 2021-04-18 22:07 Lecoww 阅读(245) 评论(0) 推荐(0) 编辑
摘要: B. Binary Tree 给你一棵树,两个人每次只能移走一颗子树,这个子树必须是满二叉树(叶子也行),第一个人先开始,谁不能操作谁就输了,问你谁能赢。 满二叉树是奇数个节点(\(2^x-1\)),那么每次都是移走奇数个点,判奇偶性就行了。 D. Defining Labels 进制转换,把给的数 阅读全文
posted @ 2021-04-14 20:50 Lecoww 阅读(100) 评论(2) 推荐(1) 编辑
摘要: 题意:给你一棵树,问你切掉某些边使得得到的所有子树的直径都小于等于$k$的方案数。(树的直径:树中最长的简单路径) 记$dp[i][j]$,表示以i为根的直径为j子树的答案方案数。对于每个节点$i$,一开始$dp[i][0]=1$(以$i$为根的直径为0的子树的方案数),之后对于与$i$相连的每棵子 阅读全文
posted @ 2021-04-09 09:35 Lecoww 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 👴大概是会简单的树形dp了 ①P1272 重建道路 给你一棵树,要你去切除一些边,每次操作可以切掉一条边,找到能切出大小为p的子树最小的操作次数。 以dp[x][from]表示在from这个点上,其子树大小为x(包括自己)的最小切割次数。 如果要切出一颗子树,一定要在这个点与父节点之间切一刀,但r 阅读全文
posted @ 2021-03-31 21:24 Lecoww 阅读(53) 评论(0) 推荐(0) 编辑
摘要: #C. Guessing the Greatest 交互题,给一个permutation,每次可以查询一个区间的第二大值,让你在20次以内找到permutation中的最大值。 做法:只要每次查询都包含全区间的第二大值,就能二分判断最大值在不在查询的区间里了 #include<bits/stdc++ 阅读全文
posted @ 2021-02-22 19:34 Lecoww 阅读(38) 评论(0) 推荐(0) 编辑
摘要: #C. Floor and Mod 令$⌊ab⌋=a % b=k$,易推导得:若$x$满足条件,则$x=kb+k$。直接去枚举$k$,去构造$b$能取值的区间$lb$和$rb$,\(ans+=rb-lb+1\)。 先构造左区间的$lb=k+1$,假设左区间合法;去构造右区间的$rb=b/k-1$,然 阅读全文
posted @ 2021-02-22 14:27 Lecoww 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个点,两两之间都有权为'a'或'b'的边,没有重边。你需要去找一条路径,使得路径组成的字符串是长度为$m$的回文串。 做法:由于只有a和b两种边权,所以: ①假设能找到一条边为(a,b,'a'or'b')和(b,a,'a'or'b'),则可以在这两点间反复横跳; ②如果没有这样一条边: 则 阅读全文
posted @ 2021-02-22 11:54 Lecoww 阅读(38) 评论(0) 推荐(0) 编辑