自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

独钓门前月

欲买桂花同载酒,终不似,少年游

  • 博客(43)
  • 收藏
  • 关注

原创 HDU 6739-Invoker【线性DP】

InvokerTime Limit: 15000/12000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Problem Description在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技能:冰(Quas),雷(Wex),火(Exort),每施展一个技能就可以获得...

2019-09-29 10:56:01 776

原创 POJ 1737-Connected Graph【计数DP】

求 N 个节点的无向连通图有多少个,节点有标号,编号为1~N。例如下列图示,三个节点的无向连通图共4个。输入格式输入包含多组测试数据。每组数据包含一个整数N。当输入为0时,表示输入终止。输出格式每组测试数据输出一个结果,每个结果占一行。数据范围1≤N≤50思路:这题要用高精度,我用py写的,可以在这里交AcWing 307:连通图首先对于n个点,可能...

2019-09-27 11:31:02 284

原创 HDU 5534-Partial Tree【完全背包+思维】

题意:给你n个点,再给出来你f(1 ~ n) 就是每个度数的权值,让你构建一棵树,使得所有点的权值和最大。思路:首先每个点的度数至少都是1,而且这n个点的度数总和必须是2n - 2, 因为这是一棵树。所以模型就转换成了n - 1种类型的物品,第i个重量是i,价值是f(i),挑选出n件物品,总重量是2n - 2的最大价值。三维的很容易想到,但复杂度铁超,我们考虑二维来写。首先每个点的...

2019-09-27 10:28:54 174

原创 POJ 2182-Lost Cows【树状数组+二分】

有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高。现在这n头奶牛站成一列,已知第i头牛前面有AiAi头牛比它低,求每头奶牛的身高。输入格式第1行:输入整数n。第2..n行:每行输入一个整数AiAi,第i行表示第i头牛前面有AiAi头牛比它低。(注意:因为第1头牛前面没有牛,所以并没有将它列出)输出格式输出包含n行,每行输出一个整数表示牛的身高。...

2019-09-25 15:05:59 354

原创 Codeforces 559C - Gerald and Giant Chess 【计数DP】

题目描述假设虚伪有一个h行w列的棋盘,棋盘上的格子有的是可以经过的,有的是不可以经过的。一开始在棋盘的左上角(第一行第一列)有一颗棋子,这颗棋子每次只能往右或者往下移动一格。那么虚伪要将其从起点移动到右下角(h,w)一共有多少种移法?输入第一行输入三个整数:h,w,n(1<=h,w<=10^5,1<=n<=2000)。分别代表h行w列的棋盘,棋盘上一共...

2019-09-23 22:30:50 287

原创 BZOJ 1087- [SCOI2005]互不侵犯【状压DP】

题目描述在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。输入格式只有一行,包含两个数N,K ( 1 <=N <=9, 0 <= K <= N * N)输出格式所得的方案数,然后思路:预处理出所有符合条件的状态,即相邻不能有1,然后再判断相邻两行状态是...

2019-09-23 12:42:11 154

原创 POJ 1185-炮兵阵地【状压DP】

Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示...

2019-09-22 21:51:38 198

原创 POJ 3254-Corn Fields【基础状压DP】

描述农夫John已经购买组成一个新茂盛矩形牧场中号由Ñ(1≤ m≤12; 1≤ñ≤12)平方包裹。他想在一些广场上为奶牛种一些美味的玉米。遗憾的是,一些广场是不育的,不能种植。Canny FJ知道奶牛不喜欢彼此吃东西,所以当选择哪个方块种植时,他避免选择相邻的方块;没有两个选中的正方形共享边缘。他还没有最终决定种植哪个广场。作为一个思想开明的人,Farmer John想要考虑如何选择...

2019-09-20 16:59:30 145

原创 POJ 2411 Mondriaan's Dream【状压DP】

