- 博客(30)
- 收藏
- 关注
转载 DP学习一些好的东西(转载)
分类总结:https://blog.csdn.net/qq_1932568757/article/details/82725132背包问题:背包九讲 https://wenku.baidu.com/view/29208152192e45361066f57d.html背包专辑题目 https://blog.csdn.net/woshi250hua/article/details/76...
2019-05-29 19:44:18 136
原创 HDU 4578 Transformation(线段树乱维护)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4578解题思路:①各种标记,用到哪下放到哪。肯定是能想到用各种标记维护的,关键是标记之间会相互影响。现在有三个标记:mtag维护乘法标记,初值为1add维护加法标记,初值为0isset维护区间是否用一个数覆盖操作1,如果加法标记有数值,那么让它的值乘以乘法标记,这样下次计...
2019-05-30 23:02:03 108
原创 UVA 674 Coin Change(完全背包求解方案数)
题目链接:https://vjudge.net/problem/UVA-674解题思路:情景:一定容量V的包,有n样物品,每样无数件,重量wi,价值vi,问你背包最多有多少种可以装满的不同方案?做法:①dp[j] 表示当前只装前i件物品最大的价值②状态转移方程:dp[j] =(j>=w[i])? dp[j]+dp[j-w[i]] : dp[j] ;如果当前的背包不能装...
2019-05-29 19:41:24 239
原创 HDU 3974 Assign the task(线段树维护树的dfs序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3974解题思路:将所有的关系建树,每次修改每一节点的同时对其所有子节点修改。我们可以利用dfs序。记录某一个点进入(开始遍历子节点)的顺序,出去(所有子节点全部遍历)的顺序如图,其中一种dfs序为1 2 4 4 5 5 2 3 3 1,在一个节点这对位置中间都是都是这个节点的子节...
2019-05-28 20:40:31 108
原创 HDU 4027 Can you answer these queries?(线段树暴力修改+剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027解题思路:一个数组维护区间和。另一个维护区间是否都小于等于1,如果全是小于等于1就不用往下修改了。因为一个很大的数(2^63)开根号开不了几次就会等于1,所以就是这么暴力。注意每组测试数据后面一个换行。代码:#include<iostream>#incl...
2019-05-26 17:16:14 87
原创 洛谷 3808 【模板】AC自动机(简单版)
题目链接:https://www.luogu.org/problemnew/show/P3808学模板可以参考这篇博客:https://blog.csdn.net/weixin_43768644/article/details/98605417新手の代码:#include<cstdio>#include<cstring>#include<queue&...
2019-05-22 23:45:37 133
原创 “美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学)
补题链接:https://acm.ecnu.edu.cn/contest/173/已更新题解:A B D E H正在啃的:CProblem A解题思路:假设取了【l,r】的字符,直接用12345代替对应编号的字符1 2 3 4 512 23 34 45123 234 345 1...
2019-05-22 16:00:47 326
原创 Codeforces Educational Codeforces Round 65 Problem A->D
题目链接:http://codeforces.com/contest/1167Problem A暴力就好代码:#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>#include<cstring>#define ll long ...
2019-05-17 17:05:09 158
原创 Codeforces Round #560 (Div. 3) Problem A->E
题目链接:http://codeforces.com/contest/1165Problem A#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>#include<cstring>using namespace std;cons...
2019-05-16 20:32:32 100
原创 HDU 2050 折线分割平面
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050解题思路:因为看上去就像需要多写几项猜递推,然后想着怎样画可以让新产生的区域最多,猜测当第n条折线每条射线与n-1条边相交时区域最多。于是暴力画出了n = 3, 16n = 4, 29看一下数据量是n<=10000,又没有让你取模,推测递推关系不可能有n^2,2^...
2019-05-14 19:35:41 105
原创 HDU 2041 超级楼梯
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2041解题思路:dp[i]表示到这个台阶的方法,可以由上一级台阶或者上上一级台阶跳一步跳到所以dp[i] = dp[i-1] +dp[i-2]代码:#include<cstdio>#define ll long longll dp[55];///1->i的方...
2019-05-13 11:23:32 86
原创 HDU 2044 一只小蜜蜂...
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044解题思路:把从a到b转化到从1到(b-a+1)用dp[i]表示从1到i的方法数,i可以从i-1,i-2直接跳过来,所以dp[i] = dp[i-1]+dp[i-2]代码:#include<cstdio>#define ll long longll dp[55]...
2019-05-13 11:14:04 96
原创 HDU 2018 母牛的故事
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2018解题思路:①尝试暴力打表(欲DP,先暴力)失败,最后遍历次数太多炸了。代码:#include<cstdio>#include<algorithm>#include<vector>using namespace std;int dp...
2019-05-13 10:04:57 80
原创 HDU 2084 数塔
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084解题思路:dp[i][j] 表示从下往上走到达第i层,第j个位置时的最大值 //反正从上到下,从下到上,最大值都是一样的。状态转移方程:dp[i][j] += max(dp[i+1][j],dp[i+1][j+1]);代码:#include<cstdio>#i...
2019-05-13 08:25:07 84
原创 POJ 1251 Jungle Roads(最小生成树)
题目链接:http://poj.org/problem?id=1251解题思路:是直接的最小生成树裸题。需了解最小生成树的两种算法。①kruskal算法将所有边按照权值从小到大排序,然后遍历边。用并查集维护最小生成树。当当前起点和终点不在同一集合,这条边就加入最小生成树。同时,将两个点所在集合并在一起。复杂度主要取决于边的排序:O(e * log e) //e表示边数...
2019-05-12 20:10:08 160
原创 LA 3026 / HDU 1358 Period (kmp,证明的应该挺详细)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1358参考资料:算法竞赛入门经典 训练指南,刘汝佳 陈锋 著解题思路:构造串的kmp数组,next[i]表示0~i-1子串前缀和后缀集合最大相同长度。例子:abbabb(编号0~5)前缀集合:a,ab,abb,abba,abbab后缀集合:b,bb,abb,babb,bbabb...
2019-05-11 16:05:27 189
原创 HDU 1878 欧拉回路(并查集+欧拉回路判定)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1878解题思路:①欧拉回路的定义:从图中某一顶点出发,所有边仅经过一次,最后回到该顶点。②判断欧拉回路:前提:这个图是连通的,也就是所有点都连在一个图上了无向图:顶点度数为偶数有向图:所有点入度 = 出度③判断是否连通用并查集即可,另外就是度数的统计。对于并查集陌生可以参...
2019-05-11 12:55:40 140
原创 HDU 4857 逃生(反向的拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857解题思路: 题目的意思是让你在一些约束条件下,尽可能的让束缚小编号的编号快点走,从而让这个小编号尽快走。 假设这个过程是破除阻碍尽量让编号小的入场的情景,那么这个过程的反过程就是尽量让编号大的先出场,编号小的即使能出去也不让他们出去直到必须让他们出去。所...
2019-05-11 12:20:40 154
原创 “新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛 CSL的字符串
题目链接:https://ac.nowcoder.com/acm/contest/551/D解题思路:遍历字符串,模拟获取最大子串的过程。用一个栈来模拟。如果当前字符比栈顶字符小,且栈顶字符不是字符串中最后一位该字符时,把栈顶字符踢掉。直到踢到不能在踢。然后把当前遍历字符入栈。不过,前提是当前遍历字符没有在栈中出现过。说不清怎么证明,只是学到了一种模拟的思路。以后写写其他题...
2019-05-10 15:20:51 121
原创 HDU 1285 确定比赛名次 (拓扑排序+字典序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285解题思路:普通的拓扑排序就是按照进入队列的顺序输出点,在队列中的点都是在同一时间都符合要求的,那么怎样保证输出的编号最小?就用优先队列。代码:#include<cstdio>#include<queue>#include<algorithm>...
2019-05-10 14:14:13 184
原创 UVA 10305 Ordering Tasks(拓扑排序)
题目链接:https://vjudge.net/problem/UVA-10305解题思路:单向建边,将终点的入度加一。当一个点入度为0时,这个点就可以被输出,同时这个点对应所有终点入度减一。用bfs实现。代码:#include<cstdio>#include<queue>using namespace std;const int N = 1...
2019-05-10 08:37:49 111
原创 HDU 3478 Catch(二分图及其性质)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3478解题思路:题目的意思可以理解为能否存在这样一个步数,使得刚好花费这些步数可以到达所有的点。那么我们可以把步数假设为无限大。假设这个步数为偶数(用奇数考虑也可以),那么所有偶数步可以到的点一定能到,对吧。那么奇数步的点怎样才能到呢,我们需要经过奇数步后,到达原先的偶数点。怎样才行...
2019-05-09 19:27:22 166
原创 HDU 1711 Number Sequence(KMP模板题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711解题思路:1.暴力匹配会超时。对于aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab和ab这种串复杂度会有O(N*M)2.所以学一下专门解决此类问题的KMP算法。当时的板子:#include<bits/stdc++.h>...
2019-05-09 15:30:52 149
原创 UVA 10004 Bicoloring (二分染色)
题目链接:https://vjudge.net/problem/UVA-10004题意:给你一个连通图,问能否将每个节点染成两种颜色之一,使得每条边两边的节点颜色不同。(本质就是二分图的判定,有个定理是:一个无向图为二分图当且仅当图G中无奇数长度的回路。)解题思路:可以用dfs染色,对没有染过的点染色,如果该节点之前被染过且与当前要染的颜色不同那么就不能构成二分图。dfs到了染...
2019-05-07 22:21:47 203
原创 HDU 1213 How Many Tables(并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213解题思路:并查集裸题。并查集两大功能:①合并两个集合②查找某个元素在哪个集合若并查集数组为uf[],则uf[i]表示编号为i的点的“上级”,如果uf[i] = i表示当前的点是一个集合的“大头目”。int find1(int x)///找到大头目{ int r = x;...
2019-05-07 18:40:45 158
原创 CodeForces - 13E Holes(分块)
题目链接:http://codeforces.com/problemset/problem/13/E解题思路:暴力法①:O(1)修改,O(N)询问暴力法②:直接维护每个点出去的次数,那么O(N)修改,O(1)询问用分块的思想,维护O(sqrt(N))修改,O(sqrt(N))询问x[i]代表出i属于的块需要几步,y[i]表示i挑出这个块后跳到的具体位置如果做过弹飞绵羊这题是...
2019-05-05 23:13:19 179
原创 CodeForces - 103D Time to Raid Cowavans (分块思想)
题目链接:http://codeforces.com/problemset/problem/103/D题目大意:给出n头牛的质量,有p次操作,每一次的[a,b]操作,让你求从a开始,a+b,a+2b....直到超过n的这些牛的质量。参考自:https://www.cnblogs.com/kirito520/p/5933636.html解题思路:①首先考虑最原始的暴力,每次询问暴力相...
2019-05-05 16:32:57 191
原创 “新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛 B CSL的密码
题目链接:https://ac.nowcoder.com/acm/contest/551/C解题思路:数据随机生成,当子串大于长度一定值默认认为不相同。小于这个默认值的,要么扔进set,要么hash代码:#include<cstdio>#include<algorithm>#include<cstring>#include<se...
2019-05-04 16:36:54 105
原创 HYSBZ 2957 楼房重建(分块)
题目链接:https://vjudge.net/problem/HYSBZ-2957参考来自: https://www.cnblogs.com/kirito520/p/5945427.html解题思路:①当前房子能被看见当且仅当之前所有房子的斜率都比当前房子斜率小。(这个人是从(0,0)仰视着看的)②考虑暴力,修改O(1),查询则O(N)遍历。复杂度 就是 N^2这个O(N)遍...
2019-05-04 13:09:19 137
原创 HDU 1403 Longest Common Substring (后缀数组模板题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1403解题思路:数据100000,普通LCS超时。用后缀数组 N*logN 求得LCS首先一定要了解一下基数排序。参考的是罗穗骞大佬的论文,放个链接:https://wenku.baidu.com/view/5b886b1ea76e58fafab00374.html对其中一些地方的理...
2019-05-03 18:47:46 246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人