
c++
A_loud_name
23333333~~~
展开
-
书架_纪中2931_dp_堆_单调队列
题目大意 当Farmer John闲下来的时候,他喜欢坐下来读一本好书。 多年来,他已经收集了N本书 (1 <= N <= 100,000)。 他想要建立一个多层书架,来存放它们。 每本书 i 拥有一个宽度 W(i)和一个高度 H(i)。 所有的书需要按顺序,放到书架的每一层。 举例来说,第一层书架放k本书,应该放书1...k;第二层书架从第k+1本书开始放……。 每层书架的宽度最多为L原创 2016-07-10 10:49:04 · 931 阅读 · 3 评论 -
传球游戏/vijos1485/递推
题目大意 上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。 聪明的小蛮提出了一个有趣的问题原创 2016-07-10 16:14:38 · 623 阅读 · 4 评论 -
Segments poj 3304 计算几何
题意给出n条线段,判断是否存在有一条直线,满足所有的线段在直线上投影后至少有一个公共点分析原命题等价为存在一条直线穿过所有的线段(易知过公共点且垂直于所求直线的直线符合条件,设为直线a),该命题又等价于从所有线段中任选两端点形成的直线存在可以穿过所有的线段的直线(可将a平移至一条线段端点,然后绕这点旋转,使a过另一条线段端点),所以我们直接枚举两个端点,用叉积判断其他的线段是否被穿过。水~~p原创 2016-09-13 22:06:13 · 421 阅读 · 0 评论 -
Nearest Common Ancestors poj 1330 LCA转RMQ
题目大意随便读题分析对有根树T进行DFS,将遍历到的结点按照顺序记下,我们将得到一个长度为2N – 1的序列,称之为T的欧拉序列F每个结点都在欧拉序列中出现,我们记录结点u在欧拉序列中第一次出现的位置为pos(u)根据DFS的性质,对于两结点u、v,从pos(u)遍历到pos(v)的过程中经过LCA(u, v)有且仅有一次,且深度是深度序列B[pos(u)…pos(v)]中最小的即LCA(T, u,原创 2016-09-22 17:40:37 · 455 阅读 · 0 评论 -
商务旅行 code[vs] 1036
Description某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间。假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任意两个城镇之间如果有直连道路,在他们之间行驶需要花费单位时间。该国公路网络发达,从首都出发能到达任意一个城镇,并且公路网络不会存在环。你的任务是帮助该商人计算一下他的最短旅行时间。Input Description输原创 2016-09-23 19:03:56 · 513 阅读 · 0 评论 -
Frequent values poj 3368 蜜汁RMQ
题目大意给一个长度为n的不降序列a1,a2,a3,…,an,有q个询问,每个询问为:i j 询问在子序列ai…aj中出现最多的元素。 数据范围:1 <= n, q <= 100000分析将原序列转换一下,if (a[i]==a[i-1]) f[i]=f[i-1]+1;else f[i]=1;对于每个询问(l,r),分为两个部分,前半部分求与a[l]相同的数的个数直到t,后半部分原创 2016-09-24 14:49:26 · 522 阅读 · 0 评论 -
电费结算 纪中3018 二分
DescriptionWZK最近靠租房发家致富了。作为WZK老同学的你也要租房,于是WZK决定不要房租,但是电费还得付。以下是用电价格:举个例子吧。如果你用电为10123千瓦时,那么要付2 * 100 + 3 * 9900 + 5 * 123 = 30515块钱(好贵)。 到结算电费的日子了,可是WZK家里只有一个总电表,也就是统计你和WZK总共用的电量。但是WZK有办法告诉你以下信息:1).如果原创 2016-09-24 17:10:21 · 492 阅读 · 0 评论 -
党(雾) 神奇的模拟赛 贪心
问题描述你现在希望组建一支足球队,一支足球队一般来说由11人组成。这11人有四种不同的职业:守门员、后卫、中锋、前锋组成。你在组队的时候必须满足以下规则:1.足球队恰好由11人组成。 2.11人中恰好有一名守门员,3-5 名后卫,2-5 名中锋,1-3 名前锋。 3.你需要从这11人中选出一名队长。 4.你这个足球队的价值是11人的价值之和再加上队长的价值,也就是说队长的价值会被计算两次。原创 2016-10-26 17:48:14 · 622 阅读 · 0 评论 -
Map 纪中2065 枚举+dfs
题目描述纸条终于传到了Z的手上。这个秘密是什么呢? 原来D发现了一些小纸片,这些纵向长度不一,横向长度都为1个单位长度的小纸片是从一张地图上剪下来的,由于地图有磨损,D无法通过纸片上的图案将完整的地图拼出来,所以她向Z求助。 经过Z的分析,这张地图是一个完整的矩形,并且它的长宽是一定的。Z确信一旦长宽确定,她就能把地图拼出来。 现在,D分析出绘制这张地图的人会用横向尽可能长,原创 2016-10-05 07:49:27 · 636 阅读 · 0 评论 -
资源勘探 纪中1282 vijos 1663 枚举+分类讨论
Description 教主要带领一群Orzer到一个雄奇地方勘察资源。 这个地方可以用一个n×m的矩阵A[i, j]来描述,而教主所在的位置则是位于矩阵的第1行第1列。 矩阵的每一个元素A[i, j]均为一个不超过n×m的正整数,描述了位于这个位置资源的类型为第A[i, j]类。教主准备选择一个子矩阵作为勘察的范围,矩阵的左上角即为教主所在的(1, 1)。若某类资源k在教主勘察的范原创 2016-10-06 14:52:20 · 942 阅读 · 0 评论 -
旅行 纪中1281 vijos 1661
Description 今天又是个神圣的日子,因为LHX教主又要进行一段长途旅行。但是教主毕竟是教主,他喜欢走自己的路,让别人目瞪口呆。为什么呢,因为这条路线高低不平,而且是相当的严重。 但是教主有自己的办法,他会魔法。 这段路可以用一个长度为n的序列A[i]来表示,A[i]表示了第i这段路的高度。毕竟教主即使会使用魔法他还是个人,教主如果想穿越这条路线,他必须从第1段路开始走,走原创 2016-10-06 18:40:54 · 460 阅读 · 0 评论 -
Balanced Lineup poj 3264 RMQ问题
题目大意给出一串的数字,然后给出一个区间a b,输出从a到b的最大的数和最小的数的差分析可以用st算法ST算法(Sparse Table):它是一种动态规划的方法。 以最小值为例。a为所寻找的数组. 用一个二维数组f(i,j)记录区间[i,i+2^j-1] (持续2^j个)区间中的最小值。其中f[i,0] = a[i]; 所以,对于任意的一组(i,j),f(i,j) = min{f(i,j原创 2016-09-21 20:41:55 · 427 阅读 · 0 评论 -
数数 ssl 2521 单调队列
题目大意给出一个长度为n(1<=n<=100000)的整数序列,选择长度不超过k(1<=k<=n)的段,使得总和最大。分析和烽火传递一样,优先队列水过~~code#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<string>#include<algorithm>using namespa原创 2016-12-10 11:13:59 · 394 阅读 · 0 评论 -
poj 1742 coins dp
题目描述银岛上的人使用银岛币。这些金币分别价值A1,A2,A3…An银岛币。一天托尼打开他的钱包,发现有一些银岛币。他决定在附近商店买一个非常好的表。他想给商店正好的钱(就是商店不用找零)并且他知道表的价格不会超过m银岛币。但他不知道表的精确价格。 你的任务是写一个读入A1,A2,A3…An和C1,C2,C3…Cn的程序。(C1,C2,C3…Cn表示托尼有A1,A2,A3…An的个数)判断1到m中原创 2016-12-14 17:31:44 · 358 阅读 · 0 评论 -
NOIP2016全国信息学分区联赛提高组第二试 蚯蚓 ssl 2599 队列
题目描述本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3。蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。蛐蛐国里现在共有n只蚯蚓(n为正整数)。每只蚯蚓拥有长度,我们设第i只蚯蚓的长度为a_i(i=1,2,…,n),并保证所有的长度都是非负整数(即:可能存在长度为0的蚯蚓)。每一秒,神刀手会在所有的蚯蚓中,准转载 2016-12-14 18:46:04 · 506 阅读 · 0 评论 -
Reorder the Books hdu 5500 贪心
Descriptiondxy家收藏了一套书,这套书叫《SDOI故事集》,《SDOI故事集》有n(n≤19)n(n\leq 19)n(n≤19)本,每本书有一个编号,从111号到nnn号。 dxy把这些书按编号从小到大,从上往下摞成一摞。dxy对这套书极其重视,不允许任何人动这套书。 有一天Evensgn到dxy家玩,dxy因为和妹子有约会,就让Evensgn自己待在他家。Evensgn对这套书非原创 2016-11-15 20:07:56 · 401 阅读 · 0 评论 -
最大值 (补档) dp+前缀和优化
题目描述找到一个数组的最大值的一种方法是从数组开头从前到后对数组进行扫描,令max=a[0](数组下表从0..N-1),如果a[i]>max,就更新max,这样就可以在O(N)的时间里找到一个数组的最大值。 这个问题是相当简单的,但是想到了另一个问题,如果一个包含N个元素的数组a里面的元素的值是在1…K之间的整数,存在多少个不同的数组a,进行了如上扫描之后,max恰好进行了p次更新? 下面是N原创 2016-11-12 13:47:35 · 686 阅读 · 0 评论 -
2016年提高组模拟题(20161111) 配饰 ssl 2569 LCIS的集合
Description但是小L想考验一下小T,所以,他给小T出了一个难题. 他拿出了他所有的配饰并摆成两列,如果两个配饰的型号一样并且出现在不同列中,那么我们就可以认为这两个配饰为情侣配饰.另外,由于某些不为人知的原因,我们规定,在顺序选取的情况下,每选定的一对配饰必须比前面选定的一对配饰的型号要大.小T最多能够选取多少对配饰呢?Input共四行 第一行一个数N 表示第一列配饰的个数 第原创 2016-11-11 20:54:13 · 599 阅读 · 0 评论 -
2016年提高组模拟题(20161114) 物品选取 ssl 2572 dp_背包
分析对于不同的物品有 1.枚举所有可能的体积取值分成m种物品转01背包 2.多重背包转01背包 3.完全背包转01背包 然后裸的01背包可以对了代码#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<string>#include<algorithm>using原创 2016-11-14 21:17:36 · 390 阅读 · 0 评论 -
股票经济人通信网络 poj 1125 多源最短路
题目大意就是在一个有向图中找一个点,要求这个点和离他最远的点的最短路最近。分析直接上floyd,水~~~code#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<cmath>#include<algorithm>#define fo(i,a,b) for (int i=a;i<=b;i原创 2016-12-07 17:34:23 · 400 阅读 · 0 评论 -
MPI Maelstrom poj 1502 单源最短路
题目大意求从点1到其他点最短路的最大值。(额)分析随便写 c++的字符串~ c++的数组从零开始的异世界code#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<cmath>#include<algorithm>#define fo(i,a,b) for (int i=a;i<=b;原创 2016-12-07 18:42:23 · 316 阅读 · 0 评论 -
幸福的道路(race) ssl 2570 bzoj 2500 单调队列
题目大意给出一棵树,每条边都有一个长度。我们规定每个点的权值为从该点开始走过的一条最长的路径的长度。 求一个最长的区间[l,r],使得[l,r]里面点权的最大值和最小值只差不超过m。 n<=1000000分析用两个dfs求出一个点向上和向下可以走的最长路。 (可以设f[i][1],f[i][2],f[i][3],分别表示i到叶子的最长链,i到叶子的次长链,从i向上走到某个父亲,再向下的最长原创 2016-12-15 20:56:04 · 449 阅读 · 0 评论 -
Print Article HDU 3507 斜率优化
题目大意给你一列数,要你把这列数分成若干段,每一段的权值为sigma(c[i])^2+m,求最小的总权值。分析用到了斜率优化,资料传送门code#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<string>#include<algorithm>using namespace std;lon原创 2016-12-17 08:19:28 · 418 阅读 · 0 评论 -
网络流24题4 魔术球问题 ssl 2604 code[vs] 1234
Description假设有 n 根柱子,现要按下述规则在这 n 根柱子中依次放入编号为 1,2,3,…的球。 (1)每次只能在某根柱子的最上面放球。 (2)在同一根柱子中,任何 2 个相邻球的编号之和为完全平方数。 试设计一个算法,计算出在 n 根柱子上最多能放多少个球。例如,在 4 根柱子上最多可放 11 个球。 对于给定的 n,计算在 n 根柱子上最多能放多少个球。Input第原创 2016-12-22 21:10:24 · 506 阅读 · 0 评论 -
网络流24题5 圆桌问题
分析先放一个可以测试的网站——神奇的题库 然后看题: 建图的过程 1. 添加源点s和汇点t 2. 在s与每一个单位i之间连接一条容量为ri的有向边 3. 在每一个单位i与每一个餐桌j之间连接一条容量为1的有向边(因为每张桌子上不能有同一单位的 4. 在每一个餐桌j与t连接一条容量为ci的有向边然后求最大流,如果从s出发的每一条边全部满载的话问题就有解(全部满载表示每一个代表都原创 2016-12-23 20:30:56 · 1287 阅读 · 0 评论 -
网络流24题1 飞行员配对方案问题 ssl 2601
分析用网络流写二分图匹配,建一个点s,连接二分图的一边,一个点t,连接二分图的另一边。整个图的每一条边的流量都是1。 从s到t的最大流就是ans。网络流的方法: Dinic 这个算法的效率是相当高的,算法流程如下: 1、每次以源点为起始点bfs,求出每个点的编号d[i],d[i]表示从源点到i点通过至少几条残余流量大于0的边,能够到达i点。 2、只有那些满足d[u]+1=d[v]的边(u,原创 2016-12-18 20:42:20 · 573 阅读 · 0 评论 -
网络流24题2 太空飞行计划问题 洛谷 2762
题目描述W 教授正在为国家航天中心计划一系列的太空飞行。每次太空飞行可进行一系列商业性实验而获取利润。现已确定了一个可供选择的实验集合E={E1,E2,…,Em},和进行这些实验需要使用的全部仪器的集合I={I1,I2,…In}。实验Ej需要用到的仪器是I的子集RjÍI。配置仪器Ik的费用为ck美元。实验Ej的赞助商已同意为该实验结果支付pj美元。W教授的任务是找出一个有效算法,确定在一次太空飞行中原创 2016-12-19 21:13:45 · 511 阅读 · 0 评论 -
最大值[JSOI2008] 洛谷1198 线段树
题目描述现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是整数(可能为负数)并且在长整范围内。注意原创 2017-01-04 21:02:36 · 468 阅读 · 0 评论 -
最近公共祖先(LCA) 洛谷 3379 LCA
题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。分析直接上tarjan 水了一道模板(c++的)。 顺便复习一下。code#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;struct arr{ in原创 2017-01-05 17:58:30 · 541 阅读 · 0 评论 -
网络流24题3 最小路径覆盖问题 洛谷 2764
分析设所求路径条数为p,所有路径所包含边总数为e,则易得p=n-e(定理1或证明1),要求最小的p就是求最大的e(即使得路径末尾的点数最少)。现在问题在于如何求最大的e:我们将有向图转化为无向图,有向图的每个点拆成X集i和Y集i’,接下来: 1.若图中存在点i—>j,则二分图中i与i’相连 2.求最大匹配m(e) 3.ans=n-m定理1: 每一条覆盖路径的边数=原创 2016-12-20 20:03:16 · 623 阅读 · 0 评论 -
间谍网络 洛谷 1262 强连通分量
题目大意给你一些点,再指定其中的一部分点并加上权值,问是否有一种方案,使得从指定的点中的某几个点开始对图遍历,能把整个图遍历完,并且权值最小。分析tarjan缩点。对于每一个强连通分量,我们就要那个权值最小作为权值即可。缩完点后构图,统计入度。如果一个强连通分量的入度为0且里面没有点有权值,那就输出no。不然,每个入度为0的强连通分量的权值和就是答案。。。code#include<iostream>原创 2017-01-13 12:59:54 · 513 阅读 · 0 评论 -
【模板】线段树 洛谷 3372 线段树
题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和分析简单的线段树+lazy标记 复习一下如何写lazy。code#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<string>#include<algorithm>using name原创 2017-01-13 19:08:07 · 680 阅读 · 0 评论 -
无序字母对 洛谷 1341 欧拉通路/欧拉回路
题目描述给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒)。请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现。分析首先,看到题目,再看到样例,就会发现字母对是[b ]必须[/b ]连在一起的,然后就会想到图的遍历之类的。有点灵感的话想到欧拉图应该没什么问题。然后建图就很清晰了。将字母作为图的顶点,如果两字母间存在字母对就在相应的字母所对应的顶点连上一条原创 2017-01-14 14:58:47 · 526 阅读 · 0 评论 -
[USACO09OCT]热浪Heat Wave 洛谷 1339 最短路
题目大意单源最短路···········分析写dij就好了, 但是 我写了dij+堆优化版本的。学习了如何使用c++的优先队列。ps:家里的键盘很恶心啊:f5、f7、f11太小了,按不到。 ps:c++的模板正在补全中。code//dij+堆优化版本#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#i原创 2017-01-14 16:32:21 · 460 阅读 · 1 评论 -
最短路计数 洛谷 1114 最短路
题目描述给出一个N个顶点M条边的无向无权图,顶点编号为1~N。问从顶点1开始,到其他每个点的最短路有几条。分析可以使用最短路。松弛的时候如果遇到没有访问过的则ans[v]=ans[u],如果遇到访问过而且dis[v]==dis[u]+1,则将方案数累计入ans[v]。记得取模ans的初始值为0,起点为1。code#include<iostream>#include<cstring>#includ原创 2017-01-14 17:17:12 · 1788 阅读 · 3 评论 -
杂务 洛谷1113 spfa最长路
题目描述John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的,因为这样才有更多时间挤出更多的牛奶。当然,有些杂务必须在另一些杂务完成的情况下才能进行。比如:只有将奶牛赶进牛棚才能开始为它清洗乳房,还有在未给奶牛清洗乳房之前不能挤奶。我们把这些工作称为完成本项工作的准备工原创 2017-02-06 13:46:59 · 452 阅读 · 0 评论 -
最小生成树 洛谷3366 最小生成树
题目描述如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz分析复习ing 就是一个最小生成树的模板题Kruskal 写了并查集优化。code#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<algorithm>#include<queue>using namespace原创 2017-01-12 20:29:52 · 740 阅读 · 0 评论 -
酒店之王 洛谷 1402 网络流
题目描述XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化。由于很多来住店的旅客有自己喜好的房间色调、阳光等,也有自己所爱的菜,但是该酒店只有p间房间,一天只有固定的q道不同的菜。有一天来了n个客人,每个客人说出了自己喜欢哪些房间,喜欢哪道菜。但是很不幸,可能做不到让所有顾客满意(满意的条件是住进喜欢的房间,吃到喜欢的菜)。这里要怎么分配,能使最多顾客满意呢?分析网络流,直接用di原创 2017-01-12 17:36:16 · 606 阅读 · 0 评论 -
覆盖的面积 hdu1255 扫描线+线段树
题目大意给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.分析介绍扫描线 只要在统计的时候看看是否被覆盖两次就可以了code#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<string>#include<algorithm>using namespace std;struct原创 2017-02-28 17:04:01 · 439 阅读 · 0 评论 -
垃圾陷阱 洛谷1156 dp
题目描述卡门――农夫约翰极其珍视的一条Holsteins奶牛――已经落了到“垃圾井”中。“垃圾井”是农夫们扔垃圾的地方,它的深度为D(2<=D<=100)英尺。卡门想把垃圾堆起来,等到堆得与井同样高时,她就能逃出井外了。另外,卡门可以通过吃一些垃圾来维持自己的生命。每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费卡门的时间。假设卡门预先知道了每个垃圾扔下的时间t(0< t<=1000),以及每个垃圾原创 2017-01-22 19:08:29 · 551 阅读 · 1 评论