题意:给你一个n*m的矩阵,让你用1*2的矩形覆盖全部,问你方案数。思路:我们可以发现,每个小矩形有两种放置方式,横着放和竖着放,我们设dp[i][s]表示第i行状态为s时的方案数。当当前位为1表示当前位置是竖着放置的矩形的上半部分,0则表示其他情况。那么对于当前行某个状态s,我们从上一行的某个合法状态p转移过来,那么什么状态算是合法的呢?1. s & p == 0 这样保...

2019-09-19 23:09:10 150

原创 AcWing 289. 环路运输【环形DP + 单调队列优化】

在一条环形公路旁均匀地分布着N座仓库,编号为1~N,编号为 i 的仓库与编号为 j 的仓库之间的距离定义为 dist(i,j)=min⁡(|i-j|,N-|i-j|),也就是逆时针或顺时针从 i 到 j 中较近的一种。每座仓库都存有货物,其中编号为 i 的仓库库存量为AiAi。在 i 和 j 两座仓库之间运送货物需要的代价为Ai+Aj+dist(i,j)。求在哪两座仓库之间运送货物...

2019-09-17 17:19:17 222

原创 POJ 2228 Naptime【环形DP】

在某个星球上,一天由 N 个小时构成,我们称0点到1点为第1个小时、1点到2点为第2个小时,以此类推。在第 i 个小时睡觉能够恢复UiUi点体力。在这个星球上住着一头牛,它每天要休息B个小时。它休息的这B个小时不一定连续,可以分成若干段,但是在每段的第一个小时,它需要从清醒逐渐入睡,不能恢复体力,从下一个小时开始才能睡着。为了身体健康,这头牛希望遵循生物钟,每天采用相同的睡觉计划。...

2019-09-17 15:26:42 344

原创 2019上海ICPC网络赛 J. Stone game【01背包转移】

题库链接:https://nanti.jisuanke.com/t/41420题意:让你在集合中挑一些数,形成一个集合S,剩下的数形成另一个集合P,使得S>= P ,并且对于任意元素x,S-x<=P问有多少种方案。思路:其实也就是相当于每次考虑最小元素,只要删除最小元素能满足,那么删除任意元素也可以满足。所以我们将其按照从大到小排序,然后考虑01背包计数,需要当前状态,...

2019-09-16 15:41:58 438

原创 2019上海ICPC网络赛 B. Light bulbs【差分+思维】

题库链接:https://nanti.jisuanke.com/t/41399题意:n个灯泡,初始关闭,每次将一个区间翻转,问你最后有多少灯泡是打开的。思路:题目n范围较大,操作次数较小,所以我们考虑对区间进行操作。利用差分的思想,将区间端点都压入一个队列里,按照x轴排序,然后当sum为奇数时可以确定是打开状态,所以就是当前点减去上次的端点就是符合条件的灯泡数目。#include&l...

2019-09-16 15:24:52 287

原创 Codeforces Round #584 G1.Into Blocks (easy version)【思维】

题目链接:http://codeforces.com/contest/1209/problem/G1题意:给你一个序列,你可以将数字改成任意的数,但必须将相同的数字都修改,而且使得修改后的序列满足任意两个相同的数字间的数也跟他们相同,问最少的修改次数。思路:我们记录一下每个数字最右边的位置,然后对于当前区间,需要找到最多的重复元素,剩余的都需要修改。#include<bits/...

2019-09-16 14:34:26 301

原创 Codeforces Round #584 C. Paint the Digits【思维+枚举】

题目链接:http://codeforces.com/contest/1209/problem/C题意:给你n个数字的集合,划分成两个集合,让你确定每个数字在哪个集合,使得按原来顺序,集合1在集合2前面,能够构成单调不下降,输出任意解。思路:由于范围0~9,所以我们考虑枚举分界点x,大于x的都在集合二,小于的全部在集合一,等于x的需要判断一下。记录一下从前往后的过程中集合二的最大值,如果当...

2019-09-16 13:22:40 200

原创 Codeforces Round #584 D Cow and Snacks【并查集】

