- 博客(26)
- 收藏
- 关注
原创 hdu4021——N数码问题及其扩展
在一个N*N的矩阵里,填入0,1,2直到N*N-1,当一个数的上下左右四个方向中有一个方向的相邻的数为0时,该数就可以移动到相应位置。给定一个初始矩阵和一个目标矩阵。问能否通过上述操作,将初始矩阵变换为目标矩阵。这类问题主要是从逆序数奇偶性的角度去考虑,将矩阵内的数按照从左往右从上往下的顺序写成一个数列(0除外),然后求出这个数列的逆序数(数对两数为降序排列的数对总数)。对于左右移操作,他们不
2016-03-18 00:31:21 1469
原创 ACM中TSP问题的解决思路
1.强行dfs,可以加位运算优化常数。2.状压DP,即用dp[i][j]表示当前在i点,且状态(那些点已经走过,甚至可以通过多进制记录走过了几次)为j时的某些量(比如最小代价)。以后遇到再补充。。。
2016-03-15 23:42:36 882
原创 hiho Hamiltonian Cycle
#1087 : Hamiltonian Cycle时间限制:10000ms单点时限:1000ms内存限制:256MB描述Given a directed graph containing n vertice (numbered from 1 to n) and m edges. Can you tell us how many diffe
2016-03-03 21:09:48 477
原创 hihocoder骨牌覆盖问题·三
#1162 : 骨牌覆盖问题·三时间限制:10000ms单点时限:1000ms内存限制:256MB描述前两周里,我们讲解了2xN,3xN骨牌覆盖的问题,并且引入了两种不同的递推方法。这一次我们再加强一次题目,对于给定的K和N,我们需要去求KxN棋盘的覆盖方案数。提示:KxN骨牌覆盖输入第1行:2个整数N。表示棋盘宽
2016-03-03 15:25:22 875
原创 USACO Controlling Companies
http://train.usaco.org/usacoprob2?a=DqmOjLJnbWq&S=concom给出一些公司和相互的持股关系。定义A控股B为:,A持有B公司股份超过百分之五十 2.A公司及其所控股的公司对B公司的持股总和超过百分之五十要求找出所有控股关系。公司总数N这其实是一个floyd水题。之前用dfs解结果因为数据里居然有环所以跪了。还是自己对floyd的理解不深
2016-02-24 14:56:38 420
原创 关于容斥原理
poj2773 http://poj.org/problem?id=2773两个思路:1.与N互质的数具有周期性(也就是说,互质问题可与周期性问题联系起来),周期为N。 2.利用容斥原理,可以求小于等于num且与N不互质的数(正难则反)。若与N不互质,则要选N的素因数。这里就可以对N的素因数运用容斥原理。即: 与N不互质的数 = Σ(以
2016-02-17 18:28:52 413
原创 hdu2588 GCD(欧拉函数)
GCDTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1419 Accepted Submission(s): 662Problem DescriptionThe greatest common divisor
2016-02-16 19:42:34 444
原创 hdu2819Swap(二分匹配+巧妙地建图)
SwapTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2282 Accepted Submission(s): 827Special JudgeProblem DescriptionGiven an N*N
2016-02-16 00:08:50 520
原创 POJ2594Treasure Exploration(非简单路径覆盖)
对于有向图,求简单路径(即不相交路径)覆盖,可以通过转化成二分图通过求最大匹配来得到。那么对于非简单路径(即相交路径)覆盖,要先通过floyd求传递闭包,将间接相连的点也连起来,然后求最大匹配。代码:#include#include#includeusing namespace std;#define N 505#define INF (1bool G[N][N
2016-02-15 14:21:58 346
原创 ZOJ3460 Missile(神奇的建图)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3460感叹出题人的脑洞。。。这里把第i个基地第j次发射导弹这一事件记作点(j-1)*N+i,这样就成功处理了分次发射导弹的问题。。每个点都和目标相连,边权为所花的时间,即:j*T1+(j-1)*T2+d/V,然后二分时间限制。求二分匹配时如果对应边的权大于时间限制
2016-02-14 15:07:36 458
原创 hdu4352 XHXJ's LIS
http://acm.hdu.edu.cn/showproblem.php?pid=4352把数看成一个数字串,然后求区间[L,R]内最长上升子序列(LIS,不连续)长度为K的数字的个数。数位DP,想了半下午想不出,主要卡在状态的压缩上。。因为LIS要求记录长度为i的子序列中,其最小的结尾数字。K小于等于10,就要记录10个数,每个数的取值范围是0到9,这样状态就压到十亿了QAQ。。然后就
2016-02-03 18:29:18 477
原创 关于数位DP
不得不说很多数位DP的博客写的对初学者太不友好了Orz。。完全看不懂啊,一上来比网络流还难懂Orz数位DP,就我目前的理解,是记录最高位是i且满足某些性质(这就是所谓的状态)的数的个数(或者和,或者平方和等等)。这就是数位DP最一般的状态表示。。然后,一点一点的叠加直到正确答案。到这一步,状态什么意思搞明白了,就可以和一般的DP一样考虑状态并解决了。。先占坑,以后边做题边填。。。
2016-02-02 16:30:47 350
原创 hdu4503 湫湫系列故事——植树节
http://acm.hdu.edu.cn/showproblem.php?pid=4503中文题面,腾讯编程马拉松的一个大水题,,同时不得不感叹自己数学屎一样的水平。。总之一句话,正难则反。三个人关系不相同,则有一对好朋友和一个落单的。考虑每个人,从剩余的人中选一个好友和一个陌生人,求和。然后比如i和j是好友,i会选j一次,j会选i一次,所以和除以二去重,就得到了不满足题意的情况数,然后
2016-02-02 11:57:55 308
原创 网络流建图的几点体会(给自己看的笔记,持续更新)
网络流建图,实质是对实际问题的抽象。用一些图论中的理论去模拟实际问题,然后再把解出的答案转化为实际问题的答案。网络流适用问题一:多次方案的叠加问题,不同方案的选择互相排斥。比如:1.从某点到某点走最短路,有多少种走法(走过的边不能再走)。起点为源,终点为汇,所有可以成为最短路径一部分的边,其权置为一(因为只能被选一次,不同方案的选择互相排斥)。然后跑最大流即可。2.给定二分图,求可构成
2016-01-31 14:01:02 2612
原创 hdu3549 Flow Problem(dinic算法和ISAP算法)
Flow ProblemTime Limit: 5000/5000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 11855 Accepted Submission(s): 5631Problem DescriptionNetwork flow
2016-01-30 20:56:42 900
原创 hdu4370 0 or 1
Problem DescriptionGiven a n*n matrix Cij (1ij (1Besides,Xij meets the following conditions:1.X12+X13+...X1n=12.X1n+X2n+...Xn-1n=13.for each i (1ki (1ij (1For example, if n=4,we can
2016-01-30 12:18:07 449
原创 POJ3660 Cow Contest
Cow ContestTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8846 Accepted: 4977DescriptionN (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participa
2016-01-29 13:17:38 372
原创 POJ1511 Invitation Cards
题意:n个点,m条有向带权边,权值为正表示花费。设从节点1到其他所有点的总花费为A,从其他所有点到节点1的总花费为B。不同点之间通行的花费将重复计数(即:假设x到y的路径与x到z的路径经过同一条边,这条边的花费会被计数两次,具体看样例体会)。问A+B的最小值是多少?分析:从节点1到其他所有点即为求1到其他所有点的最短路径之和。无负权边则可用dijkstra算法,数据量比较大可考虑用优先
2016-01-28 22:00:37 413
原创 hdu4725 The Shortest Path in Nya Graph
题意:有n个点,最多n层,每个点都属于其中一个层。相邻层之间的任意点可以相互通行,花费为C。此外点与点之间还有一些带权边相连,边权即为花费。所有花费均为正整数值。从节点1到节点n,求最短路的总花费。分析:这题数据范围比较大,而且没有负权边,可以考虑队列优化的dijkstra算法,复杂度O(ElgE)。建图比较有技术含量。层与层之间任意点可相互通行,如果每两个点之间都连一条边,边数最
2016-01-28 17:04:36 410
原创 hdu 4003 Find Metal Mineral
描述:给定一个有n个节点带边权的树,在S点放置K个机器人,问让机器人遍历所有边的最小花费。分析:这题简直把我智商给藐视了,一开始我思路完全错了QAQ。。。被卡了半下午这题难点在于处理机器人进入子树然后回溯的情况,实际上回溯的过程是有一些性质可循的。如果最终状态的子树中有机器人,那么是没有必要再让其他的机器人进入子树再离开子树。我们完全可以让子树中的机器人走一遍准备进入子树再离开的机
2016-01-26 15:05:03 383
原创 POJ3162 Walking Race
描述:飞老鼠(什么鬼。。)的姐姐wc擅长运动,她最喜欢的项目是竞走。.... ̄へ ̄....她来到一个训练中心参加训练。这个中心有N个节点(从1到N)。某些对节点之间有一条无向边相连,这些节点和无向边构成一棵树。训练持续N天。在第i天,wc选节点i作为出发点,选另一个节点作为终点然后沿着两点之间的路径开始走啊走。。他所选择的终点会使路径尽可能地长。在每天的训练结束后,飞老鼠将会做一些身体检查
2016-01-24 22:23:51 492
原创 POJ1741 Tree
描述:给定一颗n个节点的带边权的树(边权不超过1001)定义dist(u,v)为节点u与节点v之间的最小距离。给定一整数k,当且仅当dist(u,v)不超过k,那个点对(u,v)就是合法的。写一程序计算给定树有多少个合法点对。输入:输入包含多组测试样例。每组测试样例第一行为整数n,k(n输出:对每组测试样例,输出答案。分析:楼教主的男人八题之一,经典
2016-01-24 20:34:47 366
原创 POJ2152 Fire
描述:Z国有N个城市,编号为从1到N。城市之间用高速公路连接,并且每两个城市之间都有唯一一条路径。最近Z国经常发生火灾,所以政府决定在一些城市修建消防站。在城市K建立消防站要花费W(K)。不同的城市花费不同。如果在城市K没有消防站,则离他最近的消防站与他的距离不能超过D(K),不同城市的D也不相同。为了省钱,政府希望你能算出修建消防站最小的总花费。输入:第一行输入包含一个整数T,表示有
2016-01-24 20:01:13 1232
原创 二路和多路归并排序
本文面向和我一样的菜鸟233333,以通俗的形式讲述对于分批存储于文件中的大量数据进行多路归并排序的算法原理,并给出代码和详细的注释。忽略掉了实用性不强的复杂度证明部分。
2015-09-17 01:07:02 3173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人