随笔分类 -  算法学习

摘要:MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0编号山脚的树是1w[i]表示从1号到i号节点的树的总质量。d[i]表示第i棵树距离山脚的锯木厂的距离。g[i]表示从i到n棵树都运到i地的锯木厂所用的费用。h[i]表示从1到i棵树都运到山底锯木厂所用的费用。f[i]表示中间的锯木厂建设在i处所用过的最小费用。MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0很容易写出朴素方程 f[i]=h[i-1]+g[j]+ h[j-1]-h[i]-(w[j-1]-w[i])* 阅读全文
posted @ 2012-04-19 09:11 Codinginging 阅读(694) 评论(2) 推荐(0) 编辑
摘要:题目不在累述,在RQNOJ或八中上都有。朴素方程很好写f[i]=max{f[j]+a*sqr(s[i]-s[j])+b*(s[i]-s[j])+c}典型的1D/1D方程,有数据范围来看,一定有O(n)算法,于是模式基本就确定下来了,我们要对方程进行变形。设对于f[i]决策x优于y且x<y则:f[x]+a*(s[i]-s[x])*(s[i]-s[x])+b*(s[i]-s[x])+c>f[y]+a*(s[i]-s[y])*(s[i]-s[y])+b*(s[i]-s[y])+c→f[x]+a*s[i]*s[i]-2*a*s[i]*s[x]+a*s[x]*s[x]+b*s[i]-b*s[ 阅读全文
posted @ 2012-04-19 08:36 Codinginging 阅读(736) 评论(0) 推荐(0) 编辑
摘要:题意略过,把棋盘上点交叉黑白染色,坏点为-1,则每个骑士在合理跳跃的前提下总会跳到一个不同颜色的点,我们把这两个点连边,问题转化为最大独立子集问题,用匈牙利最大数据0.39水过,第9个点用cena暴栈,但是直接运行没有问题,囧View Code 1 program knight(input,output); 2 type 3 node = ^link; 4 link = record 5 goal : longint; 6 next : node; 7 end; 8 var 9 l ... 阅读全文
posted @ 2012-04-17 15:34 Codinginging 阅读(499) 评论(0) 推荐(0) 编辑
摘要:用SBT神树做的,开始select居然打错了,maintain里就、自己没分清左右,树转烂了,无语。外边有一个工资总标记量就行了。View Code 1 program cashier(input,output); 2 const 3 oo = 9999999; 4 var 5 left,right,keys,s : array[0..200000] of longint; 6 money : longint; 7 n,tot,root : longint; 8 answer : longint; ... 阅读全文
posted @ 2012-04-16 20:02 Codinginging 阅读(453) 评论(0) 推荐(0) 编辑
摘要:网络流与线性规划24题第二题。题解中算法很明显,但是有一个地方不完美,就是方案,数据中存在这样的情况,对于一个最优方案,再加上一个实验,总收益不变,数据就把这个实验也算在内了。所以输出时不是和s相连的点,而是与t不连通的点。View Code 1 program fly(input,output); 2 const 3 oo = 19950714; 4 var 5 dist : array[0..500] of longint; 6 f : array[0..500,0..500] of longint; 7 q : array[0..... 阅读全文
posted @ 2012-04-11 18:17 Codinginging 阅读(224) 评论(0) 推荐(0) 编辑
摘要:vijos1081 野生动物园 把区间以首端点为第一关键字,尾端点为第二关键字排序,充分利用区间不互相包含的性质,每次把新到元素插入,超出当前区间的元素删除,统计答案即可,不要得意忘形,忘掉了要按询问顺序输出,codewaysky为这个问题调了一个下午,偷笑View Code 1 {$inline on} 2 program zoo(input,output); 3 var 4 left,right,key,s,eat:array[0..100001] of longint; 5 x,y,c,number,ans:array[0..50001] of longint; ... 阅读全文
posted @ 2011-11-09 19:36 Codinginging 阅读(1515) 评论(0) 推荐(0) 编辑
摘要:前言有些问题,时刻需要知道问题的当前状态,所以需要的每一个状态进行保存,而在计算机中,简洁快速的二进制受到大家表示状态时的青睐,最近在学习中总结了一下状态压缩,它不仅应用于我们常提的DP,在其他算法解决问题是也能起到不同凡响的作用。正文在一个需要描述的对象有两种不同的状态时,通常采用二进制数来表示,0,1分别表示两种不同的状态,这就做到了对问题的足够抽象,使下面的操作更为简洁。空谈说不出来什么,下面直接进入实战(不懂位运算的先补一下)。问题一:TSP 经典问题一个N个点的带全有向图,求一条路径,进过该图上的各个点一次且仅一次,并且路径上的边权值之和最小(或最大)。※n<=16.<- 阅读全文
posted @ 2011-10-19 21:25 Codinginging 阅读(2577) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示