题目链接:http://codeforces.com/contest/1209/problem/D题意:n种食品,k个客人,每个客人有a,b两种喜欢的食品,每次轮到他就会把这两样都吃完,如果没有喜欢的就会不高兴,问你最少不高兴的人。思路:把食品当做结点,那么每个人就是a,b结点之间的边,可以找到一种策略使得每个人尽可能只吃一种食品,我们可以用并查集来统计,如果喜欢的食品不在同一个集合那么就...

2019-09-16 13:17:40 393

原创 Codeforces Round #584 - E1. Rotate Columns (easy version)【状压DP】

题目链接:http://codeforces.com/contest/1209/problem/E1题意:给你一个n*m的矩阵,你可以对任意列进行任意次操作,即将该列进行上下循环移位,然后从每行挑出来一个数 使得这n个数的和最大。思路一:范围比较小可以考虑状压DP来写,dp[i][s] 表示前i列,状态为s时的最大和。在我们枚举状态的时候,考虑更新以后的状态,所以我们枚举另一个可以转移的状...

2019-09-15 22:07:10 311

原创 POJ 1182 食物链 【扩展域并查集】

动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。第二种说法是"2 X Y",表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话...

2019-09-13 17:03:58 136

原创 POJ 1733 Parity game【扩展域并查集】

现在你和你的朋友正在玩一种游戏。 你的朋友写下一串0和1的序列,然后你选择其中一串子序列(如[3,5])并且问他这个序列是包含奇数个1还是偶数个1(和是奇数还是偶数)。 你可以问你的朋友任意个问题,而你的朋友会回答你的问题。 你的任务是猜出整个朋友的序列。但是,你发现你的朋友告诉你的信息可能有误,所以你想写一个程序来指出他的错误。这个程序应该接受一系列你的问题和答案。程序的目标是找到第一个错误的...

2019-09-13 16:22:19 182

原创 POJ 2492 A Bug's Life【种类并查集】

Background若雨妹妹在Debug。他惊奇的发现 Bug有两种性别,异性之间才交往,他感觉很奇怪,于是要做个实验。在他的实验中,Bug们已经被从1开始编好号了。此外,Bug的性别很好辨别。Problem因为若雨妹妹太懒了,他懒得去分析他总结出来的bug数据。你需要根据数据判断是否存在同性恋,输入有 t 组数据,每组数据给出bug数量n, 和关系数m, 以下m行给出相交往的一对Bug编号 ...

2019-09-12 21:47:04 184

原创 HDU 3038 How Many Answers Are Wrong【带权并查集】

给定一个长为N的数组a[],有M个询问和结果。所谓询问形如:x y z,表示a[x]+a[x+1]+……+a[y]=z。如果某个询问及结果与前面的询问及结果冲突,即为错误结果。输出总共有多少错误结果。 tip:假设已知{1 10 100},之后出现{1 9 200} ,则显然{1 9 200}是错误的(我们假定先出现的必定正确)。InputLine 1: Two integers, N a...

2019-09-12 20:08:55 165

原创 Hihocoder 1515 : 分数调查【带权并查集】

描述小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低?输入第一行包含三个整数N, M和Q。N表示学生总数,M表示小Hi知道消息的总数,Q表示小Hi想询问的数量。 以下M行每行...

2019-09-12 13:01:24 174

原创 HDU 1272 小希的迷宫【并查集】

小希的迷宫Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通...

2019-09-12 11:08:36 814

原创 HDU 5692 Snacks【线段树+DFS序】

百度科技园内有nn个零食机,零食机之间通过n−1n−1条路相互连通。每个零食机都有一个值vv,表示为小度熊提供零食的价值。由于零食被频繁的消耗和补充,零食机的价值vv会时常发生变化。小度熊只能从编号为0的零食机出发,并且每个零食机至多经过一次。另外,小度熊会对某个零食机的零食有所偏爱,要求路线上必须有那个零食机。为小度熊规划一个路线,使得路线上的价值总和最大。Input输入数据第一行是...

