自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 刷题记录-luoguP2679 子串

f[i][j][k]表示用A前i个字符且必选A[i]来匹配B前j个字符,分成k段 状态转移方程: f[i][j][k]=f[i-1][j-1][k]+∑(p=j-1~i-1)f[p][j-1][k-1] 发现f[p][j-1][k-1]可以边转移边计算,于是时间复杂度O(n*m*k) 开过滚动之后空间也是可以的。 边界不大好想,转移的细节也有不少,真的要注意了 #include #

2017-09-21 00:43:18 270

原创 刷题记录-P2312 解方程

题目链接:https://www.luogu.org/problem/show?pid=2312 这题一开始是这么考虑的:如果f(x)!=0,那么f(x)%k一定也不等于0 这样可以进行检验,选取若干个k使得解的范围缩小, 最后用高精度一一进行验证。 70分 #include #include #include #include #include #define MAXN 105 #de

2017-09-18 00:42:24 473

原创 计蒜客 2017 NOIP 提高组模拟赛(二)Day2

T1:劫富济贫 这题一开始hash做的,超时 #include #include #include #include #include #include #define MAXN 3000005 #define MOD1 12000017 #define MOD2 15000127 #define ll long long #define pii pair using namespace

2017-09-17 11:49:51 1296

原创 NOIP 2014 D1T3 飞扬的小鸟

这题一开始毫无头绪,后来发现抽象成模型后并不是很复杂 向上飞就是完全背包,向下飞就是01背包 但是细节方面还是比较麻烦,dp的程序好想好写不好AC 比如说:向右飞的过程中做完全背包,必须是0~m一起做,是一个整体 不能只做非墙的部分 还是得深思熟虑啊ToT #include #include #include #include #define MAXN 10005 #define MA

2017-09-13 00:55:45 275

原创 计蒜客 2017 NOIP 提高组模拟赛(一)Day1

T1:蒜头君打地鼠 当时用树状数组求和的,效率并不是很高,但也能过一部分数据,其实暴力用前缀和优化下似乎可以AC。 正解是矩阵旋转+二位前缀和。 #include #include #include #include #include #define MAXN 2005 #define pii pair using namespace std; int n,k; int dat[MAXN

2017-09-12 00:35:47 399

原创 计蒜客 2017 NOIP 提高组模拟赛(一)Day2

转送门 T1:蒜头君的兔子 首先考虑暴力算法:用数组完全模拟,作为对拍程序: #include #include #include #include #define MOD 1000000007 #define ll long long using namespace std; int n; ll a[15],b[15]; int main() { scanf("%d",&n

2017-09-09 23:21:55 366

原创 刷题记录-luoguP2149 [SDOI2009]Elaxia的路线

这题只需抓住两条性质; 1) 不会出现上图情况,原因:两点之间,如果走最短路,那么一定是尽量走相同的路径 所以我们可以记录在两人最短路中的共同部分,找到形成最长的一条链,并且是单向边组成的链 2) 不会出现这种情况,即共同走过一段路后不可反向,原因:不符合最短路 所以考虑面对面走过的情况时,只需将其中一人的边反向即可 ===============================

2017-08-06 17:40:18 351

原创 刷题记录luoguP1972 [SDOI2009]HH的项链

这题是典型的区间处理问题 由于数据规模,我们可以采用离线操作:先将询问区间保存下来,对区间进行合理的排序,便于降低复杂度 然后采用合适的算法 (1)树状数组 我们可以给相应元素一个权值1,用树状数组计算sum, 但这题显然一般的计算是行不通的, 考虑到区间的有序性,我们以区间左端点排序, 然后依次处理,这样对于区间i+1左端点一定不会在区间i左端点之前 那么我们处理到区

2017-07-29 07:46:09 189

原创 刷题记录-luoguP2055 [ZJOI2009]假期的宿舍

对于学生和床,可以看成是二分图,让尽可能多的学生能睡到床上,可以看成二分图的最大匹配 对于本校学生,自己可以睡自己的床和认识的人的床,我们连一条边 对于外校学生,可以睡认识的人的床,我们连一条边 然后跑一边匈牙利算法就AC啦 ********************************************* #include #include #include #inclu

2017-07-20 16:22:57 250

原创 刷题记录luoguP1983 车站分级

这题一开始没什么思路,想到车子途中没走过的地方的等级,肯定小于车子走过的地方的等级。 于是我就企图让没走过的地方的等级最大值+1去更新走过地方的等级,于是开了线段树, 由于一遍还不能过,因为后来的车子更新的值会影响到前面的,于是反复辗转~~~悲惨超时。。。 ************************************************* 这题的正解是拓扑排序,由于 车子

