ACM题目
wwwwwwxu
不敢说强记,只敢说博闻。
展开
-
hdu5289 Assignment
题意:给你n个数和一个数k,求存在多少个区间,区间内最大值减最小值小于k 。n ≤ 100000; a[i], k ≤ 10^9思路:预处理出区间[i,j]中的最大值最小值,然后枚举左端点l,二分出符合条件的右端点r,以l为左端点,j为右端点(l代码:#define _CRT_SECURE_NO_DEPRECATE#include#include#include#inclu原创 2016-06-12 23:53:39 · 595 阅读 · 0 评论 -
2015-2016 下半学期 第一周 训练
1、UVA1423题意:给出一个矩阵表示一个序列任意区间内区间和的正负,构造一个序列满足这个矩阵。题解:首先看到给了区间和,第一个想法就应该是转化到前缀和的差,转化之后发现序列具有一种显见的偏序关系,然后这种偏序关系轻易地就想到了转换为图上问题去解决,这种思想在差分约束中也比较常见,以后有时间详细总结。然后考虑到了topo序,如果我们每次要求topo序为i的前缀和与比它topo序大的前缀和原创 2016-03-16 00:24:55 · 420 阅读 · 0 评论 -
POJ 1019 Number Sequence
一道找规律的数学题。#include#include#include#include#include#include#include#include#include#include#include#define LL long long#define db double#define EPS 1e-15#define inf 1e10using name原创 2015-12-23 00:56:06 · 364 阅读 · 0 评论 -
2014 北京区域赛题目
2014 北京区域赛题目 按照榜单过题人数 顺序不弃原创 2015-10-13 22:49:17 · 484 阅读 · 0 评论 -
一些图论、网络流入门题总结、汇总。
根据kuangbin大神博客里那个图论题列表,图论题强化一波。原创 2015-10-08 21:16:55 · 849 阅读 · 0 评论 -
POJ 2230 Watchcow (欧拉回路模板)
题目大意:求有向图欧拉路径的点序列。解题思路:欧拉回路模板。#include#include#include#include#include#include#include#include#include#include#define LL long long#define db double#define EPS 1e-15#define原创 2015-10-22 16:20:57 · 467 阅读 · 0 评论 -
POJ 2438 Children's Dining (求哈密顿回路模板)
题目大意:n个孩子要求围成一圈,有m对敌对关系,有敌对关系的孩子不能相邻,输出一种方案。解题思路:有神犇说是特殊图所以可以用哈密顿回路做,不懂,姑且当作写个模板。#include#include#include#include#include#include#include#include#include#include#define LL lo原创 2015-10-22 16:24:39 · 780 阅读 · 0 评论 -
求二分图点权最小覆盖的一类问题 HDU 1054 1565 1569
关于求二分图最小点权覆盖的问题。它的姐妹问题是 二分图的最小顶点覆盖,可以做二分图最大匹配。而关于最小点权覆盖我们可以用以下的方法解决。建立超级源点和超级汇点,将一侧的点和源点连边,边的权值为点的权值,汇点一侧同理。将两侧点之间的边权值改为inf,之后做最大流。最大流的结果即为最小点权覆盖。附 HDU1569代码#include#inc原创 2015-10-03 23:55:06 · 386 阅读 · 0 评论 -
弱校联萌十一大决战之强力热身
必须吐槽一下……这场比赛真是原题大战……我一开始只看出来几道题是SCU上的……后来有人我告诉我是2015四川赛区的一整套题……出题人真厉害……原创 2015-10-01 23:28:04 · 1223 阅读 · 2 评论 -
CodeForces #322 (div2)
A. Vasya the Hipster随便模拟一下。#include#include#include#include#include#include#include#include#include#define LL long long#define db double#define EPS 1e-1#define inf 1e16#define pa pair原创 2015-09-28 23:56:41 · 336 阅读 · 0 评论 -
BZOJ 2038 小Z的袜子
题目大意:中文题。解题思路:对于L,R的询问。设其中颜色为x,y,z....的袜子的个数为a,b,c。。。那么答案即为(a*(a-1)/2+b*(b-1)/2+c*(c-1)/2....)/((R-L+1)*(R-L)/2)化简得:(a^2+b^2+c^2+...x^2-(a+b+c+d+.....))/((R-L+1)*(R-L))即:(a^2+b原创 2015-09-29 19:16:19 · 372 阅读 · 0 评论 -
2015-2016 下半学期 第三周 训练
1、AOJ2249题意:求最短路的同时要求最小花费。题解:spfa模板加个数组松弛花费。代码:#include#include#include#include#include#include#include#include#include#include#include#include#define LL long long#define db do原创 2016-03-30 20:45:47 · 308 阅读 · 0 评论 -
hdu5288 区间个数
题意:给定一个n个数的序列,定义一个函数f(l, r),表示在[l, r]这个区间内,满足不是区间内任何其他数的倍数的数的个数。比如一个区间内的数为2,3,4,那么函数值为2。因为2和3都不是其他任何数的倍数,但4是2的倍数。现在要求所有的区间的函数值的和。思路:相对于计算每个区间内有多少个这样的数,我们不如来看每个数被计算了多少次。每个数左面第一个不是他约数的数到右面第一个不是它约数的数,这原创 2016-06-11 23:32:04 · 851 阅读 · 0 评论 -
2015-2016 下半学期 第六周 训练
按照做题顺序。1、hdu2444题意:首先判断是否是二分图,如果不是的话输出No,如果是的话输出最大匹配。题解:按题意那么写。代码:#include #include #include #include #include #include #include #include #include #include #include #include原创 2016-04-22 00:30:32 · 335 阅读 · 0 评论 -
2015-2016 下半学期 第八周 训练(2)
1、poj3261题意:求出现k次的最长可重复子串长度。思路:先二分答案,然后将后缀分成若干组。判断的是有没有一个组的后缀个数不小于k。如果有,那么存在k 个相同的子串满足条件,否则不存在。这个做法的时间复杂度为O(nlogn)。也可以采取双指针法,滑一个长度为k-1的窗,使得min代码:#include#include#includeusing namespac原创 2016-05-07 21:43:02 · 418 阅读 · 0 评论 -
2015-2016 下半学期 第八周 训练
1、poj1144题意:求割点数目。思路:dfs代码:#include #include #include #include #include #include using namespace std; int times,root; int visit[105],flag[105]; int low[105],dfn[105]原创 2016-05-07 17:19:18 · 552 阅读 · 0 评论 -
2015-2016 下半学期 第十周 训练
1、hdu4612题意:无向图连一条边后桥边数量最少是多少。思路:先将无向图缩点形成一棵树,再两次dfs取直径,在直径端点连边,这样可以使桥边减少的最多。代码:#include #include #include #include #include #include #include using namespace std;const int maxn=原创 2016-05-14 09:51:14 · 435 阅读 · 0 评论 -
poj2983 Is the Information Reliable?
题意:给出n个点的m条约束信息。每条信息表述为(P a b c)表示a在b北方距离c的位置,或者(V a b) 表示a在b北方1单位距离或者更远的位置。问是否可能存在符合以上m个要求的点。解题思路:差分约束一般给我的印象都是一个范围性的式子才能写出不等式,但是这道题,固定的距离可以用两个只有不等式号相反的式子表示,这样子可以将值限定在“=”的那个值上。把dis[i]设为其到始点原创 2016-04-29 00:01:55 · 353 阅读 · 0 评论 -
2015-2016 下半学期 第五周 训练
1、hdu4411题意:有N+1个点,每个点与编号大于自己的点之间有一条有权边(权重通过floyd求得),现有k个人位于0处,要从k个人中选出若干个人遍历其它点并最终回到0点,使每个点(除0外)都被访问恰好一次,问最小费用之和为多少。题解:每个点至多走一次,显然需要把一个点拆成两个,一个出点一个入点之间费用为0流量为1,超级源点拆为流量为k费用为距离的边,由于原图无环,所以可以原创 2016-04-15 21:22:56 · 369 阅读 · 0 评论 -
2015-2016 下半学期 第四周 训练
1、hdu4292题解:最大流 因为我们发现食物和饮料间没有直接的联系,所以要用人来当中间点,但是如果直接连到人上,会让食物和饮料流出奇怪的情况,所以把人拆点。 人和人之间连边权为1,食物和人 饮料和人都连边为1。 食物和S连食物个数,饮料和T连饮料个数。超级源点->食物->人->人'->饮料->超级汇点。代码:#include#include#include原创 2016-04-07 10:54:23 · 471 阅读 · 0 评论 -
2015-2016 下半学期 第二周 训练(2)
1、hdu3336题意:相同前缀的次数和。题解:利用了KMP中next数组的含义,从j直接跳到next[j]的原因是next[j]~j中不会再有和1~j中的相同前缀。 next[i]表示了模式串p[1~i-1]中最大的相同的前缀和后缀的长度。PS:关于KMP的具体讲解 请看这篇文章,http://blog.csdn.net/v_july_v/article/details/原创 2016-03-24 21:17:53 · 313 阅读 · 0 评论 -
2015-2016 下半学期 第二周 训练
1、hdu4081题意:有n个城市,秦始皇要修用n-1条路把它们连起来,要求从任一点出发,都可以到达其它的任意点。秦始皇希望这所有n-1条路长度之和最短。然后徐福突然有冒出来,说是他有魔法,可以不用人力、财力就变出其中任意一条路出来。秦始皇希望徐福能把要修的n-1条路中最长的那条变出来,但是徐福希望能把要求的人力数量最多的那条变出来。对于每条路所需要的人力,是指这条路连接的两个城市的人数之和。原创 2016-03-22 09:24:47 · 378 阅读 · 0 评论 -
2015 ACM/ICPC Asia Regional Shanghai Online
1008 An easy problem解题思路:一颗线段树单点更新后求乘积。#include#include#include#include#include#include#include#include#include#define LL long long#define db double#define EPS 1e-15#de原创 2015-09-27 20:04:15 · 729 阅读 · 0 评论 -
Bestcoder #54 div2
A:A problem of sorting题目即题意。#include#include#include#include#include#include#include#include#include#define LL long long#define db double#define EPS 1e-15#define pa pairusing names原创 2015-09-06 22:52:45 · 308 阅读 · 0 评论 -
HDU 1232 畅通工程
题目大意:中文题,题意是求有几个不连通块。解题思路 :很简单的并查集问题,我当初喜欢把并查集必须的这个find操作叫做“找爹”,我们找到顶点的“爹”们,然后看有多少个不同的“爹”,假如有n个不同的“爹”,则最少需要n-1条道路。路径压缩这个操作,我以前喜欢写成int get(int a){ if (x==f[x]) return x; else f[x]原创 2015-08-14 22:39:56 · 267 阅读 · 0 评论 -
HDU 1568 Fibonacci
题目大意:求出斐波那契数列中第n个数的最后四位。解题思路:先看对数的性质,loga(b^c)=c*loga(b) loga(b*c)=loga(b)+loga(c);假设给出一个数10234432,那么log10(10234432)=log10(1.0234432*10^7)=log10(1.0234432)+7;log10(1.0234432)就是原创 2015-08-13 21:24:56 · 272 阅读 · 0 评论 -
POJ 3667 Hotel
题目大意:Hotel有N(1 ≤ N ≤ 50,000)间rooms,并且所有的rooms都是连续排列在同一边,groups需要check in 房间,要求房间的编号为连续的r..r+Di-1并且r是最小的;visitors同样可能check out,并且他们每次check out都是编号为Xi ..Xi +Di-1 (1 ≤ Xi ≤ N-Di+1)的房间,题目的输入有两种样式:原创 2015-08-13 01:05:42 · 276 阅读 · 0 评论 -
HDU 3577 Fast Arrangement
题目大意:给定最大的覆盖次数k和q条线段对于每条线段判断是否能覆盖在相应区间上使得该区间上最大的覆盖次数解题思路:用lazy标记更新线段树即可。#include#include#include#define LL long long#define db doubleusing namespace std;const原创 2015-08-12 01:38:42 · 460 阅读 · 1 评论 -
POJ 2991 Crane
题目大意:有N根棍子首尾相连,每次更改两个棍子之间的夹角,求最后一个点坐标。解题思路:因为前面的角度变了后面的角度也会变,所以显然是个线段树。但是因为涉及到一点几何知识,我这种智障还是想了蛮久的。#include#include#include#define LL long long#define db double#define maxn 10010原创 2015-08-11 23:48:54 · 369 阅读 · 0 评论 -
POJ 3468 Simple Problem with Integers
还是简单的线段树区间更新#include#include#include#define LL long long#define maxn 111111using namespace std;LL sum[maxn<<2],lazy[maxn<<2];int max(int x,int y){ if (x>y) return x; else return y;}int m原创 2015-08-11 23:45:56 · 251 阅读 · 0 评论 -
BZOJ 1011 [HNOI2008]遥远的行星
题意:其实没啥题意,算星球受的重力,允许有5%的误差。解题思路:其实也没什么解题思路,一开始以为是递推,发现好像暴力忒太慢了,后来看题解发现2000个以内可以暴力算,超过两千个就a[i]*a[j]/j-i中j取平均值。#include#include#include#include#include#include#include#includeusi原创 2015-07-17 20:57:00 · 407 阅读 · 0 评论 -
BZOJ 1008 [HNOI2008] 越狱(简单组合数学)
题意:监狱有连续编号为 1...N 的 N 个房间,每个房间关押一个犯人,有 M 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。解题思路:求补集,假设第一个人信仰自由,则有M种情况,为使第二人放进去后不越狱,第二个人只有M-1种信仰可以选择。第三个人只要与第二个人信仰不同计科,也有M-1种,以此类推。不越狱的原创 2015-07-17 20:01:42 · 374 阅读 · 0 评论 -
NOI2015 Day1 T1 程序自动分析
数据范围一开始是10^10,吓了一跳,后来改成10^9还是不会,想做个暴力的全连通图。后来别人说是并查集才反应过来。先离散化一下,然后最多就剩20w个数,用并查集维护。最后for判断一下就行了。#include#include#include#include#include#include #define rep(i ,n) for(int i=0; i < n; ++i)原创 2015-07-17 18:52:06 · 843 阅读 · 0 评论 -
POJ 1273 Drainage Ditches(dinic模板)
题目大意:网络流的模板题。解题思路:模板。#include#include#include#include#include#include#include#define LL long long#define db double#define maxn 10000000#define EPS 1e-15#define max(a,b) ((a>原创 2015-08-23 21:54:33 · 282 阅读 · 0 评论 -
HDU 1272 小希的迷宫
题目大意:中文题,题意不解释,同样是一道并查集的题,但是这道题里要判是否成环。解题思路:在并查集中我们如何判断是否成环呢?我们只要发现这两个点的根节点是同一个点,且这两个点之间有边,即可判断。同时也要判断边数和点数之间的关系是不是edge+1=node#include#include#includeusing namespace std;#define原创 2015-08-14 22:45:38 · 294 阅读 · 0 评论 -
HDU 1856 More is better
题目大意:在一群人里挑选一些人,这些必须都是朋友关系,关系可以是直接的也可以是间接的。解题思路:非常简单明了的一道并查集,但是不是求一共有几个集合,而是求每个集合中的元素个数,进而求出最大值,只需要在合并两个集合时处理一下,让这两个集合的元素个数也合并一下就行了。接下来只需要找出最大值即可。要注意的一个地方就是:当n=0时,要输出1。#include#includ原创 2015-08-14 23:20:50 · 532 阅读 · 0 评论 -
VIJOS 1212 Way Selection
题目大意:非常显然的二分图最大匹配。解题思路:上匈牙利。关于匈牙利算法。就是关于寻找增光路的算法。伪代码如下:bool 寻找从k出发的对应项出的可增广路{ while (从邻接表中列举k能关联到顶点j) { if (j不在增广路上) { 把j加入增广路;原创 2015-09-05 21:51:41 · 452 阅读 · 0 评论 -
HDU 1875 畅通工程再续
题目大意:中文题。解题思路:MST,判个距离,kruskal硬上就行。#include#include#include#include#include#include#include#define LL long long#define db double#define maxn 10000000#define EPS 1e-15#define原创 2015-08-20 23:12:46 · 265 阅读 · 0 评论 -
BZOJ 1059 矩阵游戏 (二分图最大匹配)
题目大意:小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏。矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作:行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色)列交换操作:选择矩阵的任意行列,交换这两列(即交换对应格子的颜色)游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线原创 2015-09-03 22:29:05 · 411 阅读 · 0 评论 -
HDU 1879 继续畅通工程
题目大意:中文题。解题思路:MST,kruskal直接上就行了。#include#include#include#include#include#include#include#define LL long long#define db double#define maxn 10000000#define EPS 1e-15#define ma原创 2015-08-20 23:10:58 · 356 阅读 · 0 评论