自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@you!

天道酬勤

  • 博客(264)
  • 资源 (2)
  • 收藏
  • 关注

原创 NYOJ 1030Yougth's Game[Ⅲ] 记忆化搜索

思路:dp[i][j]表示区间在[i,j]内先手能取得的最大值。

2016-02-11 18:17:11 652

原创 NYOJ832 合并游戏 状压DP+记忆化搜索

思路:数据较小,想到状态压缩,110010中的0表示该位置的石子已经合并了。

2016-02-11 15:33:11 543

原创 NYOJ 195 飞翔 LIS变形

思路:其实仔细想就是求LIS。记得先排序。

2016-02-02 17:03:11 608

原创 NYOJ 1204 魔法少女 简单DP

思路:dp[i][0]表示不用魔法到达第i层所用的最短时间,dp[i][1]表示用魔法到达第i层所用的最短时间。因为魔法不能连续用,所以dp[i][1]=min(dp[i-1][0],dp[i-2][0]);dp[i][0]=min(dp[i-1][0],dp[i-1][1])+h[i];

2016-02-02 12:44:45 938

原创 NYOJ 1070 诡异的电梯【Ⅰ】 DP

诡异的电梯【Ⅰ】时间限制:1000 ms  |  内存限制:65535 KB难度:3描述新的宿舍楼有 N(1≤N≤100000) 层 and M(1≤M≤100000)个学生. 在新的宿舍楼里, 为了节约学生的时间也为了鼓励学生锻炼身体, 所以规定该宿舍楼里的电梯在相邻的两层之间是不会连续停下(即,如果在第2层停下就不能在第3层停下。).所以,如果有学生在相

2016-02-02 12:10:30 578

原创 Vawio Sequence (NYOJ 763 LIS变形)

题意:n个数的序列,求长度为奇数的最大序列,这个序列满足前n+1个数单调递增,后n+1个数单调递减,且每个数各不相同。思路:正反求两次LIS即可,要用二分法。

2016-01-31 13:53:39 454

原创 Most Powerful (zoj 3471 状压dp 点集配对)

题意:n中元素,现在两种不同的元素之间可以发生反应并且放出能量,其中一种元素随之消失,现在给出每两种元素之间发生反应产生的能量值关系,求使得这n种元素反应完后能得到的最大能量值。思路:n的范围比较小,可以想到状态压缩,dp[s]表示元素集合s反应后能得到的最大能量值,那么状态转移方程为dp[s]=max(dp[s],dp[s^(1<<j)]+a[i][j])。

2016-01-26 20:20:17 381

原创 点集配对问题 状压DP

