VIrtuoso

两把多兰剑加个布甲鞋

导航

上一页 1 2 3 4 5 6 7 ··· 12 下一页

2019年5月5日 #

Forethought Future Cup - Elimination Round C 二分 + 交互(求树的直径)

摘要: 题意 一颗大小为n的树,每次可以询问两个集合,返回两个集合中的点的最大距离,9次询问之内得出树的直径 题解 求树的直径:先找到一个点a,找到离他最远的一个点b,最后找到距离b最远的点c,b和c之间的距离就是树的直径 先询问离1最远的距离,然后二分找到这个点a,然后询问a的最远距离 代码 c++ in 阅读全文

posted @ 2019-05-05 14:38 VIrtuoso 阅读(106) 评论(0) 推荐(0)

Codeforces Round #554 (Div. 2) D 贪心 + 记忆化搜索

摘要: 题意 给你一个n代表合法括号序列的长度一半,一颗有所有合法括号序列构成的字典树上,选择最大的边集,边集的边没有公共点,问边集大小 题解 对于一颗字典树,从低向上贪心,最底层的边全拿,定义好状态,记忆化搜索计数 定义dp[i][j]为左括号数量为i,右括号数量为j的最大边集 $idfs(i+1,j)$ 阅读全文

posted @ 2019-05-05 14:24 VIrtuoso 阅读(140) 评论(0) 推荐(0)

Codeforces Round #554 (Div. 2) C 数论

摘要: 题意 a和b,找到k,使得lcm(a+k,b+k)最小(a,b:1e9) 题解 设gcd=gcd(a+k,b+k)且$a define ll long long using namespace std; ll a,b,ans,ansk,k,tp,x; int main(){ scanf("%lld% 阅读全文

posted @ 2019-05-05 14:03 VIrtuoso 阅读(106) 评论(0) 推荐(0)

Educational Codeforces Round 63 (Rated for Div. 2) E 带模高斯消元

摘要: 题意 $f(x)=a_0+a_1x+a_2x^2+...+a_kx^k,k \leq 10,0 \leq a_i define ll long long using namespace std; const ll P=1e6+3; ll a[15][15],b[15]; int ask(int i) 阅读全文

posted @ 2019-05-05 13:20 VIrtuoso 阅读(85) 评论(0) 推荐(0)

Educational Codeforces Round 63 (Rated for Div. 2) D dp(最大连续子序列)

摘要: 题意 一个n个数的数组$a[i]$,可以选择连续的一段乘x,求最大连续子序列的值 题解 错误思路:贪心,假如x define ll long long using namespace std; ll x[300005],sum[300005],f[300005],g[300005],ans,mx; 阅读全文

posted @ 2019-05-05 13:09 VIrtuoso 阅读(93) 评论(0) 推荐(0)

Codeforces Round #553 (Div. 2) E 贡献

摘要: 题意 一条长n的链,每个点上有值$a[i]$,定义$f(l,r)$为该区间的$值$所代表的点留下来后的联通块数量,求$\sum^n_{l=1} \sum^n_{r=1} f(l,r)$ 题解 计算贡献,计算每个点留下后作为联通块的第一个点的情况数就是这个点的贡献 代码 c++ include def 阅读全文

posted @ 2019-05-05 11:54 VIrtuoso 阅读(125) 评论(0) 推荐(0)

Codeforces Round #553 (Div. 2) C 等差数列求和 + 前缀和

摘要: 题意 有两个等差数列(1,3,5,..),(2,4,6,...),两个数列轮流取1,2,4,...,$2^n$组成一个新的数列,然后询问区间l,r的和 题解 一开始总想着怎么计算中间那一段,其实用前缀和很好处理 数太大,第二个数也要取模才能相乘 代码 c++ include define ll lo 阅读全文

posted @ 2019-05-05 11:45 VIrtuoso 阅读(270) 评论(0) 推荐(0)

Codeforces Round #552 (Div. 3) EFG(链表+set,dp,枚举公因数)

摘要: E 题意 一个大小为n(1e6)的数组$a[i]$(n),两个人轮流选数,先找到当前数组中最大的数然后选择以这个数为半径k的所有数,问两个人的选数情况 题解 set维护剩下数的最大 链表维护左右第一个存在的数的位置 代码 c++ include define inf 0x3f3f3f3f3f3f3f 阅读全文

posted @ 2019-05-05 10:13 VIrtuoso 阅读(140) 评论(0) 推荐(0)

Codeforces Round #551 (Div. 2) E 二分 + 交互

摘要: 题意 边长为n的正方形里面有一条蛇,每次可以询问一个矩形,然后会告诉你蛇身和矩形相交有几部分,你需要在最多2019询问中知道蛇的头和尾 题解 假如相交奇数部分,那么头和尾一定有一个在矩形里面,假如为偶数部分,头和尾都在里面或者都不在 利用上述性质,对每一行进行询问即(1,1)(i,n) (999次) 阅读全文

posted @ 2019-05-05 09:20 VIrtuoso 阅读(144) 评论(0) 推荐(0)

2019年5月4日 #

Codeforces Round #551 (Div. 2) D 树形dp

摘要: 题意 一颗有n个点的数,每个点a[i]为0代表取子节点的最小,1代表取最大,然后假设树上存在k个叶子,问你如何将1~k分配给叶子节点使得根节点最大 题解 实际上最后只有一个值能到达根,我们需要计算没用的叶子节点数量 min:相当于将子节点叶子数量相加 max:相当于将子节点叶子数量取最小 ans=叶 阅读全文

posted @ 2019-05-04 22:08 VIrtuoso 阅读(115) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 12 下一页