2017-07-16 15:43:55 268

原创 刷题记录-codevs2144 砝码称重 2

典型的折半枚举法 本质上是用空间换时间的思想,把一半的数据搜过之后用数组保存起来, 搜另一半的时候就可以直接使用了 这样就可以把时间复杂度由乘转变为和 效率改善非常大哦 ************************************* #include #include #include #include #include #include #define MAXN 35

2017-07-16 11:00:18 270

原创 刷题记录-codevs1553 互斥的数

这题一开始我的思路是用图论做, 首先建立一个图,每个数都作为节点, 对于每个数n,如果存在n*p,那么就从n节点向n*p节点连一条边, 由于每个数n要么不存在n*p,要么只存在一个n*p(集合元素只有一个啦) 所以最后得到的图,一定是若干个不连通的链, 对于每个链来说,不妨设为a1,a2,a3……,an 那么肯定是a1与a2互斥,a2与a3互斥,……,an-1与an互斥。 对于不

2017-07-16 10:14:36 206

原创 刷题记录-luoguP1525 关押罪犯

这题我采用的方法是二分答案,二分边的长度D, 注意左边界是0开始的,因为可能不会发生冲突。 然后难点就是check函数判断相应的长度是否可行, 我的思路是这样的: 如果可行的话,那么长度大于D的边两个节点,肯定会被分在两个集合里面, 从而想到了二分图:新建一个图,只保存原图中大于D的边,然后判断是否是二分图即可。 二分图判断可以用深搜染色,效率是O(|V|+|E|) 我用的是并查

2017-07-14 22:07:54 251

原创 刷题记录-luoguP1801 黑匣子_NOI导刊2010提高(06)

本题主要就是找第k小的数 可以建一棵二叉搜索树,设节点左子树的个数为size,则有: 如果k==size+1,那么显然这个节点就是第k小的数 如果k 如果k>size+1,那么k肯定在右子树中,且为右子树中第k-1-size小的数。 ********************************** #include #include #include #include #inc

2017-07-12 22:45:20 287

原创 刷题记录-luoguP1631 序列合并

把a数组分成n部分,对于每个a[i]都看成加上整个b数组。 比如样例: 3 2 6 6 1 4 8 可看成 2-> 1 4 8 6-> 1 4 8 6-> 1 4 8 设c[i]为当前a[i]未处理的最小小标,所有的a[i]+b[c[i]]即可构成组合的最小序列, 在其中用堆在序列中可以找到最小的,这样就是n*log n了 讲的不是很清楚,详见代码 ********

2017-07-12 22:40:14 221

原创 刷题记录-luoguP1113 杂务

全线工作,这样就是唯一最优解, 找出完成每个任务的时间, 然后取最大值即可。 ************************************************ #include #include #include #include #include #include #include #define pii pair #define INF 0x7f

2017-07-12 16:49:41 276

原创 刷题记录-luoguP1991 无线通讯网

这题是典型的二分答案 一开始用最小生成树做,用S(卫星电话)把最大边删去,发现并不是最优解。 二分枚举D,小于等于D的边才可以“发挥作用”,用并查集计算连通分量的个数, 只有连通分量的个数小于等于S时,才认为可行。 ******************************************* #include #include #include #include #in

2017-07-12 15:29:29 221

原创 刷题记录-luoguP1265 公路修建

这是一道最小生成树的题目 实际上,那些条件都是唬人的,根本没用。 对于条件(2):不妨假设A申请修建公路AB,B申请修建公路BC,C申请修建公路CA,构成了环。 然而,A申请AB,则有AB B申请BC,则有BC C申请CA,则有CA 所以AB 从而可得:对于一个图来说,节点的最短边不可能成环。 所以这题是裸最小生成树。 ******************************

2017-07-10 20:47:09 263

原创 刷题记录-luoguP1341 无序字母对

这是一道欧拉路径的问题 欧拉路径:对于无向图,当且仅当奇数度为0或2时,存在欧拉路径,即可以不重复的经过每一条边。 (1)当奇数度为0时,即所有节点的边数都是偶数时,肯定能回来(n条边,n/2条出来,n/2条回来),故叫做欧拉回路 (2)当奇数度为2时,这两个相应的奇数度节点一定一个是起点,一个是终点,否则做不到不重复的经过每一条边。 ***************************

2017-07-09 20:57:14 232

空空如也

空空如也

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

TA关注的人

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