![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HDOJ
我不吃海鲜
这个作者很懒,什么都没留下…
展开
-
HDOJ 1166 树状数组
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1166、这题以前写过。不过用的是线段树。今天了解了一下树状数组。就用这个方法重新做了一下。特点就是lowbit函数。本来自己在草稿纸上拆解了一下树状数组的过程但是因为不知道为什么上传不了图片就没办法了。emm。其实这个就是公式C[i] = A[i+2^k-1]+A[i+2^k-2]+…..A[1]。k就是和i原创 2018-02-03 15:22:13 · 181 阅读 · 0 评论 -
HDOJ 1052 贪心
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1052题意:田忌赛马怎么赢得多。下面A为田忌,B为齐王先排序,然后从快马开始比较。当快马A > 快马B 时候: A的快马直接赢B的快马。当快马A < 快马B 时候 : A的最慢的马直接送给B的快马赢。当快马A == 快马B 时候 : 开始比较最慢的马: ...原创 2018-02-16 14:14:11 · 236 阅读 · 0 评论 -
HDOJ 1053 哈夫曼树长度
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1053题意:每个编码都有哈夫曼和ascall两种。问该序列的哈夫曼长度和ascall长度以及比。因为只需要长度,可以用优秀队列模仿建树过程,不需要建树。 还有就是注意cout表达小数点后一位的方法。#include<bits/stdc++.h>#define INF 1e18#define inf 1e原创 2018-02-17 11:58:54 · 246 阅读 · 0 评论 -
HDU 1055 贪心,并查集
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1055题意就是怎么在规定情况下染色这个树代价最小。其实这道题,直接思考可能会不知道怎么贪心。我们不妨换一个思路。假设,我浪费一个时间啥都不染色。那么最后出来的结果必定比最小的sum大一个节点权值和。所以我们可以理解成,选中这个节点几次。为了让权值最小。权值大的我们就应该越早的选中。让sum少加这个权值次数。因原创 2018-03-14 17:29:57 · 219 阅读 · 0 评论 -
HDU 6082 完全背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6082这是中文题,肯定就不需要翻译了。这道题很有意思。和前两个月个月华东师范差不多的DP题。 这是一个很明显可以用背包问题解决但是会超时的题目。因为数据量太大了。但是这种题目有个特点。 就有一个状态很小。可以开二维数据进行打表喽。 不过这题题目有个注意的地方就是。他是打怪伤害可以超的。所以我们在每一次D原创 2018-03-14 20:34:34 · 129 阅读 · 0 评论 -
HDU 2063 二分图匹配,模板题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2063 定义和定理:最大匹配数:最大匹配的匹配边的数目 最小点覆盖数:选取最少的点,使任意一条边至少有一个端点被选择 最大独立数:选取最多的点,使任意所选两点均不相连 最小路径覆盖数:对于一个 DAG(有向无环图),选取最少条路径,使得每个顶点属于且仅属于一条路径。路径长可以为 0(即单个点)。定理1原创 2018-03-15 10:10:58 · 170 阅读 · 0 评论 -
HDU 1054 二分图匹配(最小点覆盖)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1054 以前用树形DP做过这个。最近学了二分图,找题就又看到了这个图。我们重新分析一下。因为他是放卫兵后他相邻的就可以不放。假设放置为1的集合,不放的为0的集合。我们就可以把他转换成二分图。所以理所当然就成里最小点覆盖。因为定理1,最小点覆盖==最大匹配边数。#include<bits/stdc++.h>原创 2018-03-15 10:57:36 · 171 阅读 · 0 评论 -
HDOJ 3979 贪心 水题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3979注意:用long long存答案。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,...原创 2018-03-01 17:19:44 · 182 阅读 · 0 评论 -
HDOJ 1232 查并集
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1232题意:还要修多少条路才能让n个小镇全部相连。查并集。用树来理解。在一个集合里,他们会有相同的根。有相同的根为一个集合。用数组来实现。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#def原创 2018-02-23 16:38:24 · 245 阅读 · 0 评论 -
HDOJ 1878 查并集
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1878题意:判断能否走一个欧拉回路(题目中文解释)#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,m,rt<<1原创 2018-02-23 17:29:18 · 145 阅读 · 0 评论 -
HDOJ 1051 贪心
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1051题意:给你一组数据要求l < l',w<w'。贪心,l和w从小到大排序(优先l)。通过l确定了w的位置。然后对w的递增序列个数一个遍历就行了#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(...原创 2018-02-12 17:01:49 · 207 阅读 · 0 评论 -
HDOJ 1044 BFS+DFS
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1044 题目大概意思就是一个迷宫L步之内找价值最多的宝石并且到出口。 最开始我用了dfs LTE。bfs我感觉不适用这个题。求最大值肯定是要类似于dp的思想,搜索里面肯定是dfs才能实现。然后发现其实这就是,这几个宝石可以当做路口,然后每个路口加个分,问L步之内最多多少分。也就是可以当成树。然后就是建树,原创 2018-01-29 22:24:48 · 180 阅读 · 0 评论 -
HDOJ 1046 水题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1046#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,m,rt<<1#define rson m+1,r,rt<原创 2018-02-09 09:37:40 · 174 阅读 · 0 评论 -
HDOJ 1043 八数码问题(经典题) bfs+托康展开
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1043 这道题很尴尬的是VC里跑的是错的。但是OJ上是A的。 VC中strcpy后让我的赋值语句错了????半天不知道为什么。最后绝望的随便扔了下OJ。A了?? 然后我直接给strcpy换成了for循环赋值。MMP#include<bits/stdc++.h>#define PI...原创 2018-01-19 20:44:46 · 620 阅读 · 0 评论 -
HDOJ 1047 水题 大数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1047#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,m,rt<<1...原创 2018-02-09 13:04:12 · 277 阅读 · 0 评论 -
HDOJ 3342 拓扑排序
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3342题意:判断有无环#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,m,rt<<1#define rson m原创 2018-02-09 19:05:44 · 173 阅读 · 0 评论 -
HDOJ 1048 水题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1048#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,m,rt<<1#de...原创 2018-02-09 23:31:18 · 131 阅读 · 0 评论 -
HDOJ 1049 水题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1049#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,m,rt<<1#de...原创 2018-02-09 23:36:50 · 151 阅读 · 0 评论 -
HDOJ 1050 贪心
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1050题意:搬桌子从a到b,问最多需要多少时间。这题目就是英文有点坑。思路很简单用贪心就可以做了。但是要注意由于这是旅馆搬桌子所以a,b要处理一下。按8间房为例,排列顺序如下:1 3 5 72 4 6 8如果1到5同时6到7。因为5和6对面所以要20分钟。就是把a如果为偶数--,b为奇数++。处理一下就行了...原创 2018-02-10 00:31:56 · 314 阅读 · 0 评论 -
HDOJ 1285 拓扑排序 水题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1285最简单的拓扑排序题就不多说了。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,m,rt<<1#define原创 2018-02-09 16:48:31 · 295 阅读 · 0 评论 -
HDOJ 1541 树状数组
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1541 题意:给一组星星,每颗星星左下角有多少个星星他就是多少级。然后输出没级星星个数。 题目按y升序。所以只要考虑x。 因为X,Y的范围不大。只有32000,所以可以建立树状数组了。#include<bits/stdc++.h>#define PI 3.1415926#define INF 1e1原创 2018-02-05 16:05:12 · 208 阅读 · 0 评论 -
HDOJ 1054 树形DP
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1054简单的树形DP,不多说。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define min(a,b) a<b?a:b#define max(a,b) a>b?a:b#define lson l,m,rt&...原创 2018-02-23 22:56:43 · 206 阅读 · 0 评论 -
HDU 2444 二分图判定+最大匹配
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2444 用模拟上色来判定了。然后判定完再用最大匹配就好了。 尴尬的是No打成NO,WA了1个小时找不到错。尴尬#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r原创 2018-03-16 11:42:35 · 125 阅读 · 0 评论 -
数位DP
数位DP,以前接触过。没有深入了解。这次想系统的了解学习一下DP,特意重新看了下。首先,放上模板typedef long long ll; 2.int a[20]; 3.ll dp[20][state];//不同题目状态不同 4.ll dfs(int pos,/*state变量*/,bool lead/*前导零*/,bool limit/*数位上界变量*/)//不是每个题都要判断前导零...原创 2018-03-05 21:30:30 · 237 阅读 · 1 评论 -
HDU 1061 找规律
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1061 题目求最左边的一位。这就明显是找个规律打表了。因为只和最后一位有关。他又是只有n去乘。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1原创 2018-03-19 10:06:30 · 191 阅读 · 0 评论 -
HDU 1062 字符串处理
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1062 题目很简单,不多说 下面是自己的代码:#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define IOS ios_base::s原创 2018-03-19 10:40:42 · 297 阅读 · 0 评论 -
HDU 1063 字符串 大数相乘
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1063emm这题就是快速幂加大数加细节了。1.0^n = 1不要带小数点。主意这个就行了。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#de原创 2018-03-19 11:32:16 · 143 阅读 · 0 评论 -
HDU 1856 并查集+离散化
题目:题目很简单。是一个标准的并查集。但是这道题发现了我以前代码的缺点。先放AC代码。然后再来说明错误的地方。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define IOS ios_base::sync_with_stdio(f原创 2018-03-13 16:27:22 · 184 阅读 · 0 评论 -
HDU 46DP (7 01背包问题 8 最长上升子序列O(n*n))
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2602 模板题#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define IOS ios_base::sync_with_stdio(fa原创 2018-03-19 20:04:12 · 128 阅读 · 0 评论 -
HD 48DP 1069(最长递增子序列)?
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1069 别人的方法和我有点不一样- -?我的是真的暴力。。。。不过也可以优化。不过数据很小也懒得了。#include <bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r,rt<<原创 2018-04-02 20:59:29 · 132 阅读 · 0 评论 -
HD 48DP 1171 多重背包问题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1171 以前做多重背包的问题。都是直接用母函数做的。但是这次不能了- -,因为这个数据有点多。。用母函数肯定要跑很久。要是和上次那个6个数字一样用母函数就好很多了。多重背包问题其实最主要的就是多一次预处理。因为二进制可以表示任意10进制的数。所以通过二进制的思路进行预处理。后来就当做普通的01背包问题就行了原创 2018-04-03 10:18:09 · 137 阅读 · 0 评论 -
HDU 1532 网络流
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1532标准的网络流裸题#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm>#include <math.h>#include ...原创 2018-04-25 18:32:57 · 306 阅读 · 0 评论 -
HDU 1429 bfs+优先队列+状态压缩
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1429先用了DFS+BFS上一题的套路。然后把钥匙叠加到门上。 后来发现自己错了- -。这样想有问题。比如。AB门在左边。ab钥匙在右边。 emmmmm错的代码也放上来。毕竟还是有些地方可以参考一下??- -#include<bits/stdc++.h>#define INF ...原创 2018-03-12 20:35:13 · 145 阅读 · 0 评论 -
HDU 1060 数论
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1060 开始还以为是一个找规律的题目。后来试了下错了。那肯定是公式了。总不可能真去算。 下面我们假设pow(n,n) = sum。 我们将 sum 记作 a*10^n (1<=a < 10) 两边log10(没为啥。你说现在除了log10还能干吗) log10(sum) = log10(a) +原创 2018-03-18 21:43:52 · 131 阅读 · 0 评论 -
HDU 46DP 之一(01背包DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2955 这道题开始被误导了。 因为是小数。所以直接放大去做。然后突然想起来概率是乘除来的???? 然后我们求成功的概率更容易嘛。预处理一下。然后拿价值当容量。拿概率当价值。最后DP结束后只要从后开始找。找到概率大于等于1-p的就输出他的容量。#include<bits/stdc++.h>#define原创 2018-03-17 12:06:31 · 122 阅读 · 0 评论 -
HDU 46DP 之二(01背包问题)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1864 这道题就是都是小数,所以直接扩大100倍。当成正常的背包问题。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define IOS原创 2018-03-17 12:08:11 · 125 阅读 · 0 评论 -
HDU 46DP 之三
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1231 这题目很早前做过很多次累死的,不过当时使用模拟。贪心来做的。这次用了DP 因为要输出头元素和尾元素。所以用结构体保存方便一点。 dp[i] = max(dp[i],dp[i-1]+val[i]);#include<bits/stdc++.h>#define INF 1e18#define i原创 2018-03-17 16:13:29 · 107 阅读 · 0 评论 -
HDU 48DP 之四
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003和前面那题差不多emm。没啥说的。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define IOS ios_base::sync_w原创 2018-03-17 16:21:53 · 126 阅读 · 0 评论 -
HDU 46DP 之五
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1506这个题目我最开始的思路是DP前i块时候的最大面积。后来发现不行。然后在DP前i快面积是,觉得左边和右边满足条件的是可以DP出来的。有了思路。#include<bits/stdc++.h>#define INF 1e18#define inf 1e9#define lson l,m,rt<<1#d原创 2018-03-17 20:05:08 · 137 阅读 · 0 评论 -
HDU 46DP 之六(1506加强版)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1505 说真的这道题不让我做了1506来做我还真不知道要怎么做这题- -。不过今天是做了1505来的。所以也就容易想到了。他是面积。但是我们可以通过牺牲时间来降维啊。我们把n变成高。然后就成了操作n次m长的序列。就是前面那题了。#include<bits/stdc++.h>#define INF 1e18原创 2018-03-17 20:25:11 · 142 阅读 · 0 评论