2018模板整理
文章平均质量分 50
Joey丶sunk
古今成大事者 不惟有超世之才 亦必有坚忍不拔之志
展开
-
HDU-6395 Sequence 暴力+分块+矩阵快速幂 2018 Multi-University Training Contest 7
题意:给定公式如题;求 f[n] ,n < 1e9思路:根据前面部分,明显的是矩阵快速幂,但是后面还加了个 P/n 向下取整然后我们会发现 P/n 这个数对于某些n是一样的,所以我们想到有这个值进行分块处理;只要把前 1e6 个 f 数组求出来 ,这样对于 k = P/n ,最大到1000,只要枚举k,然后此时对应k的一个区间可以用矩阵快速幂求解注意n可能大于P;...原创 2018-08-13 18:57:41 · 152 阅读 · 0 评论 -
HDU - 1754 I Hate It 分块入门(分块思想)
题意:给定一段序列,更新某个点的值,查询某个区间的最大值;思路:首先,这个题的很好的做法应该是线段树,线段树是维护区间最值的很好的数据结构,这里作为分块算法的入门题,学习一下;分块 听说很牛逼,还有分块的思想也是很好的,是把问题根据某个条件分割,然后对某一部分进行暴力; 有点类似于哈希对于这个题,更新和查询的复杂度都是 sqrt() 级别的,#include原创 2017-11-14 11:58:25 · 322 阅读 · 0 评论 -
书单|数据挖掘基础到应用
转自:http://baijiahao.baidu.com/s?id=1603480977069194809&wfr=spider&for=pc@微软研究院不久前我们推出的《推荐算法不够精准?让知识图谱来解决》以及《如何将知识图谱特征学习应用到推荐系统?》系列文章受到了同学们的广泛欢迎。大家对推荐系统以及与之相关的、底层的数据挖掘技术非常关注。为了帮助小伙伴们更好地学...原创 2019-04-30 16:55:08 · 125 阅读 · 0 评论 -
数据挖掘十大经典算法
转载自:https://blog.csdn.net/qq_36523839/article/details/82383597本文主要分析皆来自其他资料,借用较为权威的总结来对我已经学习的这些经典算法做一个极为精简的概述(根据自身经验有一定修改),另外同时附上机器学习实战中作者对各种算法的评价。另外机器学习实战这本书是本人看了这么多书籍或者资料中唯一一本坚持从头看到尾,看完了的书籍,包括其中的代...转载 2019-04-30 16:48:45 · 150 阅读 · 0 评论 -
HDU - 5992 K - Finding Hotels kd-tree求最近点对 改板子
题意:给定n个旅馆,m个人,每个旅馆有一个价格,每个人有个能承受的最大的价格对于每个人,输出离他最近的,并且价格在其承受范围之内的旅馆的坐标和价格思路:这个题一看就是最近点对,但是也没想那么多,直接套上kd-tree板子改了一下就过了其实这个题要是所有的旅馆在一个大圆上,所有的人都在圆心附近,这样的话复杂度就很高了,可能是随机的数据比较弱再说kd-tree: 刚刚现学的,现...原创 2018-10-04 09:16:50 · 282 阅读 · 0 评论 -
Codeforces Round #512 F. Putting Boxes Together 推导+树状数组+带权中位数
题意:给定n个物品,每个物品有一个位置和权值,移动一个物品的花费是 移动距离*物品权值,问:把一部分物品合并成相邻的一段,需要的最小花费思路:最优策略是某个物品不动,这个物品左边的依次往右移动,其右边的物品依次往左移动,(下文中的上述情况)反证一下:假设最优情况下不动的这个物品往右移动了,那他和他左边的物品相当于上述情况下增加了他们权值和的花费,而右边的物品减少了权值和的花费,...原创 2018-10-16 19:04:11 · 216 阅读 · 0 评论 -
Mail.Ru Cup 2018 Round 1 D - Changing Array 前缀异或和&贪心
题意:给定n个数的序列,每个数的二进制数看作是k位的,你可以改变任意一个数,使得区间异或和不为零的个数最多,改变的规则可以是把每个数跟 2^k - 1 进行异或思路:首先我们需要知道区间异或和可以有区间前缀异或和得到,,即 a_i-j = sum_j ^ sum_(i-1);还要知道这样的一段区间,不论改变那个数,改变几个,区间的异或和只有两种可能; // 刚刚知道这样的...原创 2018-10-28 19:35:50 · 250 阅读 · 0 评论 -
Educational Codeforces Round 53 (Rated for Div. 2) D. Berland Fair 二分+树状数组 O(n*logn*logn) 思路
题意:给定n个店铺,每个店铺买的东西有个价格a_i,数量有无限个,然后主人公从1号开始走到n号,每走到一个店铺,只要他的钱大于价格,他就要买,然后重复上述过程,直到他不能购买,输出他能买的物品件数;思路:直接模拟的话,必然不可行,但是我们知道模拟时到达一个位置后买不起这里的东西就可以把这个店铺给踢了(好坏!),然后继续后面的过程,如果要是我的钱足够买完一轮的话,我会除一下,取下膜,这样...原创 2018-11-03 13:39:12 · 238 阅读 · 0 评论 -
Codeforces Round #513 E. Sergey and Subway 树形dp (树+dfs) 树上任意两点距离和
CF: dfs and similar dp trees *2000 题意:给定一个n个点的树,(n最大2e5),如果原图(树)中有边 u-v, v-w ,那么现在你可以连一条边u-w;问任意两点间最短距离的和;思路:开始想的对原树dfs,用dp[i][2] 分别表示到i结点距离为偶数和奇数的最小花费,但是很麻烦。。。其实:按照题目给定的要求,我们...原创 2018-11-09 19:40:47 · 340 阅读 · 0 评论 -
牛客11月1日 区区区间间间 栈求取版+详解
题意:见 https://blog.csdn.net/xiang_6/article/details/83653989 本题线段树解法 思路:本分代码思路较为清奇,也很好首先由线段树解法那篇题意我们知道,要求区间最大值的贡献的时候,我们要知道这个数能辐射的区间范围,例如再求某个值V作为最大值的贡献的时候,我们只要找到其左右两边比他大的两个数(没有这样数的时候就是0,n+1两...原创 2018-11-02 14:43:20 · 278 阅读 · 0 评论 -
Codeforces 1070C - Cloud Computing 思路+线段树+贪心 (2018-2019 ICPC, NEERC)
CF:*2000 题意:有n天,每天需要用k个cpu, 然后给定m个计划,对于每个计划包含 L, R, c, p 表示,从第L天到第R天期间,每天你都可以选用c个cpu,每个cpu的花费为p; 问n天的最小花费;(当某天不能得到k个cpu时,就把能选的全选)思路:首先按暴力的思路选择,肯定是对于某一天 优先选择价格p小的cpu,这样没错,但是复杂度不允许;然后我想到了把m...原创 2018-11-05 15:19:19 · 468 阅读 · 0 评论 -
Gym - 101611G God of Winds 思路思路思路 2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest
题意:给定一个n*m的网格,每跳边有一个初始值,在一些格子里填数,会对这个格子的4条边有影响问是否存在填数方案使得所有的边值为0;思路:对于每一列格子的横边,若是加和为0,那一定存在一种解使得这一列横边为0,对于每一行格子的竖边,若是加和为0,那一定存在一种解使得这一行竖边为0,可以看作一组方程式的行列式若满足上述两个条件,即有解 另一种思路:若有解,即有无数种...原创 2018-09-25 20:38:06 · 545 阅读 · 0 评论 -
HDU - 6249 Alice’s Stamps dp+线段树+讲解
题意:给定n个区间 [Li, Ri] ,让你选择最多 k 个,问区间的并最大是多少; 思路:看网上题解都是n^2 对区间进行操作的,我的方才比赛做法是n^3 优化成n^2 * logn的 首先我们去重,按照区间右值排序,用dp[i][j] 表示当前选到第i个区间,已经选了j个区间的最大区间并的长度,这样的话进行下次转移的时候,我们还得考虑前面选了的区间的最右值是多少,这...原创 2018-09-07 14:21:53 · 295 阅读 · 0 评论 -
HYSBZ - 1010 玩具装箱toy dp+斜率优化
题意:略思路:见上篇博客详解https://blog.csdn.net/xiang_6/article/details/81479453 #include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<string>#in...原创 2018-08-07 14:39:24 · 150 阅读 · 0 评论 -
斜率优化讲解 (例题:Print Article HDU - 3507 斜率优化)
斜率优化的学习: 题意:将序列划分,每段花费如题:区间和平方+m; 求最小花费;思路:用dp[i] 表示前i个数划分的最优解,sum[i] 表示前i个数的和显然dp[i] = max ( dp[j] + (sum[i]-sum[j])² + m ) for j : 0 to i-1; 复杂度O(n²):× 即需用到“斜率优化”;对于一般的n²-dp方程,可能有...原创 2018-08-07 13:45:37 · 244 阅读 · 0 评论 -
Codeforces Round #501 F. Bracket Substring 思路+dp+KMP 详解
题意:给定n和一个括号序列 t,问:一个长度为2*n 的括号序列 s 的种类数,要求 t 是 s 的子串,s是平衡括号序列;思路:这个题算是 BZOJ - 1009: [HNOI2008]GT考试 dp+KMP https://blog.csdn.net/xiang_6/article/details/81434904的简化版本; 解释一下这个题: 首先我们不考虑是否是平衡...原创 2018-08-08 11:22:29 · 467 阅读 · 2 评论 -
HDU - 6370 Werewolf 推规律+拓扑判环+bfs
题意:给定n个玩家,每个玩家只有两种身份;然后每个玩家说某一个玩家是人还是狼,如果这个玩家是人,那他只会说真话;否则可能说假话可能说真话; 思路:开始我们以为没法判断是否有确定的解,猜了0 0 不对,后来发现:当两个玩家A,B:A说B是人,B说A是狼,那如果A是人的话,B就是狼,而A说B是人,矛盾,那么A不可能是人,即判定了A是狼由此再推,三个,四个....玩家成环的情...原创 2018-08-08 20:24:10 · 246 阅读 · 0 评论 -
HDU - 6435 Problem J. CSGO 多维最远曼哈顿距离+原理 2018多校-10
题意:给定 n个物品A 和 m个物品B;每个物品都有一个值 s 和 k 个属性值 x[i],问:从n个物品中选一个 i,m个物品里选一个 j,ans = i_s + j_s + Sigma( | i_x[t] - j_x[t] | , t : [0,k-1] ); 求 ans 的最大值思路:如果 Sigma部分求差值绝对值哪里不是绝对值的话,那样对于 i 物品中 x[i...原创 2018-08-22 21:16:08 · 282 阅读 · 0 评论 -
HDU - 6434 Problem I. Count 推导+欧拉函数
题意:(如下)Multiple query, for each n, you need to get n i-1 ∑ ∑ [gcd(i + j, i - j) = 1] i=1 j=1 思路:在求解 ans_n 时,首先我们考虑小于 n 的 i, 我们要check 如题意满足的 gcd(a, b) 是否为1,也就是 a 跟 b 是否互质也就是对...原创 2018-08-22 21:35:13 · 683 阅读 · 0 评论 -
HihoCoder - 1636 Pangu and Stones 区间dp
题意:给定n堆石子,每次可以合并其中相邻的一些堆,合并的数目在区间[L,R]中,每次合并的花费是他们数量的和思路:明显的区间dp,但是有个点很巧因为每次合并都要限定合并的个数,所以区间dp的时候要记录个数状态;容易想到的是方程是:dp[i][j][k] 表示把 i 到 j 区间合并后,得到 k 堆石子的 最小花费,唯一的转移的方式就是合并成一堆的时候,其余的情况只是等式...原创 2018-08-30 22:06:07 · 136 阅读 · 0 评论 -
Aizu - 1386 Starting a Scenic Railroad Service 思路+树状数组
题意:给定n个乘客的乘车区间,问他们乘车最坏情况下需要座位数和最优情况下需要座位数 思路:这个最坏情况是每个人任选座位,不管有冲突的怎么选,每个人都能做得下;这里我们考虑的是每个人乘车区间会跟别的几个人冲突,那加上他自身的个数选个最大的就是至少需要的座位数显然不能n^2求解,所以我们按区间左值从小到大排序: 先从左往右遍历,每个区间的右值更新到树状数组里,对于当前区间,我们只要...原创 2018-08-28 12:57:47 · 313 阅读 · 0 评论 -
CTU 2017 J. Punching Power 建图+最大二分图匹配
题意:给定n个点,选一些点放置拳击机器,两个机器之间距离大于1.3,也就是两个机器不能同行挨着,同列挨着;问能防止的机器数最大多少 思路:题目可以转化成最大独立集,因为在坐标系里,不存在基环,那么就可以用匈牙利算法解决二分图最大匹配解决关于建图,把相邻的两个点(冲突的两个点)建边,然后跑二分图最大匹配数为ans,最后答案就是n-ans;注意,这里建的双向匹配边,所以an...原创 2018-08-21 21:47:18 · 250 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 E.AC Challenge 状压dp
题意:给定n个作业,每个作业有两个值a,b, 第i天完成这个作业会得到value :i*a + b; 但是完成这个任务之前需要完成一些别的任务 思路:乍一看像是搜索,但是似乎不太行(好像可以写过)但其实一想,更是dp,状态数(1<<20) ,显然可以状压,想到dp[i][t] 表示 当前做完第i个作业,状态为t时的最大value然后可以直接滚动数组, dp[t...原创 2018-09-04 00:01:53 · 176 阅读 · 0 评论 -
[模板] 斜率优化dp详解
转自大佬:https://blog.csdn.net/bill_yang_2016/article/details/54667902 算法简介今天xinyue讲了斜率优化,全程懵逼,居然还有这么牛逼的东西。 于是与achen讨论了一下,总结一些东西。 斜率优化Dp其实是单调队列的推广,单调队列、旋转卡壳、斜率优化都利用了单调性降低时间复杂度。算法简介举个例子 有些动规状态...转载 2018-08-06 10:56:31 · 10040 阅读 · 0 评论