自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

原创 go语言从零入门看项目(一):cache2go源码

前言刚了解完go语言基础,打算做一个关于阅读go语言优秀的开源项目的专题来学习go语言.介绍项目地址:https://github.com/muesli/cache2gocache2go是一个比较简单的go语言项目,其主要实现了一个具有心跳机制的缓存库,话不多说,我们直接看源码.源码CacheItem.go定义了一个缓存项的具体结构.package cache2goimport ( "sync" "time")// CacheItem is an individual cach

2021-04-02 01:09:27 490

原创 Gym - 102470C Lights

Statement:      Given v∈{0,1}n,how many sets of m distinct vectors in {0,1}n such that v1⊕v2⊕...⊕vm=v  (addition  is  bitwise   XOR).Gi

2020-10-03 20:23:14 146

原创 2020 CCPC网络赛 - 1012 Xor

题意:求满足x∈[0,A],y∈[0,B],∣x−y∣≤K,x XOR y≤W的(x,y)的对数求满足x \in [0,A],y \in [0,B],|x-y| \leq K,x \ XOR \ y \leq W 的(x,y)的对数求满足x∈[0,A],y∈[0,B],∣x−y∣≤K,x XOR y≤W的(x,y)的对数Solution:∣x−y∣≤K⇒ x−y≤K and y−x≤K ⇒ y−x+K≥0&nb

2020-09-24 12:08:48 470

原创 莫比乌斯反演入门学习总结

前置技能点:整除分块:  现在我们想求:∑i=1n⌊ni⌋ \sum_{i=1}^n {\lfloor\frac{n}{i}\rfloor} i=1∑n​⌊in​⌋不妨先考虑 ⌊ni⌋\lfloor \frac n i\rfloor⌊in​⌋的结果.{i≤n,i只有n种可能,所以⌊ni⌋也只有n种可能i>n,虽然i有n−n种可能,但是⌊ni⌋≤n所以⌊ni⌋也只有n中可能 \begin{cases} i \leq \sqrt{n},i只有\sqrt{n}种可能,所以\lf

2020-07-24 10:17:11 301

原创 CodeForces 1249 F Maximum Weight Subset(树形dp))

题目:      F.Maximum Weight Subset思路:      显然是树形dp没错了,重点在于如何处理和如何转移.我的做法是:    dp[i][j] 表示距结点 i 最近为 j 的点集的最大权重和.    每次由叶子结点往父亲节点转移,很明显对于父亲结点 u, 叶子结...

2019-10-24 22:14:04 380

原创 CodeForces 1003 F - Abbreviation(暴力+kmp)

Problem:传送门Solution:直接暴力枚举每个区间,然后kmp找这个区间出现的次数.Ac_Code:#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <stack>#include <bits...

2019-10-13 15:45:55 316

原创 CodeForces 1238 F The Maximum Subtree(树形dp)

题目:传送门思路:分析题意会发现,每个所选择的点只能有两条分支长度大于 2, 其他长度只能为1.我们考虑树形dp,对于每个节点我们先考虑他和他的两个儿子分支构成的结果,在更新其分支的最大值,向上传递Ac_Code:#include <iostream>#include <cstdio>#include <algorithm>#include &...

2019-10-10 13:41:04 380

原创 CodeForces 1238-E Keyboard Purchase(状压DP)

题目:传送门思路:先预处理出所有的字符的贡献对,例如 abcd,则贡献对为(a,b),(b,c),(c,d) 均为一个.如果在新建盘中一个字符 位置 pos , 则与其有关的贡献对中,编号比他大的对中就要减去它,即为 - pos, 反之就是加上它,即为 +pos 。可以看出我们可以把 单个字符的贡献单独放出来算,所以我们考虑直接枚举顺序,每次维护最小值.而状压dp转移的过程中恰好可以将...

2019-10-10 13:36:02 293

原创 CodeForces 1238-D AB-string

题目:传送门思路:因为字符串只有A和B两种字符,我们不妨研究一下符合条件的特点.对于一个字符串我们将相同的连续的分为一段,如果分成了三段,则可以构成 ABA 或者 BAB类的回文串,则三段以上都是成立的,如果分成了两段,如果有一段连续的个数为 1,则是构不成回文串的,如果只有一个段,很明显个数为 1不符合其他均符合.可以发现不符合条件的串的特点很明显,所以我们考虑计算不符合条件的串,然后...

2019-10-09 22:17:00 597

