自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构作业。

<br />#include<iostream> #include<cstdio> #include<cstring> #define see(x) cout<<#x<<":"<<x<<endl; using namespace std; const int INF=1<<29; class Node { public: int val; Node *next,*pre; Node(){} Node(int _val):val(_val){}

2010-12-14 21:04:00 335

原创 第一次写树。。。纯当纪念吧。。只有1个节点要特判内牛满面。。

<br />#include<iostream> #include<cstring> #include<cstdio> #include<queue> using namespace std; struct Node { int lc,rc,pa; int val; int pos; char s[20]; char str; }a[10000]; bool operator> (const Node& x, const Node &y)

2010-12-03 00:44:00 269

原创 [DP]poj1191

<br />/*将一个8*8的棋盘进行如下分割: 将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割, 这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。 (每次切割都只能沿着棋盘格子的边进行) 原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值之和。 现在需要把棋盘按上述规则分割成n块矩形棋盘,并使各矩形棋盘总分的均方差O'最小。 其中平均值xi为第i块矩形棋盘的总分。 请编程对给出的棋盘及n,求出O'的最小值。 Input 第1

2010-11-18 14:59:00 283

原创 [DP] boj1670

<br />/* Description dalong最近对汉密尔顿路很感兴趣,现在他给你一个包含n个点的无向图, 对于一条路径a1->a2...->ak,他定义这条路径的花费值value = a1*a2*...*ak。 汉密尔顿路定义:给定图G,若存在一条路,经过图中每个结点恰好一次,这条路称作汉密尔顿路。 dalong现在给你一个无向图,包含n个点和m条边,他请你帮他找到一条花费值最小的汉密尔顿路。 数据范围: 1 <= n <= 16 , 1 <= m <= n^2; Input 多

2010-11-17 12:04:00 319

原创 [DP] poj1080

/*poj1080 Sample AGTGATG -GTTA-G score : (-3)+5+5+(-2)+5+(-1) +5=14. 每次读入2个字符串只有A,T,C,G 可以做3个操作: 1.删除目标串一个字符 2.删除原串一个字符,代价是a[?]['-']见表格 3.改变一个字符代价是a[x][y] 求代价最小的使2个字串相同的方法。 dp[i][j]是原串第i个对应目标串第j个的最小代价 dp[i][j]=max(dp[i-1][j]

2010-11-16 15:46:00 286

原创 [DP] poj1836

<br />/* 题意知道N个人身高 h[1..n]; 要求是的形成一个 h[1]<h[2]<...<h[x]>=h[x+1]>h[x+2]>..的队列 且出列的人最少 2个最长升序列,枚举中间2个点。 */ import java.util.*; import java.math.*; import java.io.*; public class Main { static int MIN(int a,int b){return (a>b)?Pv�;

2010-11-15 00:17:00 861

原创 [DP] poj1260

<br />/* 题意:已知每种珍珠需要几个,花费多少 买珍珠的花费为(need[x1]+need[x2]+...+10)*max(cost[x1],cost[x2],....) 10为定值 求买完所有珍珠最小的花费 */ import java.math.*; import java.util.*; import java.io.*; public class Main { static int min(int a,int b){return (a<b)? a:b;} st

2010-11-15 00:15:00 368

原创 Java - Queue Stack

<br />import java.math.*; import java.util.*; import java.io.*; public class Main { public static void main(String args[]) { Scanner cin=new Scanner(System.in); System.out.println(); int x=0; Stack<Integer> s=new Stack<Integer>(); P

2010-11-12 17:14:00 241

原创 [DP] poj3267

/* 这道题求的是某个字符串str,至少删去多少个字符后,剩下的字符串是由dict中的单词可以组成的。 设f[i]=m,代表str[i...L-1]中至少删去m个字符后,剩下的字符串是由dict中的单词可以组成的。 则问题求的就是f[0]。 且可以得到递归式: f[L]=0;dp[i]=dp[i+1]+1 如果存在单词可以匹配:f[i]=min(dp[i], dp[t+1]+(t-i+1)-m) 且str[t-1]为可以匹配的字符串的最后一个字符,匹配的单词的长度为m。 f[

2010-11-12 15:31:00 300

原创 [DP] boj1440

/* * 在一条直线上摆着N堆石子,现要将石子有序的合并成一堆, * 规定如下:每次只能移动相邻的2堆石子合并,合并花费为将的一堆石子的数量。 * 设计一个算法,将这N堆石子合并成一堆的总花费最小(或最大)。 * 那么最优子结构是什么呢?如果有N堆,第一次操作肯定是从n-1个对中选取一对进行合并, * 第二次从n-2对中选取一对进行合并,以此类推…… * 递推公式如下:f[i][j]=min(f[i][j], f[i][k]+f[k+1][j]+sum(i,j)); */ im

2010-11-12 12:25:00 271

原创 [DP] poj1837

/*题目意思是给你一个balance, 共有C个位置, G个砝码, 问你总共有多少种方法使balance左右平衡(每一种方法中砝码都要用完)。 状态方程dp[i][j] 表示使用前i个砝码, 不平衡数为j的方法数(j>0 表示右边比左边重j,j #include #include using namespace std; int dp[21][15001]={0}; int main() { //freopen("in.txt","r",stdin); int C,N,P

2010-11-12 12:23:00 259

原创 [DP] poj2353

/* 题意是有N层,每层M个房间,每个房间有花费,从第1层走向第N层,可以向上、左、右方向走。 输出使得花费最小的路径 */ #include#include#include#includeusingnamespace std;int inque[600];int a[120][600], f[120][600];int pre[120*600], n, m;voiddfs(int k){if( k==-1);elsedfs( pre[ k]), coutretur

2010-11-12 12:06:00 377

空空如也

空空如也

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

TA关注的人

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