自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(391)
  • 收藏
  • 关注

原创 UvaLive 5031 Graph and Queries(Treap+并查集)

题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3032思路:1.三种操作#include#include#include#include#include#include#define debugusi

2017-10-23 17:35:57 596

原创 UvaLive 2197 Paint the Roads(费用流)

题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=198思路:

2017-10-21 20:51:29 711

原创 Uva 11146 Insurrection(最短路+最小割)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2087思路:1.删除k个点使得点1到点n不连通。2.拆点。将每个点拆为i和i’,容量为删除该点的花费(即为从1点到该点的最短路+n点到该点的最短路)。3.对于原图中的无向边i-j,

2017-10-21 16:16:56 668

原创 Uva 10983 Buy one, get the rest free(二分+最大流)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1924思路:1.二分所需花费cost,每次只选择不大于cost的航班。2.设源点S,汇点T。对于每个城市,表示为二元组(i,t),代表第t天处于第i个城市。从S到每一(i,0)连边,容

2017-10-20 14:15:08 590

原创 Sgu 438 The Glorious Karlutka River(动态流)

题目地址:http://acm.sgu.ru/problem.php?contest=0&problem=438思路:1.由于不同时刻,两点的流量不同,故不能在一张图中求解。2.由于任意时刻,人可在中间节点停留,故费用流无法解决此题。3.给定所有流量限制,求最短经过时间。可通过枚举时间,将中间节点按时间拆点为(i,t)(即在时间t时的点i)。(1)节点存在容量限制,可通过拆点解

2017-10-19 22:04:59 369

原创 Gym 100204G Network Wars(最小割+0/1分数规划)

题目地址:http://codeforces.com/gym/100204/attachments思路:1.即要求求:其中Xi=1代表选择该条边,为0代表不选择该边。2.转化为:即:二分ans,设置所有边为W-ans,若一条边小于0,则直接将其加入(该边小于平均值,加入则会使最终结果更小),设所有负权边和为sum。求最小割,判断最小割+sum

2017-10-19 16:18:03 621

原创 Uva 10615 Rooks(二分图完美匹配+补边)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1556思路:1.给棋子染色,要求每行每列棋子颜色均不相同。2.可以看出,所需最少颜色数为每行每列最大的棋子数,设为ans。3.构造二分图模型,左右各n个点,若第i行第j列存在棋子,

2017-10-17 15:42:42 1363

原创 Uva 10984 Double NP-hard(二分图)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1925思路:1.求一点集,使得其为图的最小覆盖集和最大独立集。2.首先,若该图不为二分图,则必无解:若不为二分图,则存在奇数长度回路,设该回路上点数为2*k+1。则由定义,至多k个点在

2017-10-16 20:19:42 671

原创 Poj 3621 Sightseeing Cows(二分+负环判断)

题目地址:http://poj.org/problem?id=3621思路:1.求点权值除以边权值最大的环。2.二分答案ans,sigma(v)/sigma(e)=0。对原图中的边,设其边权值为ans*e-v,判断是否存在负环即可。3.由于图有可能不连通,设一点0,向所有点连权值为0的边,从0点开始跑spfa判断是否存在负环即可。#include#include#inclu

2017-10-16 14:44:42 425

原创 Hdu 1512 Monkey King(左偏树+并查集)

题目地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=1512思路:使用左偏树快速合并两堆。#include#include#include#includeusing namespace std;const int maxn=100000+50;struct Node{ int val,lson,rson,d

2017-10-13 17:27:45 521

原创 Hdu 4417 Super Mario(主席树+二分)

题目地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=4417思路:1.查询区间内不大于x的数的个数。2.使用主席树求区间k大值,二分k,求最后一个不大于x的k大值,则k即为元素个数。#include#include#include#include#define lson l,m#define rson m+1,r#d

2017-10-12 19:31:57 542

原创 Ural 1028 Stars(树状数组)