原创 CodeForces 999 -F Cards and Joy (dp)

题目:传送门思路:贪心角度出发,牌 i 肯定全部都要发给 喜欢 牌 i 的 人;那么题目就转换为了 i 个人 拿 k 张喜欢的牌的最大值求和问题.dp[i][j] 表示 i 个人 拿了 j 张牌的 最大值. 转移 : dp[i][j] = max(dp[i-1][j-l]+h[l]);Ac_Code:#include <iostream>#include <cst...

2019-10-06 22:25:39 190

原创 CodeForces - 999E Reachability from the Capital(贪心 + dfs暴力)

题目:传送门思路:网上博客好像不是虚拟边就是缩点,其实只要每次对与首都不链接的点dfs一次,找到能经过点最多的点,将其与首都连边就可以了,复杂度分析其实是和虚拟边的复杂度相同.要加个小优化,因为可能最多要进行 n2 次 dfs , 我们直接更新标记数组会T, 我们考虑新增一个 now变量,每次dfs前 now++ ,通过 标记数组是否等于 now 来判断这次dfs 是否经过该点.(这样我们...

2019-10-06 21:53:17 168

原创 CodeForces 1208-F Bits And Pieces (SosDp)

Problem:      传送门Solution:      Dp[i] 表示 i 出现的次数,注意我们这里的出现次数不是单纯的 i 出现多少次 , 如果某个数的子集包含 i , 则 i 的出现次数也会增加.      如果dp[i] >= 2,说明一定存在两个数 按位与 的值是 包含 i 的...

2019-10-05 14:50:36 216

原创 CodeForces 1230-F Konrad and Company Evaluation(图论)

题目: 添加链接描述思路: 每进行一次操作,该点就会成为最大的点,所有指向它的边都要反转,我们讨论一下结果.      设被修改的节点是 B,A为指向B的节点,out[x]表示节点X指向其他节点的边数. 在对B进行操作了之后, A->B->out[B]的贡献全部消失,但增加了 B->A->out[A]的贡献.那我们考虑每次枚举指向 B的节...

2019-10-02 11:07:49 218

原创 CodeForces 1231-E Middle-Out (思维 + 指针)

题目: 传送门思路:      我们从逆向的思维考虑,即每次将 T串的头部或尾部放到任意位置,使其成为 S串. 那么从贪心的角度想我们肯定希望每个数最多只进行一次交换,最终就能符合结果. 很明显 如果我们可以把T串分为三部分, 分别为 需要移动的部分,不需要移动的部分,需要移动的部分,不需要移动的部分肯定是 S串的子序列,这样他才能满足不需要移动就可以让最终结果满...

2019-10-01 16:23:33 302

原创 CodeForces 1228E Another Filling the Grid (组合数 + dp)

题目: 传送门思路:      dp[ i ] [ j ] 表示到 第 i 行时 已经有 j 列有 1 的方案数.      设该行新增的有 1 的列数为 x,组合数位C,则 对于 x 的 取值有两种转移方式.      如果 x == 0 :      因为每行必须...

2019-09-30 00:26:35 251

原创 HDU-6356 Glad You Came (线段树)

题目: 传送门思路: 除了卡常好像没什么好说的…如果直接用 max函数会T的很惨.基本就是 线段树维护最小值,然后对于更新操作加一些剪枝就可以了.Ac_Code#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <stac...

2019-09-27 21:10:32 147

原创 Gym-102091 The Stream of Corning 2(线段树 + 优先队列)

题目: 传送门思路: 优先队列维护一下当前最早出的 物品 , 权值线段树查询第 k 小即可Ac_Code#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <stack>#include <bitset&g...

2019-09-26 21:22:01 195

原创 2019HDU多校训练第二场 Longest Subarray

思路:      基本思路肯定是固定区间右端点,每次找到这个右端点构成的最大区间.      对于一个现在的某一个位置 i ,我们肯定向前找符合条件的区间.      我们考虑分两种情况,如果颜色 j 出现的次数小于 k,那么一定不定包含颜色 j ,在其最后出现的位置 - inf, 如果大于等于k ,则...

2019-09-25 17:19:49 147

原创 Gym - 101992D The Millennium Prize Problems (暴力 + 计数)

题目:          传送门思路:          我们单独考虑a[i] 与其他数得到的GCD产生的贡献, 如果 与a[i] 的最大公约数为k的数 之和为 sum[k] , 那么其产生的贡献就是 sum[k] x a[i] / k,而GCD一定是 a[i] 的因子, 所以我们对于每个a[...

2019-08-27 20:30:22 500

原创 Gym - 102174 G - 神圣的 F2 连接着我们(线段树优化建图 + 多起点最短路)

题目: 传送门思路:网上几乎没有这题的题解,GYM上面过的人也很少,写这篇博客的初衷只是为了有想要看代码的同学了解一下.思路跟题解差不多,对于每个区间我们用虚点表示,类似于线段树的编号方式,然后建立两个线段树,一颗为出边(内部自下而上建边),一颗为进边(内部自上而下建边)。进边线段树的叶子节点向出边线段树的对应叶子节点建一条有向边。对于我们m次的加边操作,我先求出a,b两个区间的编号有哪些...

2019-08-20 12:08:00 409 1

原创 gym 102302 2019 USP-ICMC H-Log Concave Sequences (dp + 矩阵快速幂优化)

题目:传送门思路:      我们可以先写出转移方程,发现该方程是一个不变的递推式,我们考虑用矩阵快速幂来优化这个递推式.完结撒花…AC_Code#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>usin...

2019-08-19 16:50:36 817 2

原创 2019-8-18 省赛选拔

A:训仓达人      先状态压缩把每个区间特别的仓鼠表示出来,然后进行一次区间DP,在区间DP的顺带判断一下是否会不用花费就可以了.AC_Code#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const in...

2019-08-18 16:45:39 199

原创 BZOJ-1264 基因匹配Match (LCS->LIS 或者线段树优化LCS)

题目:              传送门思路:        第一种方法是将LCS转化为LIS,我们把第一个序列的每个数的位置记录下来,按照第二个序列出现的顺序,每次逆序排列所有位置来构造新数组,然后对这个新数组求LIS即可.        ...

2019-08-07 21:19:06 245

原创 GYM 101972

题目:A: Multiplication Dilemma      我们先把所有数都拆解成 (a+b+c…+d) 的形式,然后利用乘法分配律去掉括号即可.#include <iostream>#include <algorithm>#include <cstdio>using namespace std; long ...

2019-08-06 15:45:20 217

原创 POJ-1661 Help Jimmy (dp+线段树优化,nlog n解法)

题目:      传送门思路:      就题目本身而言,不是很难,可以用 o(n2) 方法解决这道题目      我们讨论的是如果这道题数据范围变成 1e4甚至1e5了怎么解决这道题目.      首先, o(n2) 解法中对于每个平台往下走转移到的下一个平台一定是确...

2019-08-02 10:42:47 135

原创 CodeForces 920E-Connected Components?(线段树暴力)

题目:      传送门思路:      因为题目给出了没有相连的点,那么我们不妨假设刚开始所有点都是相连的,然后再逐渐删边,很明显对于一个联通块,如果有点到这个联通块有至少一条边,那么说明这个点也在联通块内.      那我们不妨从某点开始,初始其他点到该点都有一条路径(为1),然后将没有相连的点-...

2019-08-01 12:40:31 289

原创 HDU-1074 Doing Homework (状压dp+进制hash)

题目:      传送门思路:      我们不妨先从贪心的角度出发,对于给定的 n个任务,我们肯定一个做完了以后立马再接着做另一个.所以可以得出来做完n个任务时的终止时间是固定的,即所有任务所需要的时间之和.      那我们不妨状态压缩,状态s表示已经有哪些任务已经做了,那么很明显s状态下一定有个...

2019-08-01 09:34:55 131

原创 CodeForces-453B Little Pony and Harmony Chest(状压DP)

题目:传统们思路:      我们把每个数的质因子都压成状态,dp[i][j]表示在第i位已经是状态 j的最小和.      对于一个状态j如果其第k位为1,表示从2开始第k个质因子已经出现过.Ac_Code#include <iostream>#include <algorithm>#include...

2019-07-30 20:16:13 164

原创 CodeForces - 620E New Year Tree(bitset + 线段树)

题目: 传送门思路:       第二次遇到要用bitset的题,这道题还是很简单的, 先dfs预处理一下,然后我们用bitset来记录每种颜色是否存在即可.       不了解bitset的小伙伴可戳bitset介绍Ac_Code#include <iostream&gt...

2019-07-29 10:02:09 154

原创 CodeForces-343D water tree (线段树+树链剖分)

题目: 传送门思路:     刚开始没看清清空操作是只对v的祖先和v操作,写了一个dfs+线段树,后来样例过不了,重新读一次题才发现。     因为只能对v的祖先操作,所以dfs就不是很好用了,不由得想到树链剖分每条链由下往上就是祖先关系,所以我们可以选择用树链剖分来解决这道题,因为操作是对v的子树操作,所以我们在dfs的时候每个点...

2019-07-28 10:33:34 122

原创 HDU-5682 zxa and leaf(二分+dfs)

题目: 传送门思路:        要求最大值最小,不难想到可以二分答案后检验.        我们可以维护每个节点的取值范围,如果没有初始值就是[1,1e9],如果有初始值k就是[k,k].然后dfs维护每个节点的取值,如果某个节点的取值范围[l,r]出现l>r的情况则说明不符合条件.AC_Code#...

2019-07-20 10:25:26 132

原创 Codeforces Round #565 (Div. 3)

A:题目: A. Divide it!思路:     很明显变成 4/5n, 2/3n后又能被2整除,所以我们直接暴力就可以了。long long getans(long long x) { long long ans = 0; while( x!=0 && x%5 == 0) { ans += 3; ...

2019-06-12 21:05:23 224

原创 HDU - 3308 LCIS (区间合并)

题目: 传送门思路:      之前遇到的第一个区间合并题,二刷感觉真的好麻烦,wa了好多发,主要是忘记了要怎么区间合并了(大哭).

2019-06-08 17:57:04 140

原创 Codeforces Round #563 (Div. 2) A-D

A:   将2*n个数进行排序,然后检验一下前面n个和 后面n个和是否相同。AC_code

2019-06-04 10:18:09 181

原创 POJ - 2777 Count Color(线段树+压位)

题目: 传送门思路:     节点存的是[L,R]区间的颜色分部情况,我们可以用二进制来表示 颜色是否存在.     题目输入的l,r可能是相反的,这种情况我们要先交换一下它们的值(第二次刷还是被坑了…)Ac_code...

2019-06-03 09:07:07 124

原创 CodeForce 538-F A Heap of Heaps(主席树)

题目: 传送门思路:       咱用 离线+树状数组 逃了好多次课 ,终究还是 被抓回来补课了;       对于每个k,每个点我们都去查询 [k*(I-1)+2,min(n,k*I+1)] 区间中小于 a[I]的个数,我们写出这种区间的总数,用调和级数可知范围在 nlog n 以内,因为查询的区间太大了,而且...

2019-05-24 09:27:08 145

原创 HYSBZ 1026 windy数(数位DP)

题目: 点这里思路:     第二次刷到这题,感觉比第一次写流畅许多,不过还是出了个傻逼bug找了好久,还是要找个时间集中刷一下。      我数位DP采用的是记忆化搜索的形式(因为听说有结构体的数位dp),这道数位DP感觉很板子,没啥难点,就是有几个小细节要注意,详情看代码.AC_Code#include <iostre...

2019-05-23 10:20:38 137

原创 HDU 4417 Super Mario(离线 + 树状数组)

题目:Mario is world-famous plumber. His “burly” figure and amazing jumping ability reminded in our memory. Now the poor princess is in trouble again and Mario needs to save his lover. We regard the roa...

2019-05-23 10:07:26 247

原创 CodeForces 1136D - Nastya Is Buying Lunch (贪心)

题目: 传送门思路:    很明显,如果编号为 i 的同学要跟编号 为 j 的同学交换位置,他必须能跟它们之间所有的人都能交换,这样 i 同学才能到达j同学的前面相邻的位置,而这样对 j 同学的位置的贡献只是向前 +1 位.    有了上述的结论,那么对于最后一个位置的同学也是如此,而且从贪心的角度来考虑,我们...

2019-05-21 22:38:59 152

原创 CodeForces 1166C A Tale of Two Lans(尺取法)

题目: 传送门思路:我们可以通过分情况讨论 , 发现只要 X,Y的绝对值 满足 x >= y/2(y > x) 就是合理的二元关系。那我们不妨将输入的数据存其的绝对值,然后 sort 排序一下 ,然后找 a[i] /2 的 部分 更新ans 就可以了。你可以直接采用 二分 的,但是 其实可以 用 尺取法 来 解决问题 复杂度是 o(2n),比二分更优我们能采用 尺取法的原因是...

2019-05-21 03:38:25 395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除