FatMouse's Speed
来源:互联网 发布:神印王座坐骑进阶数据 编辑:程序博客网 时间:2024/05/18 23:12
题目要求:http://acm.hdu.edu.cn/showproblem.php?pid=1160
思路: 运用结构体,对两个分别排序
#include <iostream>#include<string.h>using namespace std;//int a[10] = {6,5,4,2,9,1,5,12,3,2};int f[1002];int l[1002];//表示路径。int e = 0;struct M{ int w,s,l;}mouse[1002];void printl(int e,M a[])//用于打印路径{ if(l[e] != -1) printl(l[e],a); cout<<a[e].l+1<<endl;} int LC(M a[],int N) //找最长递减子序列。 { int i; memset(l,-1,sizeof(l)); //memset 只能初始化0 和-1. memset(f,0,sizeof(f)); f[0] = 1; int max = f[0]; for(i = 1; i<N; i++) { for(int j = 0; j<i; j++) if(a[i].s < a[j].s && f[i]<f[j])//a[j]<a[i]:递增子序列;a[j]<=a[i]不减子序列 { //a[j]>a[i]:递减子序列;a[j]>=a[i]不增子序列 f[i] = f[j]; l[i] = j; } f[i] ++; //将自身加上。 if(max<f[i]) { max = f[i]; e = i; //现在路径的end 位置。 } } cout<<max<<endl; printl(e,a); return 0; }void quicksort(M a[],int n){ for(int i = 1; i<= n-1; i++) { int k = i-1; for(int j = i; j<n; j++) if(a[j].w<a[k].w) k = j; if(k != (i-1)) { swap(a[i-1].w,a[k].w); swap(a[i-1].s,a[k].s); swap(a[i-1].l,a[k].l); } }}int main(){ int i = 0; while(cin>>mouse[i].w >>mouse[i].s) { mouse[i].l = i; i++; } quicksort(mouse,i); LC(mouse,i); return 0;}
- FatMouse's Speed
- zoj_1108 Fatmouse's Speed
- 【DP】FatMouse's Speed
- FatMouse's Speed(dp)
- FatMouse's Speed
- 1160FatMouse's Speed
- FatMouse's Speed
- HDU1160--FatMouse's Speed
- FatMouse's Speed
- ZOJ1108 FatMouse's Speed
- FatMouse's Speed
- hdu FatMouse's Speed
- HDU1160 FatMouse's Speed
- HDU1160 FatMouse's Speed
- FatMouse's Speed
- FatMouse's Speed
- hdu1160,FatMouse's Speed
- HDU1160--FatMouse's Speed
- Java中ThreadLocal类的作用以及实现原理-----hibernate的连接池就是用ThreadLocal实现的
- UVa 10415-Eb Alto Saxophone Player
- Android中对Log日志文件的分析
- java中的IO整理
- 日志分析软件 Splunk
- FatMouse's Speed
- 继承虚函数
- Oracle的Metalink是什么?MOS又是什么?
- Android基础篇之Activity跳转
- 2013国内IT行业薪资对照表【技术岗】(转载)
- 开启Tomcat远程调试
- HR必考:人力资源含金量最高的九张证书
- http和www
- DHCP 協定