12 2018 档案

摘要:直接用题目中三角形 我们发现无论是从上到下还是从下到上DP都会有后效性 这时我们发现第i列的情况只和第i+1列有关 于是我们产生了从右向左DP的思路 到这为止我的想法,就开始与别人不同了 我用f[i][j][k]表示,敲掉第i行第j列的那个块,和之前的k-1个块所能得到的最大分数 用ji[j][[k 阅读全文
posted @ 2018-12-23 23:43 cold_cold 阅读(292) 评论(0) 推荐(0)
摘要:这题真的不是一道用网络流解决的好题,初学者应绕路 但我偏偏就用网络流写了 每个叶子节点连向超级汇点n+1,即可 但我当时把 所谓割开一棵有根树,就是删除若干条边,使得任何叶子节点和根节点不连通。 看成了所谓割开一棵有根树,就是删除若干条边,使得任何节点和根节点不连通。 这且不说,还有一个问题 这棵树 阅读全文
posted @ 2018-12-21 00:49 cold_cold 阅读(207) 评论(0) 推荐(0)
摘要:这题算是毒瘤吧,看到这个题我除了O(n^2)想不到别的方法 后来尝试使用平方的方式乱搞,但是给出了反例 在看了国家集训队ysy的解题报告后方才明白 思路是一种放宽的思路 我们枚举每个差值的符号,在其中枚举最大值,就可以有效去除绝对值 最后按照第k位从小到大排序,来枚举 从小到大进行扫描,每次用当前的 阅读全文
posted @ 2018-12-19 18:37 cold_cold 阅读(300) 评论(0) 推荐(0)
摘要:【数据规模】 40%的数据中,N<=20; 60%的数据中,M=2; 80%的数据中,N<=10^5。 100%的数据中,N<=10^15。 看到这个数据范围,我首先想到的是80分的写法 80分的写法可以使用状压DP f[i][j]表示第i位,前m个二进制状态为j有多少种方式 t1=(j>>1)|( 阅读全文
posted @ 2018-12-18 00:43 cold_cold 阅读(267) 评论(0) 推荐(0)
摘要:这道题特别坑 状态转移是 f[i][k+1]=f[j][k]+(sum[i]-sum[j])*(sum[i]-sum[j]); 转换后变为 f[j][k]+sum[j]*sum[j]=f[i][k+1]+2*sum[i]*sum[j]; 但是我在这里要说的是一个初值的问题 通常情况下斜率优化的题目都 阅读全文
posted @ 2018-12-17 23:31 cold_cold 阅读(253) 评论(0) 推荐(0)
摘要:此题我看到第一眼的想法是 区间DP,复杂度大约O(n^4) 但是我在推样例的时候发现了一个重要的性质 最后的结果只与切的位置有关而与切的顺序无关 将状态设计为f[i][j]表示前i个数,切j刀,第j刀切在i处所最得到的最大的分 由此我们可以推出DP式子:f[i][k+1]=f[j][k]+sum[j 阅读全文
posted @ 2018-12-15 23:48 cold_cold 阅读(165) 评论(0) 推荐(0)
摘要:显然dp方程可以得出为dp[i]=min{dp[j]+(sum[i]+i−sum[j]−j−L−1)2} 但是这种dp方式是O(n2)的,我们可以使用斜率优化的方法将其优化成O(n) 我们考虑将原DP方程变形 1. dp[i]=dp[j]+(sum[i]+i−sum[j]−j−L−1)2 将L++ 阅读全文
posted @ 2018-12-11 16:36 cold_cold 阅读(175) 评论(0) 推荐(0)
摘要:题意: 分别给出两个圆的圆心坐标和半径((x1,y1),r1和(x2,y2),r2),求两个圆相交部分的面积。 两个圆的关系,可分为三种情况,相离,相交,包含 1.相离或边缘重合,输出0即可 2.包含的话输出小圆的面积即可 3.相交的话 如上图,总面积等于SACC1=S扇形DCC1A-SΔDCC1A 阅读全文
posted @ 2018-12-07 13:36 cold_cold 阅读(311) 评论(0) 推荐(0)
摘要:题意:给定一个只包含小写字母的字符串,你可以修改任意位置的字符(变换为a-z中任一个) 然后重新排列字符串。现在要求用最少次数的修改得到一个回文串,若有多种方案,输出字典序最小的方案。 对于长度为偶数的字符串显然好说 我们只需开一个桶记录下a-z分别有多少个 偶数个的前后分别输出 个数/2次 即可 阅读全文
posted @ 2018-12-07 00:51 cold_cold 阅读(225) 评论(0) 推荐(0)
摘要:题意: 给一个字符串,里面的小字符串用','或者';'分开,筛选出所有的不含前导0的数字存在一个字符串里面,并用','分开 其余字符串存在另一个字符串里面,空字符串也要存,存在第二个字符串里面。 此题模拟即可 因为要判断前导0的时候 第一位出现1~9以外或以后的位数出现0~9进入非数字串 其他的主要 阅读全文
posted @ 2018-12-05 23:46 cold_cold 阅读(201) 评论(0) 推荐(0)
摘要:题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象。不妨看这样的一个问题。在一个社交圈子里有n个人,人与人之间有不同程度的关系。我 们将这个关系网络对应到一个n个结点的无向图上,两个不同的人若互相认识,则在他们对应的结点之间连接一条无向边,并附上一个 阅读全文
posted @ 2018-12-04 05:36 cold_cold 阅读(422) 评论(0) 推荐(0)
摘要:题目描述 给定一棵树,有N(N≤100000)个节点,每一个节点都有一个权值xi xi​(∣xi∣≤10000) 你需要执行Q(Q≤100000)次操作: 输入格式: 第一行一个整数N 接下来一行有N个整数表示xi 接下来N−1行,每行两个整数u,v表示u和v之间有一条边相连 接下来一行一个整数QQ 阅读全文
posted @ 2018-12-03 06:39 cold_cold 阅读(171) 评论(0) 推荐(0)
摘要:字符串匹配的朴素算法,我就不讲了,我们直接进入KMP算法 KMP算法的优化在哪里 正常的朴素算法n^2是枚举每一个字符串每一个点为起点,与模板进行比对,比对一次是O(m)的复杂度 所以总复杂度就是O(nm),这样的复杂度显然不符合要求,但我们可以发现对于这样的例子: 我们在发现了第四位B和D不一样了 阅读全文
posted @ 2018-12-02 11:49 cold_cold 阅读(196) 评论(0) 推荐(0)
摘要:题目描述 给出一个 N 个点 N 条边的无向连通图。 你需要支持两种操作: 修改 第 x 条边的长度为 y ; 查询 点 x 到点 y 的最短距离。 共有 {M}M 次操作。 输入输出格式 输入格式: 输入共 N + M + 1 行: 第 1 行,包含 2 个正整数 N,M,表示点数即边数,操作次数 阅读全文
posted @ 2018-12-01 16:03 cold_cold 阅读(234) 评论(0) 推荐(0)