CF 4D Mysterious Present
来源:互联网 发布:澳洲人工智能专业 编辑:程序博客网 时间:2024/06/05 09:34
dfs题!!用Dp!可是就这么简单的思路,我偏偏绕远路,用LCS来DP求,被无情的MLE!
#include<iostream>#include<cstring>using namespace std;int dfs(int);int w[5001],h[5001],d[5001],p[5001],n;main(){cin>>n;for(int i=0;i<=n;i++)cin>>w[i]>>h[i];memset(d,0,sizeof(d));int k=dfs(0);cout<<k<<"\n";int i=0;while(p[i]){cout<<p[i]<<" ";i=p[i];}}int dfs(int x){if(d[x])return d[x];for(int i=0;i<=n;i++){if(w[i]>w[x] && h[i]>h[x]){int t=dfs(i);if(d[x]<t+1){d[x]=t+1;p[x]=i;}}}return d[x];}
我的MLE代码~
#include <iostream>#include <algorithm>#include <stdio.h>#include <string.h>using namespace std;struct Pair{ int v,id;}w[5010],h[5010];bool cmp(Pair a,Pair b){ return a.v < b.v;}int dp[5010][5010],ww[5010],hh[5010],r[5010][5010],cot[5010],k = 0;bool a[1000010];void print(int i,int j){ if(i == 0||j == 0) return; if(r[i][j] == 3) {print(i-1,j-1);cot[k++] = ww[i];} else if(r[i][j] == 2) print(i-1,j); else print(i,j-1);}int main(){ //freopen("a.txt","r",stdin); int n,i,ans = 0,ii,jj,j,k1,k2; cin>>n>>w[0].v>>h[0].v; //int s[5010]; memset(dp,0,sizeof(dp)); w[0].id = 0;h[0].id = 0; for(i = 1;i <= n;i ++) { cin>>w[i].v >>h[i].v; w[i].id = h[i].id = i; //cout<<"dsa"<<endl; } sort(w,w + n+1,cmp); sort(h,h + n+1,cmp); k1 = 0;k2 = 0; memset(a,0,sizeof(a)); //cout<<"dsa"<<endl; for(i = 0;i <= n;i ++) if(w[i].id == 0) break; while(i <= n) {if(a[w[i].v]==0){ww[k1++] = w[i].id;a[w[i].v] = 1;}i ++;} //cout<<k1<<k2<<endl; memset(a,0,sizeof(a)); for(i = 0;i <= n;i ++) if(h[i].id == 0) break; while(i <= n) {if(a[h[i].v]==0){hh[k2++] = h[i].id;a[h[i].v] = 1;}i ++;} //cout<<k1<<k2<<endl; for(i = 0;i < 5010;i ++) {dp[i][0] = 0;dp[0][i] = 0;} for(i = 1;i < k1;i ++) { for(j = 1;j < k2;j ++) { if(ww[i] == hh[j]) {dp[i][j] = dp[i-1][j-1]+1;r[i][j] = 3;} else if(dp[i-1][j] >= dp[i][j-1]) {dp[i][j] = dp[i-1][j];r[i][j] = 2;} else {dp[i][j] = dp[i][j-1];r[i][j] = 1;} } } //cout<<k1<<k2<<endl; cout<<dp[k1-1][k2-1]<<endl; print(k1-1,k2-1); if(k > 0) cout<<cot[0]; for(i = 1;i < k;i ++) cout<<" "<<cot[i];}
- CF 4D Mysterious Present
- CF 4D Mysterious Present
- CF 4 D. Mysterious Present
- CF 4D Mysterious Present
- CF#(4D)Mysterious Present(DP)
- CF #4 D - Mysterious Present 最近怎么那么弱
- codeforces 4D. Mysterious Present
- Codeforce 4D - Mysterious Present
- codeforces 4D Mysterious Present
- Codeforces 4D. Mysterious Present
- codeforces 4D. Mysterious Present
- CodeForces 4D. Mysterious Present
- codeforces 4D Mysterious Present
- CodeForces 4D-Mysterious Present
- Codeforces#4D Mysterious Present
- Codeforces 4D Mysterious Present
- codeforces 4D D. Mysterious Present(dp)
- codeforces 4D Mysterious Present -- 动态规划
- Eclipse常用快捷键(备忘)
- 在ICCAVR中通过使用库函数来避免直接看到敏感算法源码
- 并行计算笔记
- ubuntu下安装显卡GeForce GT440驱动
- Users not mapped!!!
- CF 4D Mysterious Present
- 来看看不同语言程序员的自我优越感
- 虚拟机ubuntu和主机xp间共享文件
- fzu 2037 卡内存的坑爹题
- VC6复制粘贴中文内容出现乱码的解决办法
- 读取文件夹下所有文件方法及CFileFind类基本用法
- jquery中实现显示、隐藏、淡入淡出
- win32显示位图
- TextView在xml里配置onclick事件