10 2019 档案
摘要://P1908 逆序对 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int mxn=5e5+5; int a[mxn],c[mxn],b[mxn],f[mxn]; int n; inline int lowbit(int x){ return x&-x; } inline ll get(int x
阅读全文
摘要://P1966 火柴排队 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int mod=99999997; const int mxn=1e6+5; int n; int /*a1[mxn],a2[mxn],d1[mxn],d2[mxn],*/c[mxn],r[mxn]; struct ss{ in
阅读全文
摘要:ccsc推荐的dp题 其实我一开始并没有想出来qwq 定义dp[i][j]表示前i个物品买j个得到的最大收益 然后就不会了 翻了翻题解 发现应该倒着推 那么dp[i][j]=max( dp[i-1][j],dp[i-1][j-1]+w[i]-(j-1)*r[i] ); 其实就是从 前i-1个物品取j
阅读全文
摘要:I have changed my Chrome style and Luogu style!! So coooool!
阅读全文
摘要:刚开始没想到怎么折状态转移 后来jfdalao给我讲了一遍才会 因为正方形的大小受到端点是否有鱼的限制 所以我们设s1(s2)i,j表示i,j左边(上面)最多有几个0 令f i,j表示以i,j为右下端点并且对角线经过i,j的对角线最大值 显然只有ai,j为1是才能转移 另外因为对角线有两个方向 所以
阅读全文
摘要:其实这是一道大大大水题 看题加思考加代码一共不到20分钟 题目不可能出现不合法的情况 直接模拟就好
阅读全文
摘要:未来回忆起这些的时候,希望你会不由自主的微笑,真正感谢我的陪伴。
阅读全文
摘要:Luogu was update today!!Just two days before last time. ccsc's lastest rank is 377. ORZ
阅读全文
摘要:其实就是这样啊 说白了就是自己不努力而已 一直就是碰运气 真正做的很少 这样的话能做成什么呢
阅读全文
摘要:拓扑排序+dfs 很容易发现 对于一个点i 到达它经过的最多的城市数等于前一个节点的数量+1 求出每个点前面最多有多少个点就是答案
阅读全文
摘要:2019-10-21 yeap!!wooooh!! school's sports day!! I had met my best friend just now. This passed my mind,which said "There isn't time, so brief is life,
阅读全文
摘要:Luogu was update this morning. Congratulations,ccsc! emm...juruoxd
阅读全文
摘要:感谢ccsc的大力支持(撒花) 1016 dp加强练习 P1060 开心的金明P1064 金明的预算方案P1077 摆花P1006 传纸条P1137 旅行计划P1336 最佳课题选择 1017 P2280 [HNOI2003]激光炸弹 P2064 奇妙的汽车 P1108 低价购买 P1136 迎接仪
阅读全文
摘要:传送门 题目给出的是单向边 转移的时候判断一下是否有连边 记录一下路径
阅读全文
摘要:传送门 正反求两次lis 最后取和最大 用n减去以后就是最小
阅读全文
摘要:传送门 这道题就像洋葱 一层一层剖开以后 其实本质就是lis 所谓友好城市 其实就是左边一个点和右边一个点之间有连线 那么问题就转化成了去掉多少个连边使得所有的边没有交点 我们对任意一边的点的坐标进行排序以后 求出另外一边的lis即可
阅读全文
摘要:光与影。希望和绝望。欢笑与哀伤。信赖和孤独。 在这个世界上,不单调的东西让人很快厌倦,不让人厌倦的大多是单调的东西。
阅读全文
摘要:传送门 dp题 因为想要得到n个分公司分配m个设备时的最有解 所以我们定义数组f[i][j] 表示前i个公司分配j台机器时的最优 接下来考虑转移 因为前i家公司只会受到前i-1家的影响 所以转移就是 f[i][j]=max(f[i][j],f[i-1][j-k]+a[i][k]) 如何得到第i家公司
阅读全文
摘要:传送门 首先感谢ccsc友(xi)好(zhi)的讲解 康康m的范围 m只能取1或者2 先看m=1 是一条链 那么对于第i个点有三种情况 1 和上面连在一起成一个矩阵 2 和下面连在一起成一个矩阵 3 成为断点 同样的 对于m=2我们也这样分析 设f[i][j][k]代表第i行取了j个矩阵属于第k种情
阅读全文
摘要:传送门 上升子序列 就是满足严格递增 先考虑大体思路: 如果题目没有要求“如果两个上升子序列相同,那么只需要计算一次”,那么就非常友好了 dp转移方程也很简单 dp[i]=Σdp[j](0<j<i) 但是现在要求相同的只能记一次 我们考虑用一个数组la(lastans)[]记录 那么这个数组的作用是
阅读全文
摘要:lis 即最长上升子序列 可以用dp求解 复杂度O(n^2) 我们考虑优化 用树状数组(或者线段树) 树状数组维护区间最大值 (省去原始O(n^2)算法中的查找) 这样还能求出以i结尾的lis 二分只能求出当前序列的lis (许多题里要求lis个数什么的qwq 总之比二分方便 除了码量长) 还有一个
阅读全文
摘要:一般求解方法 当然c++stl库里有一个函数名叫unique unique本身是用于去重 正是离散化所需要的
阅读全文
摘要:发现自己dp学的非常不好 所以开始练习dp (当然从最简单的开始啦) 题目传送门 为什么这道题是个紫题??分明代码很简单(对于多数线段树树状数组的码量来看) 个人认为思路有点难想出来(我就是看了题解才会的) 步入正题 题目描述每次插入一个数k到xk位置(0<k<=n) 那么就是一个动态的啦 插入一个
阅读全文
摘要:传送门 然而考试的时候并没有看出来是线性dp 那么复习一下线性dp lis问题 LIS 最长上升子序列 可以用dp求解 复杂度O(n^2) 定义dp[i] 表示a[i]为结尾的“最长上升子序列”的长度 转移方程 dp[i]=max{dp[j]+1} (0<=j<i,a[j]<a[i]) 边界也很好理
阅读全文
摘要:(心态爆炸。。。) 本来可以拿到120,因为自己忘记改输出语句,最终又爆零了。。。 言归正传,dalaolsc非常主动并且认真的给我讲懂了T2! T1 纪中的题解写的hin好了,所以(懒惰的)我直接放题解 具体介绍一下矩阵乘法: 两个矩阵若满足第一个矩阵的列等于第二个矩阵的行数(形如m*n和n*p)
阅读全文
摘要:因为bfs一直不会的缘故,所以今天要认真做几道题练习一下qwq P1032 字串变换 对于这道题很明显就是bfs 可以搜索顺便记录步数 注意要判重 可以用map 输入也要注意 (代码是抄的 因为我太弱了还不熟悉)
阅读全文

浙公网安备 33010602011771号