CF
文章平均质量分 60
无
小鱼yn
简介
展开
-
CF gym102992 F.Fireworks(几何分布、三分)
https://codeforces.com/gym/102992/problem/F题意:制作一支烟花需要花费 nnn 分钟,每支烟花有 p×10−4p ×10^{−4 }p×10−4 的概率是完美的,每次可以花费 mmm 分钟点燃之前制作的所有烟花,若发现至少有一支完美的,则停止。问最优策略下,最短的停下的时间期望是多少?思路:首先每次都是生产相同数量的烟花再点燃的,因为要求最优策略,而且每次生产的烟花是否完美的这个事件是相互独立的,所以如果第一批生产 xxx 支是最优策略,那么第二批同样应该生原创 2021-03-30 20:56:37 · 302 阅读 · 0 评论 -
CF gym102501 J. Counting Trees(Catalan数、dfs/单调队列)
https://codeforces.com/gym/102501/problem/J题意:给定一棵二叉树的中序遍历,问这棵树的形态可能有多少种。另外符合要求的树应满足:树上任意结点的权值大于等于其儿子结点的权值。思路1:先选出序列中最小的几个数作为树的“根”,“根”的状态数就是它结点个数的Catalan数。如上图所示,“根”的状态确定后,被分出来的的几棵子树的位置相应也确定了,然后对子树重复进行前面的操作算出子树的状态数。最后将“根”、所有子树的状态数做乘积就是所求答案#include<a原创 2021-03-27 16:20:10 · 422 阅读 · 0 评论 -
CF #707 (Div. 2)C、D
https://codeforces.com/contest/1501C. Going Home题意:给定一个长度为n的序列,找到一组x,y,z,wx,y,z,wx,y,z,w,使ax+ay=ay+awa_x+a_y=a_y+a_wax+ay=ay+aw思路:注意数据范围4≤n≤2e54≤n≤2e54≤n≤2e51≤ai≤2.5e61≤a_i≤2.5e61≤ai≤2.5e6因为两个数的和不会超过5e6,所以我们可以枚举所有数对,存下每一个和值所对应的两个数的下标,当某个和值中下原创 2021-03-21 17:51:04 · 127 阅读 · 0 评论 -
CF gym102091 G.Communication(矩阵快速幂+biset/Floyd、并查集)
https://codeforces.com/gym/102091题意:有n个办公室,问重新划分后,一共有几个部门。部门划分原则:①若A和B在同一个部门,那么A可以给B发送消息,B也可以给A发送消息;②若A可以给B发送消息,B也可以给A发送消息,那么A和B在同一个部门里思路:先统计连通情况:若A可以给B发送消息,B也可以给A发送消息,那么在AB之间有一条双向边(可以由其他办公室转发)(因为只用看是否能到达,所以可以用bitset优化下矩阵快速幂),然后用并查集统计这个无向图连通块的个数。#includ原创 2021-03-19 13:44:40 · 220 阅读 · 0 评论 -
CF gym102832 F. Strange Memory(dsu on tree+二进制拆分)
https://vjudge.net/problem/Gym-102832F题意:给定n个结点,每个结点有一个权值ai,求下列值。思路:因为ai≠0,所以ai⊕aj≠ai或者aj,所以符合条件的i,j对的lca(i,j)不会是它们其中一个。当以一个点作为lca时,能产生贡献的i和j只能来自这个点的不同儿子子树。考虑以当前结点作为lca时,不同儿子子树对答案产生的贡献:我们需要记录这棵子树上每种权值 有 对应哪些下标值,因为是计算异或值和,这里可以进行二进制拆分,只记录权值相同时每一位上下标值为0或原创 2020-12-05 15:50:46 · 275 阅读 · 0 评论 -
CF gym102803 C. Cornelia Street(哈希)
https://codeforces.com/gym/102803/problem/C题意:串S (7≤|S|≤8×105)是由n个A,m个B,k个A和一个A的前缀a依次连接构成的,其中A≠B,|A|=|B|,n,m,k>0,0≤|a|<|A|。现已知串S,求A,B的长度解思路:从1开始枚举答案的长度,判断是否可行时间复杂度:n=8e5时,n∗∑i=1ni/nn*\sum\limits_{i=1}^ni/nn∗i=1∑ni/n =11335666.637241…#include <原创 2020-11-14 15:44:07 · 583 阅读 · 0 评论 -
Educational Codeforces Round 97 E. Make It Increasing
https://codeforces.com/contest/1437/problem/E题意:给定一个长度为n的序列a。当元素i不属于集合b时,序列中的ai可以更改为任意值。问:让序列变成严格递增的序列所需要的最小操作次数。思路:1、首先,当a[i]、a[j]值固定且i−j>a[i]−a[j](i>j)i-j>a[i]-a[j](i>j)i−j>a[i]−a[j](i>j)时,我们不能通过修改区间(i,j)(i,j)(i,j)的值使它成为一个严格递增的序列,所以我原创 2020-11-07 19:06:17 · 137 阅读 · 0 评论 -
Educational Codeforces Round 97 C. Chef Monocarp(dp)
https://codeforces.com/contest/1437/problem/C题意:将n个菜同时放进烤箱,第i个菜的最佳烹饪时间是ti,如果第i个菜在T时间被端出,那么对它的不满意值就是 |T−ti|,且在每一个时刻只能端出一个菜,问不满意值和的最小值。注:1≤n≤2001≤n≤2001≤n≤200思路:1、最佳烹饪时间值小的肯定要先取出,所以我们先将这n个物品按照最佳烹饪时间值排序2、设dp[i][j]表示前i-1个物品都取出时,第i个物品在j时刻取出需要花费的最小总时间3、那么d原创 2020-10-28 17:27:51 · 183 阅读 · 0 评论 -
CF #669 (Div. 2)D. Discrete Centrifugal Jumps(线段树/单调队列优化dp)
https://codeforces.com/contest/1407/problem/D题意:给定n个高度,当i<ji<ji<j且满足以下条件之一时,可以从iii跳到jjj:问从1到n的最小步数。思路:设dp[j]dp[j]dp[j]表示从1到jjj的最小步数:1、满足条件2的点iii:①要保证iii~jjj内的数严格小于h[j]h[j]h[j],设pos是向左第一个大于等于h[j]h[j]h[j]的数的位置,我们可以在[pos,j−1][pos,j-1][pos,j−1]的原创 2020-10-17 20:41:29 · 180 阅读 · 0 评论 -
CF gym102700 D. Dice(“矩阵快速幂”)
题意:有nnn个kkk面的骰子,kkk面编号分别为1,2,3,,,k1,2,3,,,k1,2,3,,,k,Diego对这些筛子进行了一些操作,使它们都不能摇到编号是mmm的倍数那一面,摇到其他面的概率相同。问:抛完这nnn个骰子,它们的结果相加后得到一个mmm的倍数的概率。思路:我们你那个摇到的面数为k−k/mk-k/mk−k/m,我们可以只考虑它们的余数(0~m-1)出现的概率。容易求出抛一次骰子,每个余数出现的次数,P1[1],P1[2],P1[3],,,P1[m−1]P_1[1],P_1[2],P原创 2020-10-15 22:19:31 · 220 阅读 · 0 评论 -
CF #673 (Div. 2)E. XOR Inverse(思维 、字典树)
https://codeforces.com/contest/1417/problem/E题意:求一个最小的x,使x与数组a每一个元素异或后,逆序对数最小。思路:二进制下,考虑数的高位对数值的大小影响更大,我们可以贪心地从最高位开始,如果这一位上异或1比异或0的逆序数对更小,那么最终答案的这一位就应该为1,否则为0。(最开始每一位上用树状数组求逆序对,然后T了,看题解才知道可以用字典树,wao字典树:因为高位上的01确定之后,#include<algorithm>#include<原创 2020-10-06 14:01:16 · 233 阅读 · 0 评论 -
CF #668 (Div. 2)E. Fixed Point Removal(线段树)
题意:有n个整数,下标从1~n,当元素的值与其下标值相同时,可将这个元素移除。问:把数列前若干个和后若干个元素变成n+1后,最多可以移除多少个元素。思路:将数值元素a[i]都替换成i-a[i],那么:①当a[i]=0时,就可以将原来下标为i的数移除。②若a[i]>0,那么还需要移走a[i]个前面的数,才能将原来下标为i的数移除。③若a[i]<0,就不能移除这个数。令f[i]表示,1~i中能移除最多元素的个数,那么当f[i-1]>=a[i]时,就可以将原来下标为i的数移除,且f[i]=原创 2020-09-12 13:02:38 · 170 阅读 · 0 评论 -
CF #632 (Div. 2)A-D、F
A. Little Artem题目大意:构造一个n×mn×mn×m的矩阵:1、只有黑白两种颜色;2、要满足B=W+1B=W+1B=W+1(B表示黑色单元格的个数,并且这些单元格周围至少有一个白色单元格,W类似)思路:在左上角的一个单元格涂上白色(与它相邻的单元格刚好只有两个),其他全涂黑色#include <iostream>#include <stdio.h>...原创 2020-04-11 10:07:26 · 176 阅读 · 0 评论 -
CF #631 (Div. 2) C-Dreamoon Likes Coloring
题目里面好多细节的地方没有注意到啊∑(っ°https://codeforces.com/contest/1330/problem/C题意:1、给你一排长度为n的单元格,和m种颜色,还有m个数lll1,lll2,lll3…lllm,然后给这些单元格染色;2、染色规则:单元格的颜色由 对它的最后一次操作决定,对于第iii次染色操作,你可以从从区间中选一个数ppp,然后给区间[ ppp,pp...原创 2020-04-05 15:32:50 · 176 阅读 · 0 评论