自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rain

I have a dream!An AC deram!! orz orz orz orz

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

原创 HDU 1402 A * B Problem Plus (FFT, 大整数乘法)

题目大意:求两个大整数的乘积, 两个大整数长度都不超过50000, 多组数据, 时限1s大致思路:作为FFT算法的一个开头的题, 恩还是仔细写了一下这个题就是把整数视作是两个多项式, 每一位就是一项, 那么就相当于是两个最高次数不超过50000的多项式乘积之后在x = 10出的值, 那么这样就很简单了, 直接处理出其多项式然后用FFT计算即可来自kuan

2017-03-31 21:17:23 612

原创 GYM101128F.Landscaping(最小割-Dinic)

题目链接:https://odzkskevi.qnssl.com/3699857ff0a17d77d1099699cdf4da13?v=1490503337Description 一块n*m的草坪,有两种高度的草,#表示较高的草,.表示较矮的草,现在要从左往右和从上往下用收割机收割,在相同高度的草坪上收割机不耗油,当高度变化时需要耗花费为a的油,还可以花费b改变任一块草坪的高度,问这n

2017-03-31 18:53:36 610

原创 UVALive5092Permutation Counting(DP)

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3093题目大意:问1-n的数组成的排列,其中ai > i的个数恰好等于k的排列有多少种。分析:dp[i][j]表示n个数组成的排列有多少满足条件k的个数

2017-03-31 18:10:35 414

