OI
那年的曙光
这个作者很懒,什么都没留下…
展开
-
树状数组的模板(一维和二维)
> int lowbit(int x) {> return x & (-x); } void modify(int x,int add)//一维 {> while(x<=MAXN)> {> a[x]+=add;> x+=lowbit(x);> } } int get_sum(int x) {> int ret=0;原创 2015-04-05 00:07:52 · 365 阅读 · 0 评论 -
最大流dinic模板
运输问题1 ★★☆ 输入文件:maxflowa.in 输出文件:maxflowa.out 简单对比 时间限制:1 s 内存限制:128 MB 【问题描述】 一个工厂每天生产若干商品,需运输到销售部门进行销售。从产地到销地要经过某些城镇,有不同的路线可以行走,每条两城镇间的公路都有一定的流量限制。请你计算,在不考虑其它车辆使用公路的前提下,如何充分利用所有的公路,使产地运输到销原创 2015-08-10 11:32:54 · 342 阅读 · 0 评论 -
欧拉函数及其求法
欧拉函数:对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。例如euler(8)=4,因为1,3,5,7均和8互质。 Euler函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0的整数。euler(1)=1(唯一和1互质的数就是1本身)。 欧拉公式原创 2015-08-10 15:47:57 · 5371 阅读 · 0 评论 -
poj2411Mondriaan's Dream题解
题目大意:给出h*w(1≤h、w≤11)的方格棋盘,用1*2 的长方形骨牌不重叠地覆盖这个 棋盘,求覆盖满的方案数。 输入文件包含多组数据。 每组数据有一行,两个正整数h,w。 输入结束标志为h=w=0. 对每组数据,输出一行一个正整数,即方案总数。解析详见代码:#include<cstdio>#include<cstring>#include<cstdlib>long long f原创 2015-08-01 17:43:12 · 1787 阅读 · 2 评论 -
noip知识范围
数论: 快速幂,快速乘 费马小定理 欧拉定理 拓展欧几里得 筛素数 组合数取模(这个,背背代码吧,反正比较好记) 乘法逆元 矩阵 中国剩余定理(也比较好记) 容斥原理 01分数规划 大步小步算法数据结构: 简单的就不说了 单调队列,双端队列(有个容器) 单调栈,堆(手打的,各种操作) 树状数组 线段树 树链剖分 Treap,Splay(两种平衡树,会打) LC原创 2015-08-01 15:06:36 · 1846 阅读 · 0 评论 -
集训目标
1.数论(1): 快速幂,快速乘 费马小定理 欧拉定理 拓展欧几里得 筛素数 组合数取模 乘法逆元 矩阵 2.数据结构(1): Treap,Splay(两种平衡树,会打) STL熟练运用 3.字符串(1): KMP tire树 4.图论: 最短路(3个算法),A*,次短路 树上倍增 最近公共祖先 /哈夫曼编码(今年NOI2015D2原创 2015-08-02 07:26:21 · 507 阅读 · 0 评论 -
网络流做题汇总
1、poj1698Alice’s Chance(构图+最大流,比较简单) 2、poj3281Dining(构图+最大流,建图好题) 未完待续……原创 2015-12-17 21:15:52 · 441 阅读 · 0 评论 -
[POJ3237]树的维护
给你由N个结点组成的树。树的节点被编号为1到N,边被编号为1到N-1。每一条边有一个权值。然后你要在树上执行一系列指令。指令可以是如下三种之一: CHANGE i v:将第i条边的权值改成v。 NEGATE a b:将点a到点b路径上所有边的权值变成其相反数。 QUERY a b:找出点a到点b路径上各边的最大权值。冲着树链剖分来的,结果发现自己太弱了操作二的标记不会打,YY了2个多小时才写完原创 2016-01-04 17:46:45 · 955 阅读 · 0 评论 -
Play the Dice(数学期望)
题目大意:给你一发骰子,有n个面,掷骰子到第i个面时得到ai的钱,有时某些面bi,还可以让你再掷一次骰子,问最后可以获得的钱期望是多少? 设ans为当前得到的钱的期望 则只掷一次,期望是sum=∑ai(1<=i<=n)/n; 有m/n的机会可以再来一次,m/n*sum; 又赶上m/n的机会,(m/n)^2*sum; 所以ans=sum*(1+m/n+…+(m/n)^k+…) 由无穷等比数原创 2016-01-05 12:50:37 · 565 阅读 · 0 评论 -
计算几何入门1--poj1269Intersecting Lines
题目大意:给你一坨直线,求他们之间的关系计算几何入门好题,我用斜率写的,神烦#include<map>#include<set>#include<cmath>#include<queue>#include<cstdio>#include<vector>#include<cstdlib>#include<cstring>#include<iostream>#include<algor原创 2016-01-09 11:46:15 · 438 阅读 · 0 评论 -
计算几何入门2--poj2653Pick-up sticks
给你一坨线段,问他们是否相交不要被100000迷惑,暴力可过QAQ先判断以两条线段为对角线的矩形是否相交,如相交则可能相交,下图是个例子: 众所周知,连个线段如果相交,设a1b1与a2b2相交,那么向量b2a1、b2b1与向量a2b2的叉积的乘积为一个非正数,这就是跨立实验为什么要先判断矩形相交呢?观察下图,这两条线段是可以通过跨立实验的代码#include<map>#include<set>原创 2016-01-09 15:32:56 · 616 阅读 · 0 评论 -
计算几何入门3--poj1113Wall
裸凸包……直接上代码……#include<map>#include<set>#include<cmath>#include<queue>#include<cstdio>#include<vector>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;原创 2016-01-09 16:10:13 · 441 阅读 · 0 评论 -
有道搜索框的代码--题解
[Youdao2010] 有道搜索框 ★☆ 输入文件:youdao.in 输出文件:youdao.out 简单对比 时间限制:1 s 内存限制:128 MB 【问题描述】 在有道搜索框中,当输入一个或者多个字符时,搜索框会出现一定数量的提示,如下图所示: 现在给你 N 个单词和一些查询,请输出提示结果,为了简这个问题,只需要输出以查询词为前缀的并且按字典序排列的最前面的原创 2015-08-10 11:45:08 · 1116 阅读 · 0 评论 -
单词默写题解--Trie树模板
单词默写 ★☆ 输入文件:engzam.in 输出文件:engzam.out 简单对比 时间限制:1 s 内存限制:128 MB 【问题描述】 小D前一段日子刚刚参加了一次非常苛刻的英语考试。 考试不仅包括了听力、选择、填空等基本题型,还包括了一种特殊的单词默写题。这类题目都是按照以下形式给出的: 在本学期你所学的所有前缀是B的单词中,在课本中出现次数不原创 2015-08-10 11:48:51 · 675 阅读 · 0 评论 -
二分图的最大匹配问题
二分图指的是这样一种图,其所有顶点可以分成两个集合X和Y,其中X或Y中任意两个在同一集合中的点都不相连,所有的边关联在两个顶点中,恰好一个属于集合X,另一个属于集合Y。给定一个二分图G,M为G边集的一个子集,如果M满足当中的任意两条边都不依附于同一个顶点,则称M是一个匹配。图中包含边数最多的匹配称为图的最大匹配。 二分图的最大匹配有两种求法,第一种是最大流;第二种就是我现在要讲的匈牙利算法。这个算法转载 2015-04-05 11:57:21 · 715 阅读 · 0 评论 -
cogs1355. 读书题解
【题目描述】放暑假了,LRJ想趁假期提高一下自己的计算机水平,于是他从学校图书馆借了N本计算机科学方面的书,这N本书的编号依次为0~N-1。 读完第i本书,LRJ需要花费time[i]分钟,但是有一些书的内容是相近的,如果第i本书与第j本书内容相近,那么如果LRJ读完了第i本书,再读第j本书的时候只需要floor(time[j]/2)分钟的时间即可(其中floor()表示对括号中的式子进行下取整)原创 2015-04-05 18:37:49 · 587 阅读 · 0 评论 -
cogs爱争吵的猴子 题解
爱争吵的猴子 ★★☆ 输入文件:monkeyk.in 输出文件:monkeyk.out 简单对比 时间限制:1 s 内存限制:128 MB 【问题描述】 在一个森林里,住着N只好斗的猴子.开始,他们各自为政,互不相干.但是猴子们不能消除争吵,但这仅仅发生在两只互不认识的猴子之间.当争吵发生时,争吵的两只猴子都会求助他们各自最强壮的朋友,并且决斗.当然,决斗之后,两只猴子及他们原创 2015-04-13 17:17:44 · 475 阅读 · 0 评论 -
最小生成树的模板
Description 给你一个具有n个点,m条边的无向连通图,求其最小生成树的权值和。 Input 第一行两个整数n(1<=n<=300)和m,分别表示图的顶点数和边数。接下来m行是每行三个整数u, v, c,表示结点u和v之间有边相连,权值为c(1≤c≤10000)。 Output 输出文件仅一个整数为最小生成树的权值和。 Sample Input 3 3 1 2 5 2 3原创 2015-04-08 09:05:43 · 588 阅读 · 0 评论 -
[NOI2001] 食物链题解
动物王国中有三类动物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句话,原创 2015-04-08 10:45:59 · 639 阅读 · 0 评论 -
[USACO Oct08] 挖水井题解
农夫约翰决定给他的N(1<=N<=300)个牧场浇水,这些牧场被自然的命名为1..N。他可以给一个牧场引入水通过在这个牧场挖一口井或者修一条管道使这个牧场和一个已经有水的牧场连接。 在牧场i挖一口井的花费是w_i(1<=w_i<=100000)。修建一条水管连接牧场i和牧场j的花费是p_ij(1<=p_ij<=100000;p_ij=p_ji;p_ii=0)。 请确定农夫约翰为了完成浇灌所有的牧原创 2015-04-15 08:53:27 · 2293 阅读 · 1 评论 -
cogs 机器人搬运 题解
Wind设计了很多机器人。但是它们都认为自己是最强的,于是,一场比赛开始了~ 机器人们都想知道谁是最勇敢的,于是它们比赛搬运一些物品。 它们到了一个仓库,里面有n个物品,每个物品都有一个价值Pi和重量Wi,但是有些物品放在一起会爆炸,并且爆炸具有传递性(a和b会爆炸、b和c会爆炸则a和c会爆炸)。机器人们可不想因此损失自己好不容易从Wind那里敲诈来的装备,于是它们想知道在能力范围内,它们最多可原创 2015-04-14 18:02:27 · 1001 阅读 · 0 评论 -
USACO特殊的质数肋骨题解
Superprime Rib 特殊的质数肋骨 描述 农民约翰的母牛总是生产出最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7原创 2015-04-08 11:16:48 · 685 阅读 · 0 评论 -
最小费用最大流模板
运输问题4 ★★★ 输入文件:maxflowd.in 输出文件:maxflowd.out 简单对比 时间限制:1 s 内存限制:128 MB 【问题描述】 一个工厂每天生产若干商品,需运输到销售部门进行销售。从产地到销地要经过某些城镇,有不同的路线可以行走,每条两城镇间的公路都有一定的流量限制。公路设有收费站,每通过一辆车,要交纳过路费。请你计算,在不考虑其它车辆使用公路的前原创 2015-08-10 11:31:18 · 431 阅读 · 0 评论 -
treap模板
[Tyvj 1728]普通平衡树 ★★ 输入文件:phs.in 输出文件:phs.out 简单对比 时间限制:1 s 内存限制:128 MB 【题目描述】您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名原创 2015-08-10 11:35:20 · 488 阅读 · 0 评论 -
NOI2004郁闷的出纳员题解
[NOI2004] 郁闷的出纳员 ★★★ 输入文件:cashier.in 输出文件:cashier.out 简单对比 时间限制:1 s 内存限制:128 MB 【问题描述】 OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工 作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情原创 2015-08-10 11:38:48 · 728 阅读 · 0 评论 -
计算几何入门4--poj2187Beauty Contest
题目大意:求平面上的点的最大距离的平方造出一个凸包,利用面积的上凸性(一条线段和凸包上其他点组成的三角形的面积),用两条直线卡住凸包求最大距离#include<map>#include<set>#include<cmath>#include<queue>#include<cstdio>#include<vector>#include<cstdlib>#include<cstring>原创 2016-01-09 17:04:30 · 449 阅读 · 0 评论