2019-09-12 10:40:07 160

原创 HDU 2795 Billboard【线段树】

每年开学,正是各大社团招新之际。每个社团为了吸引更多的小学妹小学弟就会派出身强体壮的华师男去海报墙上粘贴海报。开学之初,高为h,宽为w的海报墙还是空的。然后,华师男轮流粘贴高为1,宽为wi的海报。贴海报时,机智的华师男总是会优先选择最上面的位置来帖,而且在所有最上面的可能位置中,他会选择最左面的位置。但是不能把已经贴好的海报盖住并且不能超出海报墙的范围。机智的华师男能够自然能够...

2019-09-11 20:27:27 194

原创 百炼OJ 1088 滑雪【线性DP】

Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11...

2019-09-11 12:41:13 304

原创 CCPC-Wannafly & Comet OJ 夏季欢乐赛(2019)D 茶颜悦色【线段树维护矩形内最多点数】

题目链接:https://cometoj.com/contest/59/problem/D?problem_id=2713题意:给你一个二维平面,然后再给你n个点,让你找一个边长为K的正方形,使得正方形内包含的点最多。思路:由于正方形边长固定为k,我们现在只考虑点对y轴的贡献,那么一个点(x, y) 会对[y, y + k] 这个区间的贡献+1。所以我们对y轴建树,所有点按x轴排序,然后固...

2019-09-10 22:54:34 205

原创 HDU 6687 Rikka with Stable Marriage【01字典树】

题意:给你两个数组,让两个数组间元素两两异或,当然你可以决定谁跟谁异或,要求异或后的和最大。思路:上次有道题是最小,这次是最大,稍微改了一下就行了,之前那道题:HDU 6625#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5 + 10;vector...

2019-09-09 14:50:36 185

原创 HDU 6701 Make Rounddog Happy【ST表+分治】

题意:给你n个数组成的序列和一个数字k,问你有多少个区间满足该区间的最大值-区间长度 <= k,且区间无重复元素。思路:对于某个区间的最大值,我们可以用ST表O(1)求,我们还需要处理每个元素往左往右最大能扩展的区间,也就是区间元素都不重复,可以O(n)预处理。我们接着考虑进行分治求解,以最大值为分割点,分成两个区间,枚举小区间中的元素作为端点时的合法区间,如果存在就加上答案。...

2019-09-09 13:10:23 206

原创 HDU 6652 Getting Your Money Back【单调优化DP】

题意:每次给你一个区间[ L, R] 和a,b,你的钱会在这个范围,每次你猜一个数,如果小于你的钱你可以花费a代价取走这么多钱,否则的话会花费b代价并且无法取走钱,问花最少的钱确定你有多少钱。思路:没怎么写过优化DP,看了题解和网上的思路才大概明白了。对于一个区间,只有它的长度才会对我们的答案造成影响,而不是它的位置。我们可以将区间分为两类,一类是左端点是0的,另一类是左端点不是0的。dp...

2019-09-08 22:17:43 243

原创 HDU 6685 Rikka with Coin【枚举】

问题描述Rikka讨厌硬币,而她以前从不带硬币。这些天,Rikka正在国外做暑期实习。如果没有移动支付,Rikka必须面对奇怪的商品价格,并且由于总是使用纸币,她必须在这张桌子上面对山区硬币。在当地货币体系中,有4各种硬币:10美分,20美分,50分和1美元。到目前为止,Rikka至少获得了成功10100各种硬币。现在,Rikka将在食堂吃饭,她决定只用硬币支付账单。有n个...

2019-09-07 21:31:12 183

原创 HDU 6681 Rikka with Cake【线段树查询射线交点数】

