09 2019 档案
摘要:每日一题 day23 打卡 Analysis dp[i][j]表示序列A中前i个与序列B中前j个匹配的相似度最大值 所以,dp方程很容易想到: 1.让a[i]与b[j]匹配 2.让a[i]与B序列中一个空位匹配 3.让b[j]与A序列中一个空位匹配 dp[i][j]=max(dp[i][j],dp[
阅读全文
摘要:在c++中,vector是一个十分有用的容器。 作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。 特别注意: 使用vect
阅读全文
摘要:每日一题 day22 打卡 Analysis 离散化+并查集 先离散化所有的约束条件,再处理所有e=1的条件,将i的祖先和j的祖先合并到一个集合中;e=0时,如果i的祖先与j的祖先在同一个集合中,说明约束条件不成立,反之亦然。 1 #include<iostream> 2 #include<cstd
阅读全文
摘要:最长不下降子序列实现: 利用序列的单调性。 对于任意一个单调序列,如 1 2 3 4 5(是单增的),若这时向序列尾部增添一个数 x,我们只会在意 x 和 5 的大小,若 x>5,增添成功,反之则失败。由于普通代码是从头开始比较,而 x 和 1,2,3,4 的大小比较是没有用处的,这种操作只会造成时
阅读全文
摘要:每日一题 day21 打卡 Analysis DP的状态为已经完成的请求数量,通过指派一位服务员可以把”完成i - 1个请求的状态”转移到”完成i个请求的状态”那么我们可以知道转移从dp[i - 1] -> dp[i]dp[i][x][y][z] 代表为第i次选择的情况下,对应的1,2,3号服务员所
阅读全文
摘要:每日一题 day20 打卡 Analysis 线型动态规划 读入每个人的贪婪度之后,对其按照从大到小的顺序排序,定义状态f[i][j]为前i个人(排序后)分j个饼干的答案,那么答案为f[n][m],考虑状态转移方程。 1、若给第i个人的饼干数大于1 ,那么我们将这i个人的饼干数都减1(总共减n),他
阅读全文
摘要:每日一题 day19 打卡 Analysis 广搜+map判重 用find寻找字串,再用replace替换字串 这里的map相当于正常广搜的一个book的作用 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day18 打卡 Analysis 贪心 假如小A先选最大的[5,4],虽然电脑必须选一个破坏, 我们可以理解为5和4都属于小A的,假如后面未被破坏的最大值无论是和5相关还是和4相关,必然还是属于小A先手。 写个极限情况,假设6个武将的最大值序列依次为[1,2],[3,4],[5,6],电
阅读全文
摘要:Day 0 当时发现区赛是10点真的感觉开心死了,这样周五晚上就可以颓了写作业。下午的足球课是真的累,我们上半场4:0领先,下半场就被5:5扳平了???后卫什么鬼阵型???真是搞不懂。rp++ 晚上睡觉之前看了道三国游戏,感觉被黄题虐爆了,当时感觉明天凉凉~ Day 1 晚上被蚊子折磨得几乎一夜未睡
阅读全文
摘要:每日一题 day17 打卡 Analysis 二维树状数组的单点修改和区间查询,和一维的差不多 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day16 打卡 Analysis 设F[i,j]表示A[1..i]与B[1..j]并且以B[j]结尾的两段最长公共上升子序列,那么我们可以发现这样的转移 (1)A[i]==B[j]时 F[i][j]=max(F[i-1][k])+1,其中k满足1<=k<=j并且B[j]<A[i]. (2
阅读全文
摘要:每日一题 day15 打卡 Analysis 树状数组 用树状数组来维护每个字符变化的次数,如果是偶数就是0,奇数就是1 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day14 打卡 Analysis 五维dpf[a1,a2,a3,a4,a5]表示各排从左端起分别占了a1,a2,a3,a4,a5个人时合影方案数量然后我们枚举a1,a2,a3,a4,a5从0开始到N1,N2……N5若a1 < N1若a2 < N2&a1 > a2若a3 < N3&a2 >
阅读全文
摘要:每日一题 day13 打卡 Analysis 用简单的树状数组维护单点修改和查询就行了 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day12 打卡 Analysis 完全背包 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day12 打卡 Analysis 模拟+快速幂 先把图书的编码存起来排序,保证第一个找到的就是最小的。如果要求一个数后x位,就将这个数模10的x次方,同理,我们可以通过这个规律来判断后缀。每个编码和需求码都不超过10000000,所以x<8。为了保险,我使用了快速幂来求10的x次方。 时
阅读全文
摘要:每日一题 day11 打卡 Analysis 好久没大Tarjan了,练习练习模板。 只要在Tarjan后扫一遍si数组看是否大于1就好了。 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day10 打卡 Analysis trie树模板题,只需用到简单的插入和查询就好了 如果想要学trie树,见信息学奥赛一本通·提高篇P82 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day9 打卡 Analysis 这道题是个模拟,两个0~128( 注意不是1~128 )的循环枚举正方形中心点,判断正方形的边界,再用循环枚举公共场所的数量就好了。 时间复杂度 < O (128 ² × 160 ² ) = O ( 419430400 ) 可以接受 请各位大佬斧正(反正我
阅读全文
摘要:每日一题 day8 打卡 Analysis 背包+离散化 这题是我们一次模拟赛的T2,结果我的暴力全TLE了。 关键是如果将两个因数的乘积离散化在因数数组中之后等于这个乘积本身,说明a[j]*in离散化之后的下表可以通过+=ans[j]来计算 然后就可以愉快地dp啦~~~ 请各位大佬斧正(反正我不认
阅读全文
摘要:每日一题 day7 打卡 Analysis 树状数组 由于题目中给的数据是按y轴排序,我们只需构建x轴的树状数组,也就是说我们只需统计星星i之前一共有多少个x坐标小于或等于Xi的星星,这个数值也就是星星i的等级 又因为树状数组无法处理下标为0的元素(会死循环),所以要把每个x坐标+1 请各位大佬斧正
阅读全文
摘要:一维树状数组的作用主要是单点修改,单点查询,区间修改,区间查询。 模板1是单点修改,区间查询;模板2是单点查询,区间修改。 模板1: 模板2: 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day7 打卡 Analysis 完全背包+筛法 只用完全背包会超时,所以要用筛法的思想来优化:筛去所有可以用已知货币系统中的面值表示出来的金额 80分 不用筛法 100分 筛法 mark[i]=0 表示i面值的钱不能被凑出来mark[i]=1 表示i面值的钱可以被凑出来mark[i]=2
阅读全文
摘要:每日一题 day6 打卡 Analysis 状压dp dp[i][j]+=dp[i-1][k]; 请各位大佬斧正(反正我不认识斧正是什么意思)
阅读全文
摘要:每日一题 day6 打卡 Analysis 题目的意思是找在区间[x,y]之间满足能够由k个b的不同次幂相加得到的数的总数。这题的关键是转换进制,之前几道题我们保存的是数的每位数,其实也就是10进制,这题我们要保存的是b进制,所以在ask函数中要把原来的对10求余和除10都要改成对b进行操作,dp[
阅读全文