Codeforce 4D - Mysterious Present
来源:互联网 发布:2015网络作家收入 编辑:程序博客网 时间:2024/05/16 08:11
原题:
题目意思:
就是说,给你一个卡片的长度和宽度,然后再给你许多信封的大小,包括长度和宽度,然后信封的长度和宽度都要大于卡片的长度和宽度,然后就是寄出每个信封时,信封的大小也是要逐步递增的,然后就是要你考虑,最多能寄出多少封信
题目分析:
DP题,然后就是建立一个数组,来存储每个信封它之后能有多少个信封被容纳,也就是小于该信封,包括长宽,但是要大于卡片的大小,然后再输出这个序列就可以了
代码:
#include<iostream>#include<algorithm>#include<cstring>using namespace std;struct Envelope{int height;int width;};Envelope enList[5010];int result[5010];int ppp = 0;int resultIndex[5010];int envelopeNum = 0;int cardHeight = 0;int cardWidth = 0;int maxNum = 0;int maxIndex = 0;int getP(int m) {if(result[m]>0 || result[m] == -1) return result[m];if(enList[m].height>cardHeight && enList[m].width>cardWidth) result[m] = 1;else return -1;for (int i=1;i<=envelopeNum;i++) {if(i != m && enList[m].height>enList[i].height && enList[m].width>enList[i].width) {int op = getP(i) + 1;result[m] = max(result[m],op);}}if(maxNum<result[m]) {maxNum = result[m];maxIndex = m;}return result[m];}bool large(Envelope p1,Envelope p2) {if(p1.height>p2.height && p1.width>p2.width) return true;return false;}void print_s(int index){resultIndex[--ppp] = index;for (int i=1;i<=envelopeNum;i++) {if(result[index] == result[i]+1 && large(enList[index],enList[i])) print_s(i);}}int main(){while(cin>>envelopeNum>>cardWidth>>cardHeight) {memset(result,0,sizeof(result));memset(resultIndex,0,sizeof(resultIndex));maxNum = 0;maxIndex = 0;for (int i=1;i<=envelopeNum;i++) {cin>>enList[i].width>>enList[i].height;}for (int i=1;i<=envelopeNum;i++) if(result[i] == 0) getP(i);//cout<<"------ 1 -------"<<endl;//for (int i=1;i<=envelopeNum;i++) cout<<result[i]<<" ";//cout<<"------ 1 -------"<<endl;cout<<maxNum<<endl;if(!maxNum) continue;//cout<<maxIndex<<endl;ppp = maxNum;print_s(maxIndex);for (int i=0;i<maxNum;i++) {if(i==0) cout<<resultIndex[0];else cout<<" "<<resultIndex[i];}cout<<endl;}return 0;}
疑惑:
好的吧,其实代码没有AC,死在了第13组测试数据上了,我也不知道为什么,算法的应该是没错的,就是不知道细节是哪里错了,真是坑,求大神看到,帮忙分析下
0 0
- Codeforce 4D - Mysterious Present
- codeforce 4D Mysterious Present 简单思路 动态规划
- CF 4D Mysterious Present
- CF 4D Mysterious Present
- CF 4 D. 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
- CF 4D Mysterious Present
- Codeforces 4D Mysterious Present
- codeforces 4D D. Mysterious Present(dp)
- codeforces 4D Mysterious Present -- 动态规划
- CF#(4D)Mysterious Present(DP)
- 视频转码中遇到的坑
- Ajax相关知识(续)
- DATAGRIDVIEW 合并表头
- js基本类型、对象的各自比较
- 2-9 数据统计
- Codeforce 4D - Mysterious Present
- 【LINUX】linux 主机安全等级配置
- UVa:1267 Network
- Unique Binary Search Trees
- iOS UIBezierPath类 介绍
- TCP/IP详解学习笔记 这位仁兄写得太好了
- codeforces 400B - Inna and New Matrix of Candies
- Java虚拟机内存管理(一)
- @@:垃圾回收机制详细