c++
星天93
很多烦恼是我们凭空虚构的,而我们却把它当做真实去承受。
展开
-
c++封装常用函数(split)
vector<string> split(string src, string sep) { string src_tmp = src, sep_tmp = sep; char *_src = (char *)src_tmp.c_str(), *_sep = (char *)sep_tmp.c_str(), *pNext; vector<string> r...原创 2019-11-27 20:06:47 · 508 阅读 · 0 评论 -
13南京邀请赛c题之数位DP
//http://icpc.njust.edu.cn/Local/1739 #include #include #include #include #include #include #include #include #include #define INF 1000000 using namespace std; const int MAX=70; long long sum[MAX],nu原创 2013-05-13 21:22:15 · 1141 阅读 · 0 评论 -
简单数位dp,uestc1307
http://acm.uestc.edu.cn/problem.php?pid=1307 #include #include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX=10+5; int dp原创 2013-04-10 13:35:28 · 1170 阅读 · 2 评论 -
hdu2059DP之龟兔赛跑
思路:定义从i->j为在第i个站点充完电直接到达第j个站点(假设终点为第n+1个站点),i可以使小于j的任何站点,j从1增加到第n+1,所以time[n+1]=min(time[n+1],time[i]+T),T为从i到j的所花的时间. #include #include #include #include #include #include #include #include #inc原创 2013-01-17 20:41:11 · 660 阅读 · 0 评论 -
hdu1081求最大子矩阵的和,DP
思路:对于n行n列的矩阵求最大子矩阵和,则子矩阵必定是第i列到第j列,第a行到第b行,如果把每一行第i列到第j列的值计算好和作为一个值(即把这几列的数压缩成一个数),不就变成求前n行的子序列的最大和,就和hdu1003一样了http://acm.hdu.edu.cn/showproblem.php?pid=1003//或者压缩行,求前n列的最大子序列和。 代码: 压缩列: #incl原创 2013-01-16 14:47:18 · 543 阅读 · 0 评论 -
hdu1024求多段最大子序列和
发现自己变懒了,不想详细写思路了 简单思路:计算n个数m段的子序列最大和,即计算前n个数m段的最大子序列和,前n个数,m段,马上想到这是动态规划,假设prior[n][m]代表前n个数m段子序列最大和,现在我们已经选出来了m段,可以考虑前n个数这m段包括第n个数在内吗??分两种情况:包括与不包括,不包括就是第n个数没用了,也就就转化为前n-1个数m段最大子序列和prior[n-1][m],如果包原创 2013-01-14 18:02:08 · 724 阅读 · 0 评论 -
hdu1025最长递增子序列
#include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX=500001; int p[MAX],sum[MAX];//sum[i]记录长度为i的递增子序列末尾数的最小的数 int main(){原创 2013-01-15 17:34:17 · 627 阅读 · 0 评论 -
hdu1160最长子序列
#include #include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX=1001; int sum[MAX][2],**s;//sum[i][]记录以第i个元素为最后元素的最长子序列的长度和该元素原创 2013-01-15 14:17:11 · 1685 阅读 · 0 评论 -
hdu1003求最大子序列
分析:定义数组present[MAX]代表前i个数且包括第i个数的子序列的最大和,prior[MAX]表示前i个数最大子序列的和 所以有:present[i]=max(present[i-1]+s[i],s[i]);//前i-1个数包括第i-1个数的子序列最大和加上当前这个数构成的子序列,或者以当前这个数自成一个子序列,两者中选最大的。 prior[i]=max原创 2013-01-11 13:46:19 · 484 阅读 · 0 评论 -
hdu2191
#include #include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX=101; int dp[MAX];//花费i元能购买的大米的最大重量 int s[MAX][3]; int main()原创 2013-01-10 12:51:48 · 1246 阅读 · 0 评论 -
hdu1978
#include #include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX=101; int s[MAX][MAX]; int mod=10000; int main(){ int n,m,a,t原创 2013-01-10 12:02:24 · 577 阅读 · 0 评论 -
hdu1114
#include #include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX=10000; int dp[MAX];//重量为i能够的到的最少硬币价值 int s[501][2]; int main原创 2013-01-10 13:18:33 · 481 阅读 · 0 评论 -
hdu1789贪心
思路:每次都选择分数最大的,判断这门功课从它限制的那天开始(限制3天则从第三天开始)往前推看能不能在最晚的一天完成 #include #include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX原创 2013-01-10 11:25:57 · 830 阅读 · 0 评论 -
hdu1058DP
#include #include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX=5845; int s[MAX]={1,1};//记录第i个humble numbers. int prime[]={2,原创 2013-01-09 20:18:42 · 461 阅读 · 0 评论 -
hdu1421
#include#include #include #include #include #include #include #include #include #define INF 99999999 using namespace std; const int MAX=2001; int s[MAX][MAX/2+1];//表示前i个物品搬j对物品的最小疲劳度. int a[MAX]; in原创 2013-01-09 15:29:09 · 1335 阅读 · 0 评论 -
hdu1087
Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it to you now. The g原创 2012-12-04 21:18:31 · 2652 阅读 · 0 评论