自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 hdu 3974 Assign the task

因为刚学线段树,这个题做的时候费了不少劲,尤其是树的序列化,看了题解才知道:(对于更新一个结点及其子节点的操作,我们在树上没办法直接操作,我们可以考虑利用dfs给所有点编一个开始点号和结束点号,这样在开始和结束点号间的点号都是该结点的子结点,所以只要对这个区间的数操作即可完成对所有子节点的操作,就成功将树给序列化了,然后进行正常线段树操作就行,访问的话访问l或者r查询其标记值即可。)然后找到祖...

2019-09-11 21:11:04 131

原创 hdu 4027 Can you answer these queries?

刚学线段树,只能做点这些线段树模板题,在区间更新的时候,可以想到,开平方的话不需要太多次就能到1,而这个时候再更新的话会重复计算很多次,所以需要加一个特判,基本上就这一个点了。#include <iostream>#include <cstdio>#include <algorithm>#include <string>#include &...

2019-09-11 21:07:08 96

原创 Knapsack Cryptosystem(牛客多校第九场)

Knapsack Cryptosystem本题大意:给出n个物品的价值和一个值s,n个物品可以取可以不取,求取出的任意个物品的价值总和为s,0表示不取,1表示取,输出n个物品的序列。s的范围是1e18,物品价值的范围是1e17,明显这是一个超大背包题,正常背包不可能装的下,因为n的范围是36,所以可以通过把位数分解来解决,前n/2位用二进制枚举出前n/2位可能组成的值,用一个map来记录,然后...

2019-08-18 16:53:19 179

原创 poj2446 Chessboard(二分图匹配)

Chessboard本题大意:给出一个nn的图,然后给出m个障碍,求是否能用12的长条把图填满。本题能想到二分图匹配也是不容易,做专项的时候知道是这么个做法才能这样写,1*2,的长条,两个格子是可以相互匹配的,并且只能匹配一起,所以就把一个点与他旁边的四个点连在一起,然后做一次做的二分图匹配,看匹配结果是否与结果相同就可以。#include <iostream>#include...

2019-08-12 20:43:41 139

原创 hdu3639 Hawk-and-Chicken(强联通分量+反建图dfs)

targan算法训练题目大意:给一个有向图,如果u是v的粉丝,v是w的粉丝,那么u是w的粉丝,求最大粉丝的数量和点。可以想到最大粉丝点肯定是存在在出度为零的强联通分量中,因为如果不是这样肯定有另一个他通往的点比他的粉丝多,而求最大粉丝点这里,用到了反建图,因为方便dfs来搜索每个点,搜索过程中,每个点首先有他自己强联通分量内的n-1个点以及他到达的强联通分量的n个点,然后搜索即可。#inc...

2019-08-12 20:06:46 2560

原创 poj1276 Cash Machine(多重背包)

Cash Machine本题大意:给出一个最大金额,然后给出k中币的金额和数量,求能正好提供的最大小于等于最大金额的金额。本题是多重背包模板题,直接套上模版就可以解决。#include <iostream>#include <cstdio>#include <algorithm>#include <string>#include &lt...

2019-08-12 19:42:56 114

原创 poj3181 Dollar Dayz(背包)

Dollar Dayz本题大意:农夫有n块钱,有k中工具,每种1到k块钱,问农夫有多少种工具买法。本题可以通过背包来解决,f[i]表示i块钱时工具买法,递推至n即可,不过最后的答案超了long long,所以我用Java写的,算是熟悉一下刚学的语言吧。import java.math.BigInteger;import java.util.Scanner;import java.util...

2019-08-12 19:22:12 125

原创 poj3259 Wormholes(最短路)

Wormholes本题大意:在农场中存在时空虫洞,可以让人回到以前的多少秒前,问是否存在某个点,通过虫洞和其他路径能够在当前时间或以前回到现在的起点。本题大意可以看出,这是一个判断图中是否存在环的题,一般情况下,用dfs来找环比较方便,所以将图建好后,把每个点都遍历一边,判断时候能回到起点就行了。#include <iostream>#include <cstdio&gt...

2019-08-12 18:57:06 101

原创 hdu2089 不要62(数位dp)

不要62本题大意:不吉利数字为62和4,求给定区间内的不吉利数的个数。最为基础的数位dp入门题,不过本弱鸡水平太低,对着函数死看看不懂,只能当作模版用了,solve(x)表示x以内的不吉利数字的个数,用右区间减去左区间即可。#include <iostream>#include<cstdio>#include <algorithm>#include ...

