codeforces
highkill
这个作者很懒,什么都没留下…
展开
-
codeforces 735d Taxes
题意将n拆成k个数(k可以为1),使得每个拆分后的数的最大因子相加最小。思路数学结论,哥德巴赫猜想。分成自身为质数,大于2的偶数,大于2的奇数,需要注意奇数中拆分出2的情况。原创 2016-11-28 17:48:53 · 447 阅读 · 0 评论 -
Codeforces 738e subordinate
subordinate题目链接题意已知一个n节点的树中每个节点的祖先数和根节点编号,问至少要修改几个点可形成一个合法树。思路节点祖先数即节点深度,判断非法树即根到最大深度中有空层。所以枚举最大深度,对于最大深度k,需要修改的点数即max(0-k中空层数,k+1 - maxn中节点数+祖先为0的非根节点数)。最后如果根节点祖先不为0,ans++。代码#include <stdio.h>#incl原创 2016-11-21 11:36:52 · 479 阅读 · 0 评论 -
codeforces 738d sea battle
题意给定一个1*n的矩形,里面有a个长度为b的船,已知有k个格子为空,问至少还要打几个格子才能一定打到船。思路贪心。首先根据已知的格子将矩形分成几个连续段,每一段左右端点为l,r,长度为k,那么每段最多能容纳k/b个船,剩余段所能容纳的最多船为所有段相加为tmp。每次打格子,最坏情况下我们只能排除b个格子没船,即打在一个段的右端点以左第b个格子(或左往右)。所以只要当前tmp>a,我们就排除b个格原创 2016-11-21 11:47:42 · 467 阅读 · 0 评论 -
codeforces 739b Alyona and a tree
题意给定一棵树,每个节点有一个值a(u),每条边有一个权值w,定义节点u控制节点v当且仅当dis(u,v) <= a(v)。要求每个节点控制的点数。链接思路首先求出每个节点到根节点的前缀边权和pre[u],那么dis(u,v) = dis[v] - dis[u] -> dis[v] - dis[u] <= a[v] -> dis[v] - a[v] <= dis[u].问题转化为了求树上节点的子原创 2016-11-27 20:21:29 · 906 阅读 · 0 评论 -
codeforces379a Alyona and mex
题意给定一个n个数的序列和m个子序列,问没在m个子序列中出现过的可能的最大的数是多少(类似sg值),并输出任意一个符合要求的序列。题目链接思路构造。。最大值取决于最短区间,只要保证最短区间是0 - len-1 即可,所以只要0-len-1循环即可。原创 2016-11-27 20:11:41 · 425 阅读 · 0 评论 -
codeforces 742d D - Arpa's weak amphitheater and Mehrdad's valuable Hoses
题意有n个女孩,每个女孩有一个体重和颜值,并分为k个朋友团队。两个女孩x,y在同一个团队的条件是存在a1(x), a2, ..., ak(y) 其中ai 和 ai + 1 是朋友( 1 ≤ i < k).每个团队要么全取,那么取不超过。问在总重量不超过w的情况下能取到的最大颜值和。思路并查集+背包原创 2016-12-09 11:16:44 · 779 阅读 · 0 评论 -
codeforces 742c Arpa's loud Owf and Mehrdad's evil plan
题意给定一个有向图,每个点出度为1,各个边长度为1。求一个最小的k,使得对于每个点,经过k长度到达y,从y出发经过k到达原点。思路如果存在k,那么有向图一定由多个环组成。k即为每个奇数环长度和每个偶数环1/2长度的最小公倍数。原创 2016-12-09 11:10:52 · 803 阅读 · 1 评论 -
codeforces 738c road to cinema
题意给定n辆车,每辆车有租费和上限油量。已知一辆车普通速度跑一公里要一单位油,费时2min,加速跑一公里要2单位油,2min。现在要在t min内从1跑到s,已知在路中有g个加油站,车通过加油站油量即补充到上限油量,加油不花费时间。问在不迟到情况下最小费用。思路二分。原创 2016-11-21 11:53:03 · 395 阅读 · 0 评论 -
codeforces 739c Alyona and towers
题意给定一个序列,求最长的严格先递增后递减区间长度。有m次区间加修改,每次修改后输出答案。思路线段树。diff[i] = a[i] - a[i - 1],diff[1] = 0.这样每次的区间加就就变成了单点修改,即l点加k,r+1点减k。需要注意当l为1或者r为n时无需修改。原创 2016-12-01 15:38:43 · 986 阅读 · 0 评论 -
codeforces 735c Tennis Championship
题意有一个比赛,输者淘汰,两个进行过的比赛数差不超过1的人能互相比赛,问n个人中最后胜者最多进行多少次比赛。思路快速幂+二分。f[x] 表示胜者赢x场至少需要的参赛人数,f[x]=f[x - 1] + f[x - 2].原创 2016-11-28 17:43:00 · 584 阅读 · 0 评论 -
Codeforces 699e LRU
codeforces 699e LRU题目链接题意给你n个视屏和一个大小为k的缓存区,每次选取一个视屏询问,如果视屏不在缓存区中,则加入缓存区,如果缓存区中视屏超过k个,则删除最早询问的视屏。给你每个视屏被询问的概率,每个视屏被选取的概率独立,问在10^100询问后每个视屏仍在缓存区内的概率。思路考虑到只有最后仍在缓存区中的视屏只有k个,所以对结果有影响的只有最后k次选取,即前10^100 - k。原创 2016-11-20 13:30:51 · 1560 阅读 · 0 评论