原创 霍纳法则(Horner's rule)

霍纳法则简介假设有n+2个实数a0,a1,…,an,和x的序列,要对多项式Pn(x)= anxn+an-1xn-1+…+a1x+a0求值,直接方法是对每一项分别求值,并把每一项求的值累加起来,这种方法十分低效,它需要进行n+(n-1)+…+1=n(n+1)/2次乘法运算和n次加法运算。有没有更高效的算法呢?答案是肯定的。通过如下变换我们可以得到一种快得多的算法,即Pn(x)=

2017-03-30 16:01:27 3223

原创 Gym - 101128E Wooden Signs(DP)

题目链接:https://odzkskevi.qnssl.com/3699857ff0a17d77d1099699cdf4da13?v=1490503337题目大意:一共n块木板,前两个数给出最底下木块的两个端点,后面n-1个数给出第i层的一个固定端点,问你木块的所有放置情况。分析:由下层的不同放置方式可以引出上层的各种不同放置方式,直接dp就行。#in

2017-03-28 16:56:26 547

原创 HDU2222Keywords Search(AC自动机裸题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222题意:判断一个文章内包含多少个模式串(可能有重复)。#include#include#includeusing namespace std;const int kind = 26;struct node{ node *fail; node *next[k

2017-03-25 11:13:05 523

原创 kruskal模板

时间复杂度: E为图中的边数算法思想:从权值最小的边开始,如果这条边连接的两个节点于图G中不在同一个连通分量中,则添加这条边到图G中#include#include#includeusing namespace std;const int maxe = 4000;const int maxn = 55;struct Edge{ int u, v, w;}edge[m

2017-03-24 19:59:10 375

原创 prim模板

邻接矩阵模板:时间复杂度O(V2)#include#include#includeusing namespace std;const int maxn = 55;const int inf = 0x3f3f3f3f;int road[maxn][maxn], dis[maxn];//dis[i]表示到点i的权值最小的边bool vis[maxn];int n;void pri

2017-03-24 18:09:35 408

原创 URAL2070Interesting Numbers(数学题)

题目链接:http://acm.timus.ru/problem.aspx?space=1&num=20702070. Interesting NumbersTime limit: 2.0 secondMemory limit: 64 MBNikolay and Asya investigate integers together in th

2017-03-23 13:30:11 392

原创 LightOJ1234Harmonic Number(打表小技巧)

题目大意:给你一个n,让你求1/1+1/2+1/3+..1/n思路:因为n的值达到了1e8,内存不够,可以每隔50项纪录一下。#include#include#include#include#includeusing namespace std;const int maxn = 1e8+5;double sum[maxn/50+5];void init(){

2017-03-21 16:32:24 447

原创 LightOJ 1259 - Goldbach`s Conjecture (分解偶数为两个素数之和)

1259 - Goldbach`s Conjecture   PDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBGoldbach's conjecture is one of the oldest unsolv

2017-03-21 16:11:54 511

原创 LightOJ1282 Leading and Trailing(截取前n位输出)

题意:输入n^k,输出n^k的前3位与后3位.思路:最后的三位可以直接快速幂取余,但要注意不够要补前导0.求前三位则需要一些数学知识对于给定的一个数n,它可以写成10^a,其中这个a为浮点数,则n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中x,y分别是a*k的整数部分和小数部分对于t=n^k这个数,它的位数由(10^x)决定,它的位数上

2017-03-21 15:24:04 464 1

原创 LightOJ1336 Sigma Function(约数和为奇数的个数)

题意:f(n)为n所有约数的和,给你一个数n,让你求从1到n中f(n)为偶数的数有多少个分析:数x的因子和 f(x)= (1+p1+p1^2+p1^3+...+p1^a1)*(1+p2+p2^2+...+p2^a2)*...*(1+pn+pn^2+...+pn^an);因为偶数乘偶数还是偶数,奇数乘奇数还是奇数,奇数乘偶数是偶数,所有必须让每个括号内都是奇数,然后减去约数和为奇数的个数

2017-03-21 11:25:18 1496 1

原创 LightOJ 1341Aladdin and the Flying Carpet(唯一分解定理)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1341It's said that Aladdin had to solve seven mysteries before getting the Magical Lamp which summons a powerful Genie. Here

2017-03-21 09:33:40 536

原创 LightOJ1370Bi-shoe and Phi-shoe(欧拉函数)

欧拉函数:指的是n以内与n互质的所有数的个数题意:给出n个数,求出欧拉函数各大于这n个数的所有数的和。欧拉函性质:素数p的欧拉函数值为p-1;欧拉函数大于等于x的那个数就是x+1之后的第一个质数#include#include#include#includeusing namespace std;typedef long long ll;cons

2017-03-20 21:13:47 336

原创 POJ2104K-th Number(主席树)

题意:求区间第k大的数主席树模板题:#include#include#include#includeusing namespace std;const int N = 100005;struct Node{ int ls, rs, w; Node(){ls = rs = w = 0;}}segTree[N*20];int a[N], b[N],

2017-03-20 18:42:21 345

原创 ZOJ3777Problem Arrangement(状态压缩dp)

题目传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3777题意:给出n道题目以及每一道题目在不同顺序做的时候的兴趣值,让你求出所有的做题顺序与所有做题顺序中兴趣值不小于m的比例。按一个最简分数表示。分析:全排列肯定会超时,所以只能用状压。但是想状压的时候,我想到的只是记录已经安排好了几个做题,但不知

2017-03-20 18:40:15 382

原创 ZOJ3780 Paint the Grid Again(模拟)

题目传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3780题意:给一块n*n的格子,每次可以将任意行变成X,或任意列变成O,后操作的将覆盖原先的操作。给出最终图形,要求操作的步骤最少,并按先后顺序输出操作方法(字典序)。分析:其实这道题虽然要求操作的步骤最少,但是经过分析可以得知操作的总

2017-03-20 18:21:11 492

原创 HDU1255覆盖的面积(线段树+离散化+扫描线)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1542线段树求面积并升级版题目大意:被矩形覆盖过两次的地方的面积来自大佬的分析:http://www.cnblogs.com/scau20110726/archive/2013/04/14/3020998.html这题的代码在一般的线段树求面积并的基础上进行了修改,但是所用的

2017-03-16 17:04:39 1469

原创 HDU1542Atlantis(线段树+离散化+扫描线)

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1542首先附上大佬们的博客:http://www.cnblogs.com/scau20110726/archive/2013/03/21/2972808.htmlhttp://blog.csdn.net/xingyeyongheng/article/details/8927732#

2017-03-16 16:59:14 931

原创 HDU4288Coder(线段树+离线查询)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540题目大意:1:add x 就是把x插进去 2:delete x 就是把x删除3:sum 就是求下标%5=3的元素的和。题目要求插入和删除后都要保证数列有序分析:先读入所有的数据,离散化后建立线段树。在每个结构体中设立一个cnt变量用于

2017-03-15 18:48:35 416

原创 HDU1540Tunnel Warfare(线段树区间合并)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540题目大意:一条线上的点,D x是破坏这个点,Q x是表示查询以x所在的最长的连续的点的个数,R是恢复上一次破坏的点。分析:线段树结点 设置一个  ll 记录区间左端点开始的最大连续个数,  rl 记录区间右端点开始的最大的连续个数,ml表示该区间最大的连续点的个

2017-03-15 18:33:50 308

原创 ZOJ1610Count the Colors(线段树成段更新染色)

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610题目大意:在一条长度为8000的线段上染色,每次把区间[a,b]染成c颜色。显然,后面染上去的颜色会覆盖掉之前的颜色。求染完之后,每个颜色在线段上有多少个间断的区间。注意:因为染色的是区间

2017-03-14 16:57:04 394

原创 hdu4027Can you answer these queries(区间更新查询+lazy)

题意:给一个数组序列, 数组长度为100000,现在有两种操作, 一种操作是将某一个固定区间所有数开方(向下取整),另一种操作是询问某个区间的所有数字之和。一句话题解:每个数最多才能被开方八次, 所以对于长度为n的数组,开方的次数最多为8*n。因为是向下取整,所以节约时间的方法主要是处理被开方数为1的情况。#include#include#includeusing nam

2017-03-14 13:35:49 349

原创 HDU2795Billboard (线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795题意:有一块尺寸为h*w的矩形长板,要在上面贴1*wi的海报n张,选择贴海报的位置是:尽量高,同一高度,选择尽量靠左的地方。要求输出每张海报的高度位置。一句话题解:用最底层的单个结点(也就是当tree[i].l==tree[i].r时的点)来表示高度的.......#inc

2017-03-14 12:47:10 360

原创 UVA116Unidirectional TSP(DP)

题意:给定一个n*m的矩阵,要求从第一列的任何一行出发,每次沿右或右下或右上到达后面一列,最后到第m列任何一行整个路程的最小值,并且要求是字典序最小的。分析:最初只想到从左边往右边dp,但是需要打印最小的字典序就比较麻烦,一直解决不了。其实从右向左dp,每次从行号最小的开始转移,同时用一个数组记录到达当前点的上一个点的行号,就可以解决该问题了。收获:对于这种在规划最优值

2017-03-13 16:56:09 326

原创 UVA12563Jin Ge Jin Qu hao(01背包变形:两个条件最优化)

来自大佬的博客:http://blog.csdn.net/u013480600/article/details/40376143UVA 12563 Jin Ge Jin Qu hao(01背包变形:两个条件最优化)http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble

2017-03-13 10:31:32 433

原创 POJ 3279Fliptile(状态枚举+搜索)

题目传送门:http://poj.org/problem?id=3279题意:给定长宽的黑白棋棋盘摆满棋子,每次操作可以反转一个位置和其上下左右共五个位置的棋子的颜色,求要使用最少翻转次数将所有棋子反转为黑色的所需翻转的是哪些棋子与次数。分析:首先根据题目,每次操作都会影响到周围的“棋子”,而要使得每个1都被反转为0,那么我们就应当每次都反转1下方的棋子以改变1为0.那么,当我

2017-03-12 11:37:33 537

原创 SDUT3257Cube Number

Cube NumberTime Limit: 2000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem DescriptionIn mathematics, a cube number is an integer that is the cube of an integer. In other words

2017-03-12 10:26:45 352

原创 SDUT3258Square Number(2015年山东省第六届ACM大学生程序设计竞赛)

Square NumberTime Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem DescriptionIn mathematics, a square number is an integer that is the square of an integer. In other

2017-03-11 20:54:49 499

原创 二分图匹配及匈牙利算法学习

趣写算法系列之--匈牙利算法大神博客链接:http://blog.csdn.net/dark_scope/article/details/8880547匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。

2017-03-09 16:47:38 399

原创 HDU2444The Accomodation of Students(二分图判断+最大匹配)

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2444题意:有n个学生,有m对人是认识的,每一对认识的人能分到一间房,问能否把n个学生分成两部分,每部分内的学生互不认识,而两部分之间的学生认识。如果可以分成两部分,就算出房间最多需要多少间,否则就输出No。首先判断是否为二分图,然后判断最大匹配#include#includ

2017-03-09 16:42:45 425

原创 Codeforce336D.Dima and Trap Graph(二分右端点+dfs验证)

题目传送门:http://codeforces.com/problemset/problem/366/D题意:有n个点m条无向边。初始你需要选择一个整数x,走第i条边的限制为Li 分析:因为答案肯定是这些边中最优左端点到某个右端点的,所以就成了在已知左端点的情况下,维护最大的右端点。二分右端点,dfs验证是否可行即可。#include#define PI acos(-1.0)#

2017-03-09 12:56:55 377

原创 CodeForces366C. Dima and Salad(01背包变形好题)

题目大意:给出n个物品,有两个属性,问最后第一个属性的总和是第二个属性的k倍的时候,第一个属性最大是多少。题目分析:我们将物品做一个变形,重量为a[i]-b[i]*k,收益是a,那么我们只需要对重量为正的做一遍背包,对质量为负的取绝对值做一遍背包,然后重量相等的背包的收益之和就是当前重量下的最大收益.注意转移中,要排除从不存在的状态中转移过来的情况!#inclu

2017-03-09 12:47:18 629

原创 HDU4183Pahom on Water起点到终点再到起点 除起点每点仅经过一次网络流

题意:T个测试数据n个圆下面 fre x y r 表示圆的频率 坐标和半径要求:从频率为400(最小的) 圆 走到频率为789(最大)的圆,再走回来,除起点每个点只能经过一次问这样的路径是否存在 走法:从400->789时经过的圆频率只增不减, 只能走相交的圆          反之则频率只减不增,也只能走相交的圆

2017-03-08 19:05:38 472

原创 pair实现priority_queue

只需要自定义比较函数即可!#includeusing namespace std;#define pii pairclass mycomparison{ public: bool operator () (const pii &n1, const pii &n2) const { if(n1.first == n2.fir

2017-03-08 15:10:42 1412

原创 HDU4240Route Redundancy(求流量最大的路)

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4240题意:求最大流/一条流量最大的路的流量分析:每次增广的时候更新流量,保存最大的那条,这种做法显然是错误的,因为无论是dinic还是isap,在取得增光路时都与存边的前后顺序或者增广的先后顺序有关。就比如11 4 4 1 31 2 52 3 52

2017-03-08 14:52:25 666

原创 uva11400Lighting System Design(区间dp+贪心思想)

题目大意:有一个照明系统需要用到n种灯,每种灯的电压为V,电源费用K,每个灯泡费用为C,需要该灯的数量为L。注意到,电压相同的灯泡只需要共享一个对应的电源即可,还有电压低的灯泡可以被电压高的灯泡替代。为了节约成本,你将设计一种系统,使之最便宜。分析:这个问题有两个点需要注意: 1、 对于一种灯泡,要么全换,要么全不换。 证明: 设一种灯泡单价为p1,电池价格为k1,共需要L个,若把

2017-03-06 20:35:10 339

原创 Codeforces 449B Jzzhu and Cities(最短路)

题目传送门:http://codeforces.com/contest/450/problem/D题意:一个城市,有m条道路,还有k条铁路(铁路都与点1相连),问在不改变点1到各个点的最短路的前提下最多可以删除多少条铁路思路:将道路和铁路一起建在同一个图中,跑一遍最短路并记录每个点的入度,接下来有两种情况可以判断可以删除这条铁路。1,如果最短路比铁路到点1的距离短,那毫无疑

2017-03-05 20:30:08 584

转载 向量的旋转

实际做题中我们可能会遇到很多有关及计算几何的问题,其中有一类问题就是向量的旋转问题,下面我们来具体探讨一下有关旋转的问题。首先我们先把问题简化一下,我们先研究一个点绕另一个点旋转一定角度的问题。已知A点坐标(x1,y1),B点坐标(x2,y2),我们需要求得A点绕着B点旋转θ度后的位置。A点绕B点旋转θ角度后得到的点,问题是我们要如何才能得到A' 点的坐标。(向逆时针方向旋转角度正

2017-03-05 11:54:25 2134

空空如也

空空如也

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

TA关注的人

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