大白P61,空间里有n个点P0,P1,...,Pn-1,把它们两两配对,要求所有的点对距离之和最小。其中n分析:dp[s]表示集合s配对后的最小距离之和,状态转移方程为dp[s]=min(dp[s],dp[s^(1注意这里i是不需要枚举的,因为i最后都是要配对的,无须枚举。代码:#include #include #include #include #include #i

2016-01-26 17:52:25 671

原创 Mondriaan's Dream (zoj 1100 状压dp)

题意:一个n*m的方格,要求用1*2的砖把它铺满,问有多少种铺法。思路:dp[i][j]表示第i行在状态j下所有合法的铺法总数。第i行的状态可以由第i-1行推得,且易知第i-1行的空缺只能由第i行对应位置用竖着的砖来补上。

2015-11-21 19:31:55 577

原创 Monkey and Banana (zoj 1093 动态规划)

题意:有n种长方体,数量不限,把它们堆起来,下面的底要严格大于上面的,问最高能堆多高。思路:每种长方体可以预处理成三种长方体,然后按照底面从大到小排个序,然后的操作感觉就有点想LIS了,dp[i]表示到第i个长方体的最高高度。

2015-11-21 15:51:30 442

原创 light oj 1251 - Forming the Council (2-SAT + 输出任意解)

题意:n个公民m个议员,n个公民对m个公民进行投票,+i表示希望i号议员留下,-i希望i号议员离开,问是否存在一组解满足全部的n个投票,有的话输出任意一组解。思路:每个公民的投票a||b建图,!a->b , !b->a。

2015-10-10 17:29:24 601

原创 Ants (poj 3565 最小权匹配)

题意:告诉n个蚂蚁和n棵苹果树,问每只蚂蚁去哪个苹果树使得所有路径不相交。思路:最小权匹配能保证路径不相交。

2015-10-08 21:38:54 398

原创 light oj 1029 - Civil and Evil Engineer (最大生成树+最小生成树)

题意:求最大生成树与最小生成树的平均值。思路:求最大生成树时把边的权值取相反数即可。

2015-10-02 20:31:28 509

原创 light oj 1384 - Stream My Contest (最小树形图+二分)

题意:n个点,m条有向边,每条边有一个传输数据的最大容量b和修建该条边的费用cost,现在总服务器在点0位置,要修若干条边使得每个点都能接收到点0的信息,并且总的修建费用不超过C,求满足条件的数据传输容量最小值的最大值是多少。思路:二分+最小树形图。

2015-10-02 17:32:06 477

原创 light oj 1254 - Prison Break (Dijkstra 汽车加油行驶最优问题 最短路)

题意:n个点m条边的有向图,q次询问c,s,t,表示汽车邮箱容量为c,求从起点s到终点t的最小费用。汽车在每个点可以加任意的油,每个点的油价为a[i]。思路:优先队列的Dij,每个节点保存还剩下的油量fuel和到当前为止所用的花费,dis[i][j]表示在i点油量还剩下j的费用最小值。注意,每次入队列不要一次性把所有符合的油量全部入队列,比如u->v,距离为w,那么油量区间w~c之间的油量都是可以满足从u走到v的,但不要一次性把w~c全部入队列,这样会超时:应该这样:对于队列中的每个点u先看它当前的油量能

2015-10-01 23:20:57 1161

原创 light oj 1379 - Toll Management(两次最短路)

题意:n个点m条边,求s到t长度不超过p的最短路中最长边的最小值。思路:分别从源和汇做两次Dij,最后判断一下求最大值。

2015-09-29 23:28:20 735

原创 light oj 1281 - New Traffic System (最短路+dp思想)

题意:n个点,m条旧有向边,k条新有向边,现在求0到n-1的最短路,且最短路径上用到的新边数量不超过d。思路:dis数组开二维,dis[i][j]表示到节点j用i条新边的最短路。

2015-09-29 22:14:46 501

原创 D. Three Logos (CF Round #322 (Div.2) 瞎搞 分情况)

题意:三个logo,给出他们的长宽,问他们能不能无缝放在一个正方形内。思路:5种情况在纸上画一下就知道了。

2015-09-28 23:06:02 569

原创 C. Developing Skills (CF Round #322 (Div.2) 贪心)

题意:给出n个数,还有一个数k,用k去补这n个数,使得ai/10之和最大。思路:贪心。先把n个数按照x值从小到大排序,其中x等于 把ai变为10的倍数所需要要添加的最小值;然后用k尽量去把每个数按照x值填为10的倍数,如果k还有剩余尽量填就行了。具体看代码。

2015-09-28 23:00:22 429

原创 Minimum Cut (hdu 5452 离线LCA)

题意:n个点m条边,前n-1条边构成这个图的生成树,现在删除一些边使得图不联通,且要求删除的边中有且仅有一条生成树上的边,问最小要删除多少条边。思路:若要删除生成树上节点u的子树,那么就要删除u的子树中所有和另外一个树相连的边,还有减去u子树内部相连的边就是要删除的边数了。内部相连的边用LCA处理。

2015-09-21 23:08:52 577

原创 Network (hdu 3078 在线LCA)

题意:n个点n-1条边,每个点有一个权值value[i],q次询问(k,u,v),若k==0,令value[u]=v;若k>0,输出u到v路径上第k大的权值。思路:在线LCA算法,LCA转RMQ,添加一个pre数组记录路径。

2015-09-18 21:34:17 583

原创 Connections between cities (hdu 2874 LCA)

题意:n个点m条边c次询问,每次询问(u,v)之间的最短距离,若不联通,输出“Not connected”,否则输出最短距离,没有环。思路:LCA,但是给的图是一个森林,每次找到子树Tarjan,还有一种方法就是添加根root,把所有树连成一棵树再一次LCA。数组开小了它却返回TLE,郁闷我半天。。。

2015-09-18 16:22:14 540

原创 Destroying The Graph (poj 2125 最小点权覆盖)

题意:有一张有向图n个点m有向边,现在每次删除一个点的所有入边费用为W+,或者删除一个点的所有的出边费用为W-,问删除所有的边最小费用是多少。思路:最小点权覆盖问题,具体贴上《最小割模型在信息学竞赛中的应用》中的阐述:回顾与此模型相关的模型。简化权的条件后,可以借鉴的是二分图匹配的大流解法。 它加入了额外的源s和汇t,将匹配以一条条s->u->v->t形式的流路径“串联”起来。匹配的 限制是在点上,恰当地利用了流的容量限制。而点覆盖集的限制在边上,小割是大流的对偶问题,对偶往往是将问题的性质从点转边,从

2015-09-17 21:07:29 606

原创 Friendship (poj 1815 最小点割集+枚举)

题意:给出N个人之间的通讯关系,给出S和T,问切断S到T的联系最小要删去的点是多少,输出最小字典序解。思路:拆点,从1~N枚举删掉i后看最大流是否减少,若减少则i属于最小点割集。

2015-09-15 16:10:59 706 1

原创 How far away ? (hdu 2586 LCA)

题意:给出一棵n个节点的树及n-1条边,m次询问,每次询问求a,b之间的最短距离。思路:LCA模板题。具体算法思想:http://www.cppblog.com/keroro/archive/2013/05/17/200341.html

2015-09-14 23:39:23 482

原创 The Bonus Salary! (poj 3762 离散化+最小费用流)

题意:有n个任务要在k天时间内选部分完成,每个任务在每天有一个规定的时间,必须要在这个时间内做这个任务,完成一个任务会得到相应的分数,问能得到的最大分数是多少。思路:离散化+最小费用流,这一题和poj3680是一样的,先对时间离散化,然后添加源点S和汇点T,1->2,2->3,3->4.......T-1->T这样连边,容量为k,费用为0,对于每个任务起始时间u->v连边,容量为1,费用为-w。

2015-09-14 15:19:40 536

原创 The Windy's (poj 3686 最小费用最大流 建图经典)

题意:n个订单m个工作车间,每个订单只能在同一个车间全部完成,每个订单在每个车间完成的费用以矩阵给出,问完成所有订单的最低平均费用为多少。这题建图确实想不出来,看了别人的讲解,感觉太巧了!http://blog.csdn.net/weiguang_123/article/details/7881799

2015-09-14 12:58:38 539

原创 Intervals (poj 3680 离散化+最小费用最大流)

题意:有N个整数区间,每个区间有一个权值,从中取一些区间,使得任意整数点的重叠数不大于K,并且这些区间的总权值最大。思路:首先区间比较大,线段比较少,考虑到离散化操作。建图比较巧妙,S->1,1->2,2->3......T-1->T这样连边,容量为k,费用为0,然后对于每条线段u->v连边,费用为-w,容量为1.

2015-09-11 17:27:03 625

原创 Minimum Cost (poj 2516 求K次最小费用流)

题意:有n个客户,m个供应商,k种商品,给出n个客户对这k种商品的需求 和 这k种商品m个供应商的供给量,以及每种商品ki从供应商j运到客户i的费用,求最小费用。思路:如果只有一种商品那就是最普通的费用流问题了,现在变成了k种商品,那我们就求k次费用流相加就可以了。

2015-09-08 16:27:03 644

原创 Evacuation Plan (poj 2175 SPFA费用流消圈)

题意:n个办公楼和m个防空洞,每个大楼里有一定人数,每个防空洞有一个最大容量,现在告诉每个大楼的人数和每个防空洞的容量,还告诉一个撤离方案,问是否是最优方案,否则输出更优方案。思路:很容易想到是最小费用流,但是会超时。这是一个费用流消圈的问题,有这样一个定理:一个费用流是最小费用流的充要条件是这个费用流的残留网络中没有负费用圈。负圈是指费用总和是负数,且每条边的剩余流量大于0的圈。我们先根据已知条件构造出残留网络,在残留网络中从汇点出发用spfa找负圈。我是按照原图建边的,网上好多是简化了的。

2015-09-08 15:07:12 450

原创 Firing (poj 2987 最大权闭合图)

题意:公司有n个员工和m个从属关系,现在要辞退一些人,每辞退一个人 i 会到一个价值wi(正或者负),辞退一个人也要连同他的下属一起辞退,问能得到的最大收益是多少且最少的辞退人数是多少。思路:最大权闭合图,关键是求最少的辞退人数,这里就为最小割的取点数,具体证明看这位大神吧点击打开链接另外注意要用long long

2015-09-07 20:24:54 684

原创 Black And White (hdu 5113 dfs+剪枝)

题意: N*M的格子用K种颜色图,每种颜色有ci个,并且每两个相邻的格子不能图一样的颜色,输出一种可行方案。思路:dfs+剪枝,若某种颜色的数量大于剩下未图格子数量的一半则一定无解。

2015-09-02 10:02:57 478

原创 Crazy Circuits (hdu 3157 流量有上下限的最小流)

题意:有两个正负极n个节点和m个元件,每个元件告诉端点是接在哪个节点上的,并且每个元件有工作的最小电流限制,问使所有元件工作的满足条件的最小电流是多少。思路:题目中已经有了源点S和汇点T,再添加附加源点SS和汇点TT,原图中的边的容量为INF(因为没有上限),若in[i]>0则SS向i连边容量为in[i],若in[i]<0则i向TT连边容量为-in[i],跑一次最大流,然后T向S连容量为INF的边,再跑一次最大流,判断SS的出边是否满流,若不满流则无解,否则有解输出边(T,S)的流量。另外这类题看这里详

2015-08-26 16:58:15 1196

原创 Instrction Arrangement (hdu 4109 差分约束)

题意:安排n个任务在CPU上工作,告诉m个限制,u,v,z表示v必须在u指令之后执行,并且u和v之间要间隔z秒,问把所有的任务完成最少时间为多少。思路:差分约束系统,由题意:dist[v]-dist[u]>=z,变形得:dist[u]<=dist[v]-z,根据这个建图v->u权为-z,源点到i权为0,i到汇点权为-1,然后求最短路,答案为 -dist[n+1].

2015-08-25 23:17:12 1052

原创 Columbus’s bargain (hdu 3268 最短路)

题意:n个物品,每个物品价值为pi,可以用一个玻璃珠和pi-1个金币换的,也可以由其他便宜的物品加上一定量的金币换得,相同价格的物品可以互换。问每个物品通过这样交换若干次后最少要花的金币数是多少。并且有多少物品的actual price等于其他两个物品actual price之和,注意每个物品如果有多个组合形式也只算作一种。

2015-08-25 22:51:59 740

原创 There is a war (hdu 2435 最小割+枚举)

题意:n个国家,m条有向边,国家1要去攻打国家n,n想切断1到n的道路来防御,切断每条道路有一定费用,国家1有一个NB魔法,可以建一条新边或者加固一条已有的边,这条边不能被n破坏,现在求 最大化n国花费之和的最小值。思路:可知就是求最小割边集,先建图,跑一遍最大流得ans,然后从S集到T集枚举割边使容量为INF,在残留网络中再跑网络流并记录最大值Max,那么最后答案就是ans+Max。在枚举的时候也可以直接重新建图,这样应该好理解一些。

2015-08-25 21:31:14 640

原创 A Dicey Problem (Uva 810 & poj 1872 bfs)

题意:n*m的地图,每个格子上有数字,骰子起始在(sx,sy),并告诉骰子上面的数字和正对你的数字,现在骰子在图上滚动,骰子能滚动当且仅当要滚到的格子上的数与滚之前骰子上面一面的数字相同或者为-1,问骰子是否能够滚一圈回到原点,输出路径,每9个一行。思路:骰子两个面就可以确定状态,开一个四维数组标记状态。注意以下代码死活在poj交C++过不了,G++可过,Uva也可过。写得很难看。。

2015-08-19 16:43:37 666

原创 Bloxorz I (poj 3322 水bfs)

题意就不具体说了,去这里玩一下就知道了戳我玩游戏,还是很好玩的~思路:Move函数写得很蛋疼,我是硬来的,一定要细心。

2015-08-19 09:46:31 1149

原创 Travelling Salesman Problem (hdu 5402 模拟)

题意:n*m的格子,每个格子上有权值,求从(1,1)走到(n,m)所经过的格子权值之和最大为多少,并输出路径。思路:直接贴上题解,但是想的和它一样,就是bug得蛋疼。首先如果nn为奇数或者mm为奇数,那么显然可以遍历整个棋盘。如果n,mn,m都为偶数,那么讲棋盘黑白染色,假设(1,1)(1,1)和(n,m)(n,m)都为黑色,那么这条路径中黑格个数比白格个数多11,而棋盘中黑白格子个数相同,所以必然有一个白格不会被经过,所以选择白格中权值最小的不经过。构造方法是这样,首先RRRRDLLLLD这样

2015-08-18 19:27:29 689

原创 Finding Nemo (poj 2049 超级蛋疼的bfs)

题意:二位坐标内告诉一些墙和门,儿子被困在里面,父亲在(0,0)处出发去救儿子,要求穿过的门数最少,输出最少门数。思路:我是把它转化成了平常的二维地图,先从(0,0)dfs走遍迷宫外的所有能到达的点并标记,然后从儿子所在地出发bfs,step记录穿过了多少扇门,当走到迷宫外遇到dfs访问过的点就表示出来了。今天做的几个poj上的题怎么都这么蛋疼,实在无语了,实际测试数据有大于199的!!!具体去看discuss吧,我也是看了里面的才过。。。

2015-08-17 21:25:36 839

数据结构课程设计通讯录管理系统

实验要求: 1、设计合适的数据结构存储朋友、分组信息,将以上文件内容导入其中(如果你觉得以上文件中的信息不合适,可以自行处理,删除某列、增加属性、规范化数据均可,如果你认为有必要,甚至去掉“编号”都可以)。 2、进行插入、删除、修改和查询操作。 考查点: 插入时注意编号的处理,可以不填吗?是否重复?是否可以自动编号?其他数据是否可以不填或乱填?如何控制? 删除时一要防止误操作,二要考虑分组信息的删除,如何处理? 修改时同样要考虑各数据项的性质。 查询操作包括按姓名查找、按拼音查找、按电话查找等。 3、为了便于查询,可以考虑采用索引表、散列,参考教材第一章绪论中的第一个例子:书目检索问题,也可以考虑将课堂所学的第9章查找、第10章排序加入到系统中。 4、综合查询 综合查询要求可以实现多条件查询,例如查询所有在北京的高中同学、在武汉的男性朋友等, 类似于筛选,越灵活越好,发挥你们的想象,自行设计。 5、最后把系统中的数据(包括主文件和索引表等)保存回相应的文件中。

2015-09-11

数值计算实验代码

包含了数值计算课程内的部分算法的源代码,包括Crout分解,Doolittle分解,Lagrange插值法,Newton插值法,Romberg算法,二分,复化梯形积分法,顺序高斯消元,列选主元高斯消元,全选主元高斯消元,数据拟合的最小二乘法,正定矩阵分解。

2015-09-11

空空如也

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

TA关注的人

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