2019-08-12 18:47:59 92

原创 hdu6567 Cotree(树形dp)

Cotree本题大意:给出两棵树,让两个树随意连在一起,使连在一起的树的每个点到其他点的总和最小。可以通过分析得到,想让每个点到其他点的总和最小,那必须是连接的重心,所以本题分为两个过程,找重心连在一起,在求出,每个点到其他点的总和,每个点到其他点的距离之和其实可以通过加每条边的使用次数来得到,所以就完事了。#include <iostream>#include <cst...

2019-08-12 11:04:44 344

原创 Upgrading Technology(牛客多校第六场)

Upgrading Technology本题大意:给出一个科技系统,有m级,n个部位,每个部位每一级升级所需的费用给出了一个n*m的矩阵,然后给了一行m个数,表示当所有部位都升到该级别所获得的收益,收益和花费可正可负,求最大收益首先,最简答的想法应该是通过一次遍历来解决问题,就是通过遍历一次每个级别,算一下哪个级别收益最大就完事了,可是如果正常算的话,那就是nnm的复杂度,肯定会超时,所以肯定...

2019-08-11 19:03:02 142

原创 subsequence 1(牛客多校第五场)

subsequence 1本题大意:给出两个序列s和t,然后计算存在多少s的子序列为正整数的时候值大于t本题可以想到,当s的子序列的长度大于t的时候那么肯定值比他大,当s的子序列的长度小于t的时候,那么肯定比t小,所以总情况可以分为两种,一种是子序列长度大于t的时候可以通过组合数来解决,当子序列长度等于t的时候则可以通过dp解决,设立dp[i][j]表示当到s的第i个字符的时候,已经有j个字符...

2019-08-11 18:48:37 166

原创 free(牛客多校第四场)

free本题大意:给出n,m,s,t,k,n个点,m条路,求s到t的最短路,并且最多k条路免费,然后给出m行,u,v,w,代表u到v有一条权值为w的双向路。本题可以通过常规的最短路算法改变来得到,通过在最短路算法中加一个长度为k的循环,判断k条路免费后的最小权值即可。#include <iostream>#include <cstdio>#include <...

2019-08-11 18:30:33 105

原创 meeting(牛客多校第四场)

meeting题目大意:给出一个n和k,n代表点的个数,k代表人数,然后n-1行,给出u,v表示存在一条连接u,v的路,走每条路需要一秒,然后k个数字,代表k个人所在地点的位置,请找出k个人在某个点聚在一起的最短时间。本题可以想到,只要找到最短距离的两个点,算出他们之间的距离就好了,当时真的是智障了,一直在搞dp,结果一个深搜就完事了。#include <iostream>#i...

2019-08-11 18:19:17 124

原创 Magic Line(牛客多校第三场)

Magic Line本题大意:给出n个点,求出一条线,使之将所有的点分成数量相同的两部分,线不能通过点。首先我先把所有的点按照先横坐标后纵坐标(都是由小到大),然后由于题目给的范围很大,我们可以想到,如果取一条最为竖的线,那么一定能分开,然后考虑一下最中间的两个点横坐标相同的情况即可。#include <cstdio>#include <iostream>#inc...

2019-08-11 16:47:41 139

原创 疯狂的二进制字符串(牛客多校第三场)

疯狂的二进制字符串本题大意:给定一个01组成的字符串,求两个满足0和1数量相同的最长长度,一个是最长连续子序列,一个是可以任意删除任何字符的子序列。第二种很简单,就是0和1的数量中比较小的那一个乘二就完事了,主要是求第一个,第一个我是用的前缀和求的,首先sum0和sum1分别表示到目前为止0和1的数量,然后设立一个数组c,表示某0和1的数量差所在的下标,比如到i=2的时候sum0=1,sum1...

2019-08-11 16:38:42 147

原创 Second Large Rectangle(牛客多校第二场)

Second Large Rectangle本题大意为给一个N*M由01构成的矩形,求其中的第二大的全一矩阵的面积。可以想到,第二大矩形的面积肯定比第一大矩形的小,所以我们可以找到每一个极大全1矩形,然后用h和l代表每个全1矩阵的长和高,把hl,h(l-1),(h-1)*l存进一个规格为2的优先队列,然后把第一个弹出输出就可以了(本弱鸡垃圾做法,不过容易理解),重点就是怎样找到每一个极大全1矩...

2019-08-11 16:09:45 206

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除