当前位置: 首页 > news >正文

绥化建设网站苏州建网站提

绥化建设网站,苏州建网站提,中卫网站设计公司排名,企业管理考研动态规划 动态规划算法的有效性依赖于问题本身所具有的两个重要性质#xff1a;最优子结构、重叠子问题 关于动态规划算法和备忘录方法的适用条件#xff1a; 要求#xff1a; 用分治法和动态规划法分别解决最大子段和问题#xff08;第四步求最优解不需要掌握#xff…动态规划 动态规划算法的有效性依赖于问题本身所具有的两个重要性质最优子结构、重叠子问题 关于动态规划算法和备忘录方法的适用条件 要求 用分治法和动态规划法分别解决最大子段和问题第四步求最优解不需要掌握 掌握用动态规划法解决0-1背包问题 最长单调递增子序列 最长公共子序列会写出计算最长公共子序列长度的递推式即可 矩阵连乘问题 备忘录做法 signed main() {cinn;for(int i0;in;i) for(int j0;jn;j) dp[i][j]inf;for(int i1;in;i) dp[i][i]0;for(int i1;in;i)cinrow[i]col[i];for(int i1;in;i) p[i]col[i];p[0]row[1];for(int len2;lenn;len){for(int i1;in-len1;i){int jilen-1;dp[i][j]dp[i1][j]p[i-1]*p[i]*p[j];s[i][j]i;for(int ki1;kj;k){int tmpdp[i][k]dp[k1][j]p[i-1]*p[k]*p[j];if(tmpdp[i][j]){dp[i][j]tmp;s[i][j]k;}}}}coutdp[1][n]endl;dfs(1,n);return 0; }动态规划做法 signed main() {cinn;for(int i0;in;i) for(int j0;jn;j) dp[i][j]inf;for(int i1;in;i) dp[i][i]0;for(int i1;in;i)cinrow[i]col[i];for(int i1;in;i) p[i]col[i];p[0]row[1];for(int len2;lenn;len){for(int i1;in-len1;i){int jilen-1;dp[i][j]dp[i][i]dp[i1][j]p[i-1]*p[i]*p[j];s[i][j]i;for(int ki1;kj;k){if(dp[i][j]dp[i][k]dp[k1][j]p[i-1]*p[k]*p[j]){dp[i][j]dp[i][k]dp[k1][j]p[i-1]*p[k]*p[j];s[i][j]k;}}}}coutdp[1][n]endl;print(1,n);return 0; }最大子段和问题 法一 #include bits/stdc.h #define endl \n #define int long long using namespace std; const int N1e35; const int inf1e18; int n,a[N],dp[N];signed main() {cinn;for(int i1;in;i) cina[i];int ans0;for(int i1;in;i){dp[i]max(dp[i-1]a[i],0ll);ansmax(ans,dp[i]);}coutansendl;return 0; } /* 7 -2 11 -4 13 -5 -2 -100 */ 法二 signed main() {cinn;for(int i1;in;i) cina[i];int ans0,b0;for(int i1;in;i){if(b0)ba[i];elseba[i];ansmax(ans,b);}coutansendl;return 0; }法三 #include bits/stdc.h #define endl \n #define int long long using namespace std; const int N1e35; const int inf1e18; int n,a[N],dp[N]; int dfs(int l,int r) {if(lr)return a[l]0?a[l]:0;int sum0,mid(lr)/2;int leftdfs(l,mid);int rightdfs(mid1,r);int s10,s20,tmp0;for(int imid;il;i--){tmpa[i];if(s1tmp) s1tmp;}tmp0;for(int imid1;ir;i){tmpa[i];if(s2tmp) s2tmp;}sums1s2;if(leftsum) sumleft;if(rightsum) sumright;return sum; } signed main() {cinn;for(int i1;in;i) cina[i];coutdfs(1,n)endl;return 0; } /* 7 -2 11 -4 13 -5 -2 100 */ 01背包问题 int n,m,f[105][N],dp[N];void fun1() {for(int i1;in;i) //物品i{for(int j1;jm;j) //容量j{if(jw[i])f[i][j]f[i-1][j];else f[i][j]max(f[i-1][j],f[i-1][j-w[i]]c[i]);}}coutf[n][m]endl; } void fun2() //逆序更新 {for(int i1;in;i){for(int jm;jw[i];j--)dp[j]max(dp[j],dp[j-w[i]]c[i]);} } 最长单调递增子序列 for(int i1;in;i) cina[i],dp[i]1;for(int i2;in;i){for(int j1;ji;j){if(a[j]a[i])dp[i]max(dp[i],dp[j]1);}}coutdp[n]endl;最长公共子序列 {cins1s2;len1s1.length(),len2s2.length();s1 s1,s2 s2;for(int i1;ilen1;i){for(int j1;jlen2;j){if(s1[i]s2[j]) dp[i][j]dp[i-1][j-1]1,s[i][j]1;else{if(dp[i-1][j]dp[i][j-1]){dp[i][j]dp[i-1][j];s[i][j]2;//上面}elsedp[i][j]dp[i][j-1];s[i][j]3;}}}coutdp[len1][len2]endl;return 0; }贪心算法 适合于贪心算法求解的问题具有贪心选择性质、最优子结构性质 贪心算法可以获取到问题的局部最优解不一定能获取到全局最优解 掌握使用贪心算法解决活动安排问题、背包问题、最优装载问题件数最多、删数问题 活动安排问题 按照结束时间进行排序 int n,p[N]; struct node {int st,ed,id; }a[N]; bool cmp(node a,node b) {return a.edb.ed; } signed main() {cinn;for(int i1;in;i) {cina[i].sta[i].ed;a[i].idi;}sort(a1,an1,cmp);p[1]1;int ans1,tmpa[1].ed;for(int i2;in;i){if(a[i].sttmp){tmpa[i].ed;ans;p[i]1;}}coutansendl;return 0; }背包问题 int n,p[N]; struct node {int w,v;double d; }a[N]; bool cmp(node a,node b) {return a.db.d; } signed main() {cinnc;for(int i1;in;i){cina[i].wa[i].v;a[i].da[i].v/a[i].w;}sort(a1,an1,cmp);int i1;double ans0;while(ina[i].wc){c-a[i].w;ansa[i].v;i;}if(in) ansc*a[i].d;coutansendl;return 0; }最优装载问题件数最多 重量轻的先装找找重量从小到大进行排序 删数问题 找到最近下降点 #include bits/stdc.h #define int long longusing namespace std; const int N 7e6100; const int mod 998244353; int n,k; string s;signed main() {cinsk;ns.length();if(kn)cout0endl;else{while(k){int i;for(i0;is.length()s[i]s[i1];i);s.erase(i,1);k--;}while(s.size()1s[0]0)s.erase(0,1);coutsendl;}return 0; } /**/ 第六章 子集树实现素数环 const int N 1e65; int n,a[N],vis[N],ans; int check(int a,int b) {int sumab;for(int i2;i*isum;i)if(sum%20)return 0;return 1; } void dfs(int x) {if(xn1){if(check(a[1],a[n]))ans;return;}for(int i1;in;i){if(!vis[i]check(a[x-1],i)){vis[i]1;a[x]i;dfs(x1);vis[i]0;}} } void solve() {cinn;dfs(1);coutansendl; } signed main() {solve();return 0; } 排列树实现素数环 int n,a[N],vis[N],ans; int check(int a,int b) {int sumab;for(int i2;i*isum;i)if(sum%20)return 0;return 1; } void dfs(int x) {if(xn1){if(check(a[1],a[n]))ans;return;}for(int ix;in;i){swap(a[x],a[i]);if(check(a[x-1],a[x]))dfs(x1);swap(a[x],a[i]);} } void solve() {cinn;for(int i1;in;i) a[i]i;dfs(1);coutansendl; }装载问题 #include bits/stdc.h #define endl \n #define int long longusing namespace std; const int N 1e65; const int inf1e18; int n,c,a[N],b[N],ans[N],sum,bestcw; void dfs(int x,int cw) {if(xn1){if(cwbestcw){for(int i1;in;i)ans[i]b[i];bestcwcw;}return;}sum-a[x];if(cwa[x]c){b[x]1;cwa[x];dfs(x1,cw);cw-a[x];}if(cwsumbestcw){b[x]0;dfs(x1,cw);}suma[x]; } void solve() {cinnc;for(int i1;in;i) cina[i],suma[i];dfs(1,0);coutbestcwendl;for(int i1;in;i)coutans[i] ;coutendl; } signed main() {solve();return 0; } 01背包问题回溯贪心 剪枝规则 约束函数当选取一个物品时累计的中部不可大于背包容量C 限界函数根据物品单位重量的价值进行降序排列越靠近树根位置剪掉分枝越多从而加快搜索bound(i)定义为当前选取物品价值的和加上剩余物品的价值和根据贪心的性质剩余物品不会比贪心选取的物品方案更优若bound(i)此时最优价值则进行剪枝。 int n,c,cw,cv,bestv; struct node {int w,v;double d; }a[N]; bool cmp(node a,node b) {return a.db.d; } int check(int x) {int vcv;int tmpc-cw;while(xna[x].wtmp){tmp-a[x].w;va[x].v;x;}if(xn)v1.0*tmp*a[x].w;return v; } void dfs(int x) {if(xn1){bestvcv;return;}if(cwa[x].wc){cwa[x].w;cva[x].v;dfs(x1);cw-a[x].w;cv-a[x].v;}if(check(x1)bestv)dfs(x1); } signed main() {cincn;for(int i1;in;i){cina[i].wa[i].v;a[i].da[i].v*1.0/a[i].w;}sort(a1,an1,cmp);dfs(1);coutbestvendl;return 0; } /* 50 3 10 60 30 120 20 100 */ n皇后问题 int n,m,a[105][105],p[N],ans; int check(int x) {for(int i1;ix;i)if(abs(x-i)abs(p[x]-p[i])||(p[i]p[x]))return 0;return 1; } void dfs(int x) {if(xn1){ans;for(int i1;in;i)coutp[i] ;coutendl;return;}for(int i1;in;i){p[x]i;if(check(x))dfs(x1);} } signed main() {cinn;dfs(1);if(ans)coutansendl;elsecoutNo Solution!endl;return 0; }
http://www.w-s-a.com/news/973290/