题意:给你一个n*m的矩形,然后给你k个射线,每个射线向上下左右四个方向,问你这个区间能被划分成多少块。思路:好像可以根据欧拉定理推出来,反正我当时推了几个发现答案就是交点个数+1,所以我们只需要统计交点个数就行了。我是用的线段树,我们将竖线看做线段,在y轴上做一个线段树,那么如何来统计交点呢?我们枚举每个竖线,对于统计它会和多少个横线相交就行了。所以我们需要预处理横线,假设'L' 方向的...

2019-09-07 20:46:03 179

原创 ACWing 238. 银河英雄传说【带权并查集】

有一个划分为N列的星际战场,各列依次编号为1,2,…,N。有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。有T条指令,每条指令格式为以下两种之一:1、M i j,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰所在列的尾部。2、C i j,表示询问第i号战舰与第j号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。现在需要你编写一...

2019-09-05 21:18:43 150

原创 AcWing 237. 程序自动分析【并查集】

在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4,这些约束条件显然是不可能同时...

2019-09-05 20:16:08 125

原创 HDU 6639 Faraway【思维 + 枚举】

题意:问你二维平面中有多少个点满足思路:考虑去掉绝对值,也就是相当于每个点把平面划分成了四个区域,所以总共划分成了n^2 个区域。而由于k 的范围[ 2, 5 ] ,lcm(2,3,4,5) = 60, 所以我们从0枚举到60,然后O(n)判断是否合法,如果合法的话就可以O(1)计算出来答案。在区间[l, r] 中由于是60 一个循环,所以我们计算答案就是(r-l-1)/ 60 +...

2019-09-05 17:53:56 213

原创 HDU 6635 Nonsense Time【暴力LIS+记录路径】

题意:给你一个n的全排列,每次选一个元素到集合S,然后每次求出来集合S的LIS。思路:反过来考虑,相当于每次删除一个元素,然后求LIS。由于保证数据随机,所以可以考虑暴力找,如果当前删这个元素不是LIS的路径,那么删除这个元素对答案无影响,否则就再暴力求LIS。另外学到了nlogn求路径,之前一直以为不可以求。#include <bits/stdc++.h>using na...

2019-09-05 12:25:59 212

原创 HDU 6638 Snowy Smile【线段树维护最大子段和】

Snowy SmileTime Limit: 4000/4000 MS (Java/Others)Memory Limit: 524288/524288 K (Java/Others)Problem DescriptionThere arenpirate chests buried in Byteland, labeled by1,2,…,n. Thei-th ch...

2019-09-04 16:40:45 297

原创 P4513 小白逛公园【线段树维护最大子段和】

题意:就是维护带更新的最大子段和。思路:sum是维护和,lm维护的是从左端点开始的答案,rm维护的是从右端点开始的答案,ans记录的就是答案。那么在更新的时候,举个例子,更新lm时,要不就是左儿子的区间,或者跨过mid包含部分右区间的答案。ans呢就是左右儿子的答案或者左右两个区间同时包含的答案。在查询的时候要注意,跟平常的查询略有不同。#include <bits/std...

2019-09-04 12:20:26 177

原创 HDU 6624 fraction【辗转相除法+数论】

题意:给你p和x,让你求最小的b满足 a ≡ bx (mod p) 。思路:这道题比较巧妙,看了别人的推导的公式也跟着推了一遍所以新式子对于左右两边都变成了真分数,所以我们可以将其作倒数就可以继续代入求解。#include <bits/stdc++.h>using namespace std;typedef long long ll;#define lson...

2019-09-03 21:34:35 168

原创 HDU 6627 equation【思维 + 数学】

题意:给你两个序列a和b,让你求满足该条件的所有x。思路:首先对于所有ai,bi,我们都可以找到一个G点,使得小于G的 | ai * x + bi | = -ai * x - bi , 此时G就是-bi / ai , 所以我们记录一下所有G点,然后按照从大到小的顺序枚举,因为后面小于的式子都已经确定了,所以我们就可以求解答案了。当ai和为0, bi和为C的时候很明显有无穷解,而当bi 的...

2019-09-03 20:23:50 199

空空如也

空空如也

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

TA关注的人

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