
动态规划
文章平均质量分 61
sunbaofeng2
这个作者很懒,什么都没留下…
展开
-
108 Maximum Sum
#include #include #include #include #include #include #include #define N 101using namespace std;int n;int ma[N][N];int v[N][N][N][N];void print2(int ma[][N],int n){ for(int i=0; i<n;原创 2012-09-03 22:58:16 · 322 阅读 · 0 评论 -
HDU 4345(想不出来的DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4345题目大意:求长度为n的数列的置换的循环节的长度的种数。题目思路:以下摘自题解: 循环节的长度为各独立置换环长度的最小公倍数。问题即求相加和为N的正整数的最小公倍数的可能数。由于1不影响最小公倍数,问题转化为相加小于等于N的若干正整数的最小公倍数的可能数。如果这些正整数包原创 2013-05-18 21:47:25 · 715 阅读 · 0 评论 -
uva10280 - Old Wine Into New Bottles
#include#include#include#include#include#include#include #define inf 0x7fffffff#define N 450000#define MIN 1e-11#define M 100#define LL long longusing namespace std;int n,k,h,t,m;int a[N原创 2012-09-17 10:56:05 · 378 阅读 · 0 评论 -
uva125
假设c[k][k]不等于0 那么由k->k之间一定有回路。注意环前后,考虑全面!!!!!#include#include#include#include#include#include #include#include#define LL long long#define E 1e-7#define M 50#define N 100using namespace st原创 2012-10-24 16:57:30 · 437 阅读 · 0 评论 -
uva104
所謂的「三角套匯(arbitrage)」就是在幾種外幣中做金錢的交易,期待從匯差中獲取少許的利潤。例如:1 元美金可以買 0.7 英鎊,1 元英鎊可以買 9.5 法朗,1 元法朗可以買 0.16 美金。所以如果我們把 1 元美金換成英鎊,再把英鎊換成法朗,最後再把法朗換回美金,那麼最後得到的美金將是:1*0.7*9.5*0.16=1.064 美元。也就是說我們可以從中獲取匯差 0.064 美元,相原创 2012-10-24 16:28:30 · 731 阅读 · 0 评论 -
10048 Audiophobia--好题
#include#include#include#include#include#include#include #include#include#include#define LL long long#define inf 800000#define E 1e-9#define M 100#define N 105using namespace std;int原创 2012-10-12 20:08:16 · 547 阅读 · 0 评论 -
10051 - Tower of Cubes----------
记忆画搜索-按原理写,让程序跑去吧!!#include#include#include#include#include#include#include#include #define LL long long#define inf 0x7fffffff#define E 1e-9#define M 310#define N 501using namespace std原创 2012-09-20 18:46:52 · 437 阅读 · 0 评论 -
凸多边形最优三角剖分——动态规划
解答:题目中顶点坐标编号从1开始,为了方便编程,将顶点从0开始,顶点的编号变为0到7。定义t[i][j],0=由于退化的两点多边形{Vi,Vi+1}的权值为0,t[i][i]=0。最优子结构的性质,t[i][j]的值是t[i][k]的值加上t[k][j]的值,再加上三角形ViVkVj的权值,其中,it[i][j]=t[i][k]+t[k][j]+w(i,k,j) (j-i>=2)原创 2012-09-19 17:29:44 · 2701 阅读 · 0 评论 -
116 - Unidirectional TSP----------------输出方式!!!!
这道题有一个需要注意的地方,就是题目要求:如果存在多条路径的最短路径长度都相等,按字母表顺序取路径较小的一条作为输出。因此在更新节点路径长度值时,如果出现两个“上一节点”同为最小,就要取行号较小(靠上)的一个。字母表顺序是从第一个输出开始比较,因此需要从后向前遍例,否则不能得到正确的结果。#include#include#include#include#include#include#原创 2012-09-13 18:06:43 · 581 阅读 · 0 评论 -
刘如佳书p162(动态规划)类似例子!
#include#include#include#include#include#include#include #define inf 0x7fffffff#define N 1000#define MIN 1e-11#define M 100#define LL long longusing namespace std;int n,k,h,t,m;int a[N],原创 2012-09-12 21:03:39 · 1853 阅读 · 0 评论 -
刘如佳书p164--硬币问题
#include#include#include#include#include#include#include #define inf 0x7fffffff#define N 1000#define MIN 1e-11#define M 100#define LL long longusing namespace std;int n,k,h,t,m;int a[N],原创 2012-09-13 13:29:38 · 2098 阅读 · 0 评论 -
uva147 - Dollars-------水题(精度注意)
#include#include#include#include#include#include#include #define inf 0x7fffffff#define N 6005#define MIN 1e-11#define M 100#define LL long longusing namespace std;int n,k,h,t,m;long long原创 2012-09-12 17:17:32 · 470 阅读 · 0 评论 -
10534 - Wavio Sequence---使用nlgn实现的
#include#include#include#include#include#include#include #define inf 0x7fffffff#define N 10000#define MIN 1e-11#define M 100#define LL long longusing namespace std;int n,k,h,t,m;int a[N]原创 2012-09-11 23:19:50 · 1541 阅读 · 0 评论 -
825 - Walking on the Safe Side------水题(注意输入方式)
在输入上WA了很多遍,主要是因为两个数之间可能隔了不止一个空格,之前全都按照一个空格来算的。#include#include#include#include#include#include#include #define inf 0x7fffffff#define N 105#define MIN 1e-11#define M 10000#define LL lo原创 2012-09-11 17:42:50 · 492 阅读 · 0 评论 -
357 - Let Me Count The Ways---水题--数据类型long long
#include#include#include#include#include#include#include #define inf 0x7fffffff#define N 30005#define MIN 1e-11#define M 10000#define LL long longusing namespace std;int n,k,h,t,m;int my原创 2012-09-11 16:09:39 · 455 阅读 · 0 评论 -
10827 Maximum sum on a torus
#include #include #include #include #include #include #include #define N 160using namespace std;int n;int ma[N][N];void print2(int ma[][N],int n){ for(int i=1; i<=n; i++) {原创 2012-09-05 17:56:46 · 656 阅读 · 1 评论 -
uva108 Maximum Sum--数组动态规划的题的方法!!
#include #include #include #include #include #include #include #define N 105using namespace std;int n;int ma[N][N];void print2(int ma[][N],int n){ for(int i=0; i<=n; i++)原创 2012-09-05 16:35:59 · 411 阅读 · 0 评论 -
hdu4713 Permutation(集合类型的dp,难-不拿手!!!)
#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson o<<1,l,mid#define rson o<<1|1,mid+1,r#define lo o<<1#d原创 2013-09-13 21:58:58 · 1055 阅读 · 0 评论