自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Follow My Heart

没有什么路是平坦的。切忌浮躁。

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

原创 Codeforces 788B Weird journey(欧拉回路)

n个点和m 条路,求 m−2条边经过两次,2 条边经过一次的路有多少种。(无重边)

2017-04-07 00:11:09 498

原创 HDU 3001 Travelling (三进制状压dp)

n(n<=10)个城市,知道每个城市间的旅行费用,但每个城市最多走两遍。问最小花费是多少 。也就是每个城市可以走两次的tsp问题。

2017-03-16 16:34:27 475

原创 Codeforces766E Mahmoud and a xor trip(按位+树形DP)

树有N(1 ≤ n ≤ 105)个节点,每个点有点权ai(0 ≤ ai ≤ 106),求∑两点间距离。两点间距离:两点间所有点权的异或值。

2017-02-14 02:51:52 567

原创 Codeforces 498D Unbearable Controversy of Being(暴力求菱形个数)

n(≤3000)个点m(≤30000)条边的有向图,统计下图这种菱形的数量。

2017-01-28 16:00:33 361

原创 Codeforces 546E Soldier and Traveling (最大流+输出流量分配方案)

n个顶点m条边的无向图,每个点有ai名士兵,每名士兵只能留在原地或移动到相邻点,给出移动后每个顶点的士兵数 bi,问是否存在移动方案,并输出如何移动。

2017-01-22 17:12:07 399

原创 HDU5855 Less Time, More profit(最大权闭合图)

N个工厂,给出每个工厂建成所需时间t及花费pay(可同时建)。M个商店,在给定的几个工厂建好的前提下,每个商店开张可以获利pro(一次性)。求获利L最少需要的天数T,以及T天的最大获利P。

2017-01-22 16:15:07 349

原创 HDU5723 Abandoned country (最小生成树+期望)

题意 一个图,求最小生成树,输出权值和 && 任给两点的期望 分析 这题关键是如何求期望。 每条边权值都不一样,说明最小生成树是唯一的(不唯一怎么办?) 在求最小生成树时顺便把树建好,然后dfs找每条边经过了多少次,求得这条边的花费 num×(n−num)×costnum\times(n-num)\times cost ∑边的花费÷n(n−1)2(种数)\

2017-01-22 00:54:32 393

原创 HDU5727 Necklace (全排列+二分匹配)

题意:n颗阳宝石,n颗阴宝石组成一个项链,m对x,y,表示阳宝石x和阴宝石y挨在一起,阳宝石会变暗,求最少的变暗个数。分析:先枚举所有阴宝石排列情况(环,(n-1)!种),然后插入阳宝石,判断阳宝石插入在之间会不会变暗,不会则加边,然后二分图匹配。#include#include#include#include#i

2017-01-21 11:34:28 353

原创 HDU 5772 String problem(最大权闭合子图)

