
HDU
QiHang_QiHang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU1520(树型dp)
题意:要开派对,邀请了上司就不能邀请他的下属,邀请了下属就不能邀请他的上司,每个人有一个值,求邀请的人的总值最大思路:树形dp:把每个人看成一个点,则该点有两个状态:邀请或没被邀请定义dp[u][0]为节点没被邀请时的值;dp[u][1]为节点被邀请时的值状态转移方程:dp[u][0]=sum(max(dp[v][0],dp[v][1])//v为u的下属dp[u原创 2018-04-09 23:37:35 · 278 阅读 · 0 评论 -
HDU6333 2018多校第四场(莫队+组合数)
题意T组样例,给两个数n,m,求下式。题解先观察一手杨辉三角找找规律11 11 2 11 3 3 11 4 6 4 1可以得到f(n,m+1)=f(n,m)+C(n,m+1)f(n+1,m)=2f(n,m)-C(n,m).抽象的看由(n,m)可以得到(n-1,m)(n+1,m)(n,m-1)(n,m+1)所以可以用莫队来解决。#includ...原创 2018-08-03 15:26:38 · 588 阅读 · 1 评论 -
HDU6356 (ST)
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <algorithm>#include <iostream>#include <queue>#include <vector>#include <map&a原创 2018-08-07 17:12:02 · 344 阅读 · 0 评论 -
HDU6336 2018多校第四场(规律,矩阵前缀和)
题意给你一个由长度为L的数组A构造的无限大矩阵M,矩阵中的数构造方式如下int cursor = 0;for (int i = 0; ; ++i) { for (int j = 0; j <= i; ++j) { M[j][i - j] = A[cursor]; cursor = (cursor + 1) % L; }}输入...原创 2018-08-02 18:13:10 · 379 阅读 · 0 评论 -
HDU6365 (区间DP)
题意以原点(0,0)为中心建立二维坐标轴,在一二象限有一些线段(障碍物)。障碍物信息(H,L,R,W)分别表示高度、左右端点、和防御力。现从原点发出一些射线来消灭这些障碍物,每条射线的能量为X,消灭防御力为Wi的障碍物最小的能量是Wi。并且射线的能量在射穿障碍物是没有能量损耗的。问最少需要多少能量能够消灭所有的障碍。 题解1. 只需要考虑像所有障碍物的两个端点去发...原创 2018-08-10 16:10:06 · 576 阅读 · 0 评论 -
HDU6319 2018多校第三场(单调队列)
题意给你n个数a[N],求每个m长区间[i,i+m-1](1<=i<=n-m+1)里面的最大值maxval[i]和更新最大值的次数cnt[i](区间从左至右严格大于maxval[i]的次数)。题解利用单调队列可以很好的求出每个区间的maxval,但如果正向跑不好得出cnt,反相跑的话发现每次队列中的值就是cnt。因为维护的是一个单调递减队列,每一次加入的值小于队尾的值就直接...原创 2018-07-31 10:54:57 · 322 阅读 · 0 评论 -
HDU5919 Sequence II (主席树)
题意给出一个序列,问区间[l, r]中所有不同元素出现的第一个位置(取最左)组成的序列中的中位数。题解如果我们从后往前的话在当前位置i我们在主席树上i这个位置加1,在它之前出现的位置减1,然后我们在主席树询问区间的时候每个数都只出现一次了。查询[l, r]的时候,查询第l个版本的主席树就好,复杂度O(nlogn)。#include <iostream>#incl...原创 2018-07-22 09:41:22 · 228 阅读 · 0 评论 -
HDU1255求矩形面积交(线段树+扫描线)
分情况讨论1.cnt>1 : 说明该区间被覆盖两次或以上,那么长度就可以直接计算,就是该区间的长度剩下的情况就是cnt=1或cnt=02.先看叶子节点,因为是叶子没有孩子了,所以被覆盖两次货以上的长度就是0(无论cnt=1或cnt=0都是0,因为是叶子。。。)3.不是叶子节点 ,且cnt=1.注意这里,cnt=1确切的意义是什么,应该是,可以确定,这个区间被完全覆盖了1...原创 2018-07-21 16:12:30 · 290 阅读 · 0 评论 -
HDU6315(线段树维护区间最小值和区间求和)
题意给定一个初始数组b和一个初始值全部为0的数组a,每次操作可以在给定的区间(l,r)内让a[i](l=<i<=r)加一,或者查询区间区间(l,r)中a[i]/b[i](l=<i<=r)(向下取整取整)的和。题解a[i]/b[i]向下取整,那么a[i]每次加1,a[i]加b[i]次就对总和的贡献加1。那么我们维护一个b数组最小值,每次更新区间最小值tree[rt...原创 2018-07-26 17:07:47 · 871 阅读 · 0 评论 -
HDU1542线段树扫描线求矩形面积
AtlantisTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17436 Accepted Submission(s): 7080 Problem DescriptionThere are several ancie...原创 2018-07-20 17:05:57 · 288 阅读 · 0 评论 -
HDU6278(主席树+二分)
题意区间第k大代码#include<cstdio>#include<algorithm>#include<string.h>#include <string.h>#include <math.h>#include <vector>using namespace std;typedef long l...原创 2018-07-28 17:21:45 · 332 阅读 · 0 评论 -
HDU6299 2018多校第一场(贪心)
题意给n个由'('和')'组成的串,问按一定顺序排序后最多有多少个合法匹配的串。题解先将每个串中已经匹配好的串,用栈来去除,会得到一些串三种")))","(((",")))((("。所以每个串都有左括号个数和右括号个数的值,就用这两个值来排序。排序方式:有两种,从左至右的链接串,从右往左的链接串(两者排序方式相反)。从左至右:a[1]+a[2]+a[3]+...+a[n]。...原创 2018-07-24 18:47:33 · 304 阅读 · 0 评论 -
HDU1166线段树点更新
Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中...原创 2018-06-19 20:01:23 · 206 阅读 · 0 评论 -
HDU6415(DP)
题意给两个整数n,m,让你构造一个矩阵n*m的矩阵,此矩阵满足一下两点:1.只有一个元素在它的此行和此列中都是最大的(纳什均衡点)。2.矩阵中1~n*m中的数都恰好出现一次。问有多少种构造方法? 题解从大到小的放,下一个数需要放在已经被放过数的的行和列上,不然这个点就会成为新的纳什均衡点。我们设dp(i,j,k)表示当前已经放了i个数且有j行k列被放过数了。那么就...原创 2018-08-21 15:14:01 · 497 阅读 · 0 评论