随笔分类 - 思维
摘要:用(a,b)表示一个点先失去a点HP,然后增加b点HP 首先容易证明忽略父亲条件下,任意两个点,先吃b大的最优 对于一个节点v和它的父节点u,若此时选v最优,那么就是吃到u时可以立即吃掉v, 于是可以将u和v合并表示吃掉u时立即吃v,然后v的子节点连到u上 于是用一个堆维护节点,并查集找父亲 Cod
阅读全文
摘要:定义第i行为所有的点(i,j),0<j<m 可以发现,每一行是相对独立的,每一次操作只会影响到当前行和最后一列 考虑每一行和最后一列各开一个树状数组,但这样显然会爆空间 实际上,对于没有离队过的点是没必要储存的,可以直接算出编号, 因此只要用vector储存每一行和最后一列后加入的点即可 还需要预处
阅读全文
摘要:可以发现,答案最大值只有106,于是想到用暴力维护 可以用bitset合并方案可以优化复杂度, Code
阅读全文
摘要:[不稳定的传送门] Solution 首先可以证明,hp翻倍的操作一定是在同一个生物上最优 Code
阅读全文
摘要:Description 题目链接 Solution 设一个l指针指向当前数列左边,从左往右扫描一遍,将当前颜色记录, 当所有颜色都得到后,进行判断,如果当前l指向的颜色大于需要的颜色,l后移一位,然后更新答案 Code
阅读全文
摘要:Description "题目链接" Solution 可以根据条件构造出一个矩阵, 1 3 9 27 81... 2 6 18.... 4 12 36... 这个矩阵满足$G[i][1]=G[i 1][1] 2(1 include include define N 100010 using nam
阅读全文
摘要:Description 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数。 例如S={1,1,1,4,13}, 1 = 1 2 = 1+1 3 = 1+1+1 4 = 4 5 = 4+1 6 = 4+1+1 7 = 4+1+1+1 8无法表示为集合S的子集的和,故集合S的神秘数
阅读全文
摘要:Description "题目链接" Solution 设S[i]表示到第i天总共S[i]几个标记, 那么满足S[i]=m[i]+d[i]+1 m[i]表示水位上的标记数,d[i]表示水位下的标记数 那么可以发现,S[i]满足非严格递增,且相邻2个相差不超过1 由此可转化题目, 给你n个数,可以给任
阅读全文
摘要:Description 题目地址: "Codeforces" Solution 对于一个询问q,如果q是奇数,那么答案就是(q 1)/2 否则将不断q=q/2+n即可 Code
阅读全文
摘要:Description 题目地址: "Codeforces" 题意:给你一串只含01的字符串,判断能否将字符串分为k个子序列,使得子序列满足以下条件: 1. 开头和结尾都是0 2. 相邻的2个数是01或者10 如0, 010, 01010 是合法的,1, 0110, 0101不合法 要求输出方案 (
阅读全文
摘要:Description H国有n个城市,这n个城市用n 1条双向道路相互连通构成一棵树,1号城市是首都,也是树中的根节点。 H国的首都爆发了一种危害性极高的传染病。当局为了控制疫情,不让疫情扩散到边境城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从首都到边境城市的每一条路径上都
阅读全文

浙公网安备 33010602011771号