题意:      有一个长度为n(n      分数定义: Score=Value - Cost         Value=0;        for(int i=1;i           for(int j=1;j             if(i!=j)                  Value+=w[id[i]][id[j]];            

2017-01-18 17:25:10 346

原创 CodeForces 340B Maximal Area Quadrilateral(凸包+旋转卡壳)

题意:给n (4 ≤ n ≤ 300)个点,求最大四边形面积。分析:   此题点数太少,n3可过,枚举对角线,求对角线两边最大三角形。   不过还有一个更快的方法   就是凸包+旋转卡壳。   如果凸包只有三个点,则枚举三个点和其他点构成的最大四边形。  如果凸包大于三个点,则直接旋转卡壳求最大四边形。#include#include#inclu

2016-12-03 01:35:35 494

原创 codeforce 342E Xenia and Tree(分块 + LCA)

题意:             一棵树,结点1为红,其他点为蓝。           操作1:某结点变红;          操作2:查询离这个点最近的红色结点,输出两点距离。分析:另一个解法是树链剖分,并不会。。(滚去学一发。。)我的lca直接是挑战里倍增的模板, 然后分块是达到数量再去更新dp数组(每个结点离红点最近的距离),直接bfs更新,然后查询的时候dp[

2016-11-27 16:19:47 468

原创 POJ 3463 Sightseeing (最短路&次短路条数问题)

题意:给一个有向图,求从s到f 的最短路+最短路-1的条数。   有重边。分析: 代码是根据挑战的次短路改编的。      具体请看代码。#include#include#include#include#include#include#include#include#include#include#include#include#incl

2016-11-23 01:27:28 897

原创 ACM/ICPC2015沈阳区域赛 HDU5520 NumberLink (费用流)

题意:  NxM的格子有些上面有数字(空格用0表示)              如果头是奇数尾是偶数,则不用形成回路,连起来就好。             其他的格子连成一个个回路,相邻两个格子相连也算是一个回路  按两条边算。             连线不能相交,给出相邻两个格子相连的费用,求最少的费用。分析:每个格子拆成两个点。1.一个格子如果为空,源

2016-11-14 23:15:38 730

原创 hdu 5213(莫队+容斥)

题意:      n个数,一个k,m个询问,每个询问有[l1,r1] ,[l2,r2]两个区间,[l1,r1]中取x ,[l2,r2]中取y,使得x+y=k(l1 分析:     根据容斥,F(l1,r1,l2,r2)=f(l1,r2)-f(r1+1,r2)-f(l1,l2-1)+f(r1+1,l2-1)。   记录下加减。      这样可以把两个不相干的

2016-10-03 15:56:48 333

原创 hdu 4638 Group(莫队)

题意:          长度为n的数列(1..n)。对于一个给定的区间。求区间最少有多少组连续数字串。         比如:1,3,2,6,8,7块数就为2。1,2,3一块。6,7,8为一块。分析:这题可以莫队,离线线段树,离线数状数组。我用莫队写,比较好写。一开始没想到开个bool数组,不知道如何记录是否连续。如果vis[i-1]和

2016-10-02 00:13:40 440

原创 Codeforces 617E XOR and Favorite Number(莫队)

题意:n个数,有m个询问,问[l,r]之间有多少对i和j满足a[i]^a[i+1]^...^a[j]=k; (l 分析:         明显莫队。(优雅的暴力)    前缀异或和数组sum[ ],现在我们要求区间[L,R]的异或的值,用sum数组表示就是sum[L-1]^sum[R]=k,或者说是k^sum[R]=sum[L-1]。#include#in

2016-09-30 15:39:52 282

原创 hdu 5889 Barricade (最短路+最小割)

题意:N个点M 条路径,每条路径长度为1,敌人从N节点进攻1节点。敌人只会选择最短路径进攻(所有最短路中的一条), 要封死所有可能的路径。路径长度为都为1。无向图,每条路都有一个封死所需的花费数。分析:       1.先找出所有最短路。    2.根据所有最短路建新图,流量为花费,求最大流,得到最小割,即为最小花费。#include#includ

2016-09-20 23:15:50 370

原创 hdu 3461 Code Lock(并查集+快速幂)

题意:        这题意有点迷,理解了好久。         给你一个锁,这个所由n个字母组成,然后这个锁有m个区间,每次可以对一个区间进行操作,并且区间中的所有字母要同时操作。每次操作可以将区间中所有字母+1。即把a变成b,把z变成a。举个例子,比如有一个锁,由abcdef组成,前三个字母abc是一个区间,第四五个字母de是一个区间,那么如果对abc操作一次,则获得新锁bcd

2016-09-14 23:28:59 279

原创 2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest G:Graph (构造,拓扑)

题意:n个点m条边的有向无环图,最多添加k条边,保持为有向无环图,其最小字典序的拓扑排序结果最大。分析:所有入度为0的点放入set,每次取出最小元素,加一条入度。这样可以晚点拓扑出,最小节点排得尽可能靠后。但是,这些情况不可再加边。1,如果当前只有一个入度为0的点,如果把它也加上一条前导边,会导致出现环。2,如果当前最后一个入度为0的点,而且它比当前所有已经被加

2016-09-12 20:51:35 398

原创 2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest D:Distribution in Metagonia(构造)

题意:      给你一个数n([1,1e18])让你把n拆成若干个数之和的形式,使得这些数都是2^p*3^q形式,因子中只有2和3,而且相互之间不是倍数关系。    输出拆分的个数,以及拆分的数。分析:      1. 先提取最大的2^i,减去      2.在减去最大3^j,又得到偶数    如此反复能得到每个数,3^j   j是递减的   2^

2016-09-10 00:49:56 404

原创 POJ 3057 Evacuation (最大流加边)

题意:         X * Y的区域,'.'为空格,'D'为门,'#'为墙,         每个空格处有一人,每个人每秒只能移动一步,         每个门每秒只允许一个人通过,          求所有人逃脱的最短时间,如果有人无法逃脱,输出"impossible"分析:           网上的题解大部分都是二分+最大匹配or最大流。 

2016-08-21 00:50:04 393

原创 HDU 5652 India and China Origins (并查集判断联通)

题意:     给出一个n*m的图,1是山峰,0是平原,还有q个操作,可以把0变成1,问最少前几次操作可以使得图的上端和下端完全阻隔,就是被1隔开。  上下左右四个方向走。没有断绝就输出 -1分析:     并查集判断联通,一开始只想到用dfs判断联通,然后GG了。      这题可以正着搞。判断山是否左右联通就行了(注意山是8联通的,不是平原,倒着搞就是4联通

2016-08-16 23:35:11 478

原创 CodeForces 703D Mishka and Interesting sum (树状数组处理异或和)

题意:求区间上出现偶数次的数 的异或和。分析: 如果求出现奇数次的数 的异或和,则只需预处理前缀异或和,然后马上就能求出来了。一个数异或偶数次为0。            所以这题把问题简单化,把偶数次变奇数次,奇数次变偶数次。(主要思想)           1.预处理前缀异或和(偶数次被异或没了)           2.pre数组记录当前数上一

2016-08-13 00:32:31 600

原创 UVA 658 It's not a Bug, it's a Feature! (特殊图最短路)

题意: 修补bug,会引入新的bug。n(n“-”表示不存在,“+”表示存在,“0”表示不变)。每个补丁有一个时间,用最少的时间变得没有bug。一个补丁可用多次。要满足一串的状态才能变成二串的状态。分析:把状态看做结点,状态转移看做边,然后用spfa求解。          不需要把图存好,每次取出一个结点,直接枚举m个补丁,看是否能够打得上。          状态用二进

2016-08-11 00:46:17 339

原创 LightOJ 1068 Investigation (数位DP)

题意:求出区间[A,B]内能被K整除且各位数字之和也能被K整除的数的个数。分析:A,B最多有10位   各位数字之和不会超过90,那么当 k >= 90时,为0.dp[len][y1][y2]    第len位   y1这个数除k的余数  y2位各个位和除k的余数.#include#include#include#include#include#inclu

2016-08-08 11:21:13 346

原创 LightOJ 1037 Agent 47(状压DP)

题意:有N个敌人,刚开始你有一把枪,每开一枪,可以对敌人造成1点伤害,你杀掉相应的敌人后,可以得到相应敌人的武器。 给你N个敌人的血量,和一个武器伤害矩阵,第i行第j列表示的是第i个敌人的武器,可以对第j个敌人造成1枪mp[i][j]的伤害 问至少要开多少枪才能干掉所有的敌人分析:其实状压DP就是把所有情况都枚举一遍,状态用二进制01来表示。比如这道题01表示这个人是否被杀。 

2016-08-06 13:30:16 318

原创 LightOJ 1051 Good or Bad

题意:给你一个字符串,只包含大写字母和‘?’,如果字符串中出现了连续三个以上的元音字母或者连续五个以上的辅音字母,则这个字符串是bad,不然就是good.‘?’号可以替换任意字母,即可bad有可good,则输出Mixed.分析:dpy[i][j]表示到i为止,连续j个元音可否达到。dpf表示辅音。            这个转移当达到3个元音或者5个辅音时后面就不在转移了,

2016-08-06 13:19:18 353

原创 POJ 3977 Subset (折半枚举)

题意:让你从n个数里面找任意个数(>0),使他们的和的绝对值最小,输出最小和的绝对值和最小个数。分析:      分成两份,分别枚举。 #include#include#include#include#include#include#include#include#include#include#include#include#inclu

2016-08-02 00:00:10 533

原创 uva 753 A Plug for UNIX(最大流)

题意: n个插座,下面n行是每个插座的类型         m个电器,下面m行每行两个单词分别是电器的名字和插头类型         k个转换器,下面k行每行两个单词,分别表示转换器的入口类型和插头类型每种转换器的个数是无限的,可以多个转换器相连。         求最小不能插上去的电器的数量。分析:最大流。定义源点和汇点,源点和设备相连,容

2016-08-01 23:35:24 284

原创 UVA 10779 Collectors Problem(最大流)

题意:有T(T≤20)组数据。Bob在与他的n−1(2≤n≤10)个同伴交换糖纸,一共有m(5≤m≤25)种糖纸。Bob希望能和同伴交换使得手上的糖纸数尽量多。他的同伴只会用手上的重复的交换手上没有的,并且他的同伴们之间不会产生交换。求出Bob能拥有的最大糖纸种数。分析: 最大流。①:源点(Bob)->m种糖纸:cap是Bob持有贴纸数量。②:所有同伴->m种糖纸:持有

2016-08-01 23:06:23 281

原创 POJ 3279 Fliptile (开关转换)

题意:农夫约翰知道聪明的牛产奶多。于是为了提高牛的智商他准备了如下游戏。有一个M×N 的格子,每个格子可以翻转正反面,它们一面是黑色,另一面是白色。黑色的格子翻转后就是白色,白色的格子翻转过来则是黑色。游戏要做的就是把所有的格子都翻转成白色。不过因为牛蹄很大,所以每次翻转一个格子时,与它上下左右相邻接的格子也会被翻转。因为翻格子太麻烦了,所以牛都想通过尽可能少的次数把所有格子都翻成白色。现在给

2016-07-31 20:41:32 347

原创 POJ 3276 Face The Right Way(开关转换)

待继续编辑#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf

2016-07-30 00:33:46 303

空空如也

空空如也

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

TA关注的人

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