zoukankan
html css js c++ java
hdu1160最长递增子序列
//1160 #include <iostream> #include <algorithm> using namespace std; struct mouse { int id; int weight; int speed; int pos; int pre; }s[10005]; bool cmp(mouse a,mouse b) { return(a.weight<b.weight||(a.weight==b.weight&&a.speed<b.speed)); } int main() { int count=0; while(scanf("%d %d",&s[count].weight,&s[count].speed)!=EOF) { s[count].id=count+1; count++; } sort(s,s+count,cmp); /*********************************************************************************/ //最长递增子序列部分 int ans[10005]={0}; s[0].pos=1; int i,j,max=1,maxi=0; //记录每个点的序列位置 for(i=1;i<count;i++) { j=max; while(j) { if(s[i].weight>s[ans[j]].weight&&s[i].speed<s[ans[j]].speed) { s[i].pos=j+1; ans[j+1]=i; s[i].pre=ans[j]; break; } j--; } //第一个点 if(j==0) { s[i].pos=1; ans[1]=i; } //目前为止最长的点 if(s[i].pos>max) { max=s[i].pos; maxi=i; } } /* for(int cc=0;cc<count;cc++) cout<<cc<<' '<<s[cc].id<<' '<<s[cc].weight<<' '<<s[cc].speed<<' '<<s[cc].pos<<' '<<s[cc].pre<<endl; */ cout<<max<<endl; //输出最长序列 int temp[10005]; for(i=1;i<=max;i++) { temp[i]=s[maxi].id; maxi=s[maxi].pre; } for(i=max;i>0;i--) cout<<temp[i]<<endl; /*********************************************************************************/ return 0; }
查看全文
相关阅读:
写在第一篇
基于EF(Entity Framework)的分层系统中如何传递查询的结果集
发布一个截图小工具,显示器比较小的CODER可以进来看看。。
【HDU】3571 Ndimensional Sphere
【POJ】2065 SETI
【HDU】3359 Kind of a Blur
【SGU】275 To xor or not to xor
【HDU】2449 Gauss Elimination
【HDU】3976 Electric resistance
【POJ】2947 Widget Factory
原文地址:https://www.cnblogs.com/windmissing/p/2559896.html
最新文章
【杂记】Dreamweaver 自定义代码提示扩展
使用au3脚本编写FTP上创建文件夹
费了九牛二虎之力才搞定的大写数字转换的代码.
取得程序设定的常用代码.
修理MM电脑的过程也是检查MM人品的过程
整理出来的得到汉字拼音的代码.
工欲善其事,必先利其器
MongoDB结合Flexgrid的简单数据呈现
(翻译)C#中的SOLID原则 – 开放/封闭原则
(翻译)C#中的SOLID原则 – 单一责任原则
热门文章
IP地址与UInt之间不得不说的故事
OpenFlashChart的图片导出
如花美眷,也敌不过似水流年
jquery几种ajax方法
获取默认错误页面HTML的尝试(失败)
Linq初体验——Order By 通过属性名动态排序
JS初体验——GridView中的数据验证
EF(Entity Framework)到底在什么时候向数据库递交了查询——SQl中的事件探查器
基于ASP.NET AJAX 的级联菜单
动态添加控件初体验——GridView
Copyright © 2011-2022 走看看