相关文章:

  • 网站建设和维护工作内容网站的空间与域名
  • 济南做门户网站开发公司网页发布的步骤
  • 江苏省交通厅门户网站建设管理办法做的网站怎么让百度收录
  • 关于怎么做网站网站site的收录数量要多远索引量
  • 传世网站建设阳光创信-网站建设首选品牌
  • 周口建设网站中国装修公司十大排名
  • wordpress自助发卡青浦网站优化
  • 南京建设银行公积金查询网站wordpress加载插件下载
  • 做网站怎么那么难网站的建设与管理的心得体会
  • 黄冈网站建设哪家快些网站规划与建设评分标准
  • 建站平台 绑定域名怎么在手机上做网站
  • 做电影网站违法吗莱芜 网站
  • 品牌咨询公司泉州seo不到首页不扣费
  • 做网站做一个什么主题的怎样搭建一个企业网站
  • 做设计的有什么网站桂林论坛网站有哪些
  • 做的网站不能放视频开发公司春联
  • 重庆装修房子可以提取公积金吗长沙优化官网公司
  • 做外贸的网站都有哪些带后台的html网站源码
  • 厦门百度快速优化排名手机系统优化工具
  • 宁波网站制作公司推荐公司建站多少钱
  • 网络营销薪酬公司温州网站优化定制
  • 橙色在网站中的应用淘宝客绑定网站备案号
  • 杭州视频网站建设成都设计院排行
  • 慈溪建设网站盘丝洞app破解无限盘币
  • 关于服装店网站建设的策划方案seo关键词优化软件官网
  • 丰台高端网站建设土巴兔装修贵吗
  • 宽屏网站mysqli pdo wordpress
  • 2022年没封网站直接进入赣州网吧
  • 河南省建设厅证件证件查询网站硬件开发是什么意思
  • tp5做企业网站宿迁房产网租房信息