题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1028思路:首先按坐标排序(先按x,后按y),按x从小到大依次处理,则点i下方的点的个数即为y坐标不大于改点的个数,使用树状数组维护即可。#include#include#include#includeusing namespace std;const int maxn=15

2017-10-10 22:22:06 393

原创 Ural 1003 Parity(并查集)

题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1003思路:一、1.区间和可表示为两前缀和相减:sum[R]-sum[L-1]。若区间[L,R]和为奇数,则连边(L-1)-->R,权值为1,否则权值为0。则由a->b和b->c可推出a->c的奇偶性。2.使用并查集维护信息,设w[i]为i到其根结点的距离。则判断时只需判断(w[L

2017-10-10 21:32:04 557

原创 Gym 100273L Language Recognition(Trie+Hash)

题目地址:http://codeforces.com/gym/100273/attachments思路:1.建立Trie,显然所有叶子节点都是等效的,Hash值设为1。2.对于非叶子节点,需将其儿子Hash值与边对应字母同时考虑。Hash[root]=sigma(Hash[son]*ch+1),Hash[root]*=Son[root],ch为字符,son为root的儿子节点,Son[

2017-10-09 17:07:15 625

原创 Poj 2970 The lazy programmer(贪心)

题目地址:http://poj.org/problem?id=2970思路:1.按照d值从小到大排序,依次完成任务。2.将所有已完成任务加入优先队列(a值越大越优先),若当前任务无法完成,则从队列中不断找到a值最大的任务,花费一定钱数减少完成时间,直到当前时间等于d。3.若某任务花费值为b/a,则以后花费钱任务时间也不会减少,从队列中删除。#include#include#

2017-10-08 17:15:04 610

原创 Gym 100206B Fire station building(三分)

题目地址:http://codeforces.com/gym/100206/attachments思路:1.求出任意两点最短距离g(i,j),对于建在边u-v长为len的消防站(位置为x),则到点i的最短距离为min{g[u][i]+x,len-x+g[v][i]}(r2.枚举每条可建消防站的边,显然总期望距离为一凹函数,三分求取最小值即可。3.当图不连通或道路长度不足以建站时无解

2017-10-07 18:57:21 633

原创 Ural 1040 Airline Company(构造)

题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1040思路:1.无向连通图满足从一点出发的边数大于1的边,其标号的最大公约数为1。2.直接从任意点开始dfs,直接按dfs顺序给所有边标号即可(对于一点相连的两条边,dfs时必有一条边进入该点,一条边离开该点,即其标号相差1,而相邻两数其gcd为1,满足条件)。#include#

2017-10-06 20:21:41 1839

原创 Poj 3106 Flip and Turn(模拟+优化)

题目地址:http://poj.org/problem?id=3106思路:一、模拟+栈优化1、所有操作均对应与两种操作的组合,对应题目中的1和V操作。设1操作为1,V操作为0。则所有操作分别对应:112010H101V0A10B1010C101010

2017-10-06 18:56:37 569

原创 Uva 10934 Dropping water balloons(递推)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1875思路:红书上分析:#include#include#include#includeusing namespace std;typedef long lo

2017-10-05 18:43:54 567

原创 Uva 1153 Keep the Customer Satisfied(贪心)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3594思路:从小到大排序,依次加入,若当前值超过规定时间,则从已加入的订单中删去所需时间最大的,然后将当前订单加入记录个数即可。#include#include#include#

2017-10-05 16:56:30 556

原创 Uva 10888 Warehouse(KM)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1829思路:1.首先求出每个箱子到达每个目的地的最短距离w。2.将箱子看做x点,将目的地看做y点,x向y连边,权值为w,求二分图最优匹配即可。3.是否存在移动过程中路径上有其他箱子

2017-09-29 22:18:50 367

原创 Hdu 6201 transaction transaction transaction(最长路)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6201思路:1.选择两点,一点作为买入,一点作为卖出,每经过一条边需一定花费,求最大利润。2.选择最短路中若求一起点集合到一终点集合的最短路,可通过设置一源点与一汇点求得。3.对于此问题,可分为买入集合与卖出集合。设置一源点,向所有节点连边,权值为-w[i],在该点买入;设置一汇点,所有

2017-09-29 16:37:39 447

原创 Hdu 6214 Smallest Minimum Cut(最小割)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6214思路:1.要求在最小割的情况下割集边数最小,对于两种约束条件,可通过一定方法将其转化为单约束。2.令边权值为w*MAX+1,MAX为一较大数,使得当割不同时,边权值作用最大;当割相同时,边数起作用。3.求最大流,边数即为maxFlow%MAX。#include#include

2017-09-27 16:48:48 478

原创 Hdu 6211 Pythagoras(暴力+勾股数)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6211思路:1.由勾股数性质:对于两个数n、m(设n2.按照Stern-Brocot tree的生成规则,可以构造出在一定范围内互质的n和m,判断是否满足(m-n)&1=1,若满足,取m^2-n^2与2*m*n最大值作为y并记录其个数,最终求和即可。3.卡常数,取模运算%mod使用&(m

2017-09-27 16:31:18 757 2

原创 Hdu 6209 The Intersection(Stern-Brocot tree+二分)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6209思路:1.对于每次在m1/n1,m2/n2中插入(m1+m2)/(n1+n2)构成下一排。2.对于任意一个Farey序中连续的分数m1/n1,m2/n2,必有m1/n13.Stern-Brocot树可以构成所有有理数。4.Stern-Brocot树构

2017-09-26 22:16:16 729 1

原创 Gym - 101201F Illumination(2-sat)

题目地址:http://codeforces.com/gym/101201/attachments思路:比较明显的2-sat:每个位置只可选择行或者列,若两位置选择行发生冲突,则必有一选行另一选列,列同理。对应连边判断是否有解即可。#include#include#include#include#include#include#define lson l , m, rt <

2017-09-23 20:16:41 417

原创 Gym - 101201J Shopping(RMQ+二分)

题目地址:http://codeforces.com/gym/101201/attachments思路:1.题目相当于对于一数,依次对[L,R]区间内的数取模,结果即为答案。2.若对于区间内一大于v的数,其取模结果仍为本身,无作用。则问题变为快速寻找区间内第一个不大于v的数(区间内数无序)。3.考虑二分区间[L,R],mid=(L+R)/2。若区间[L,mid]内最小值不大于v

2017-09-23 19:58:42 639

原创 Gym - 100792K King's Rout(拓扑排序+优先队列)

题目地址:http://codeforces.com/gym/100792/problem/K思路:1.根据到达顺序,可以使用拓扑排序:a比b早,a->b。2.要求编号为1的尽量靠前,满编号为1的节点尽量靠前的条件下编号为2的尽量靠前。。。。满足n-1尽量靠前的情况下编号为n的尽量靠前。若直接进行优先队列(标号小优先)+拓扑排序,对于样例3 1;3 1,由于2、3节点入度均为0,则都会

2017-09-21 22:24:50 415

原创 Hdu 6000 Wash(贪心)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6000思路:1.首先处理出对于衣服i,其最早洗完时间wash[i],可通过优先队列实现。2.若保证总完成时间最短,则应优先烘干最后洗完的衣服,与处理最早洗完时间类似,只需按洗完时间从大到小处理,取最大值即可。#include#include#include#include#inc

2017-09-07 17:17:04 298

原创 Hdu 5785 Interesting(Manacher+区间处理)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5785思路:1.L[i]表示以i开始的所有回文的结束位置和,R[i]表示以i位置结尾的所有回文开始位置和,则答案为sigma(R[i-1]*L[i])(x1*y1+x1*y2+...x1*yn+x2*y1+x2*y2+.....x2*yn+......=(x1+x2+....xn)*y1+(x1

2017-09-06 22:32:07 613

原创 Hdu 5784 How Many Triangles(极角排序+尺取法)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5784思路:1.锐角三角形总锐角个数=总锐角数-非锐角三角形提供锐角数。则锐角三角形个数=总锐角数/3(即(锐角数-2*(直角+钝角数))/3,每钝角和直角三角形提供两锐角)。2.枚举每个点p[i],以p[i]为原点,求其他n-1个点与原点组成的向量,按极角(小于0时加2*PI)递增排序。设

2017-09-05 20:07:15 766

原创 Hdu 5782 Cycle(拓展KMP+Hash)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5782思路:1.若两串st1、st2循环同构(即两串首位相接旋转后相等),则必存在st1=str1+str2,st2=str2+str1(即串1的后缀等于串2的前缀,串1的前缀等于串2的后缀)。2.枚举长度len,对于前缀s1、s2,使用扩展KMP求出串s1的后缀[i....len]与串s2

2017-09-04 17:31:32 463

原创 Uva 1627 Team them up!(dp+二分图染色)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4502思路:1.将所有不能在一组的两个人连边,二分图染色,若发现染色不成功,则无解。2.若染色成功,同一连通分量里的黑点与白点无法分为一组,不同连通分量中的点可与其他连通分量中的任一种

2017-08-30 20:41:58 584

原创 uva 1326 Jurassic Remains(中途相遇法+位运算)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4072思路:1.找一最大集合,使得其中任意字符串出现偶数次。将每一字符串转化为一二进制数(每一位对应一字母A...Z),若该字符出现奇数次,该位为1,否则为0。将给定字符串分为两部分,

2017-08-27 21:45:26 560

原创 uva 1476 Error Curves(三分)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4222思路:几个函数图像相交所形成的图像仍为下凸的(若不为下凸,则在交点处存在先增后减,而由于取局部最大值,不应该选择递减部分,矛盾,所以图像全部为下凸),下凸函数最小值可用三分法解决:取

2017-08-27 20:16:53 537

原创 uva 1328 Period(KMP循环节)

题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4074思路:1.对于某个字符串S,长度为len,由长度为L的字符串s重复R次得到,当R≥2时必然有S[0..len-L-1]=S[L..len-1],那么对于KMP算法来说,就有nex

2017-08-27 20:06:09 483

原创 hdu 6166 Senior Pan(SPFA+二进制分组)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6166思路:1.从集合A中一点到集合B中一点的最短路径:设立源点0,连向所有A集合中的点,边权值为0;设立汇点,B集合中点向其连边,边权值为0。求源点到汇点的最短路即为集合A到集合B的最短路。2.将最短两点分别分到A、B集合:由于图中任意两点标号不同,其二进制表示中必有至少一位不同。按二进制

2017-08-25 21:28:24 719

原创 Hdu 6162 Ch’s gift(Tarjan+dp)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6162思路:1.强连通分量中的点必定两两可达,可将其看作一点,将图缩点。2.对于缩点后的图,将其节点的权值设为每个连通分量的节点数。单条路径上的点对于任一点u必定存在一点v使得u可达v。则最多能u达v或v达u的点数为DAG图上权值最大的路径。判断其是否等于总点数即可。3.dp[u]=ma

2017-08-25 21:04:12 469

原创 hdu 6141 I am your Father!(最小树形图+权值编码)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6141思路:1.求解一有向树,使得权值最大。最小树形图边权取反即可。2.要求编号为n的节点的父亲字典序最小:将节点的编号引入边权值中,同时为了避免节点编号的影响比初始权值影响大,将每个边权乘n(即-n*w),这样即使边权值变化一单位,其影响程度也大于点编号的影响,即只有边权值相同时顶点编号起

2017-08-25 20:13:56 762

原创 hdu 6180 Schedule(贪心)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6180思路:1.贪心。将每个安排分成两个:起始(标号为0)和终止(标号为1)。按照时间顺序排序,每次遇到一个起始事件时,num++(代表当前机器不能满足条件,需要一台新的机器);每次遇到一个终止事件时,num--(代表当前机器运行结束)。则机器个数=max{num}(代表同时运行的机器个数)。

2017-08-25 19:52:01 1145

空空如也

空空如也

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

TA关注的人

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