传说中的车 uva 11134
来源:互联网 发布:淘宝店冻结资金 编辑:程序博客网 时间:2024/06/07 07:30
题目:
搜这个题的人 基本上都知道题 所以 题目大意略
思路:
在区间选择上的贪心算法
纵观整个题目 我们发现 当行的车确定后 它在列上是可以自由移动的,反之 易可 那么我们就可以得出一个结论:行和列是不相关的
所以 我们可以分开来求 先行后列 或 先列后行
怎么求?
我们可以先将右端点从小往大排序 如果右端点一样 就将左端点从小往大排,总之就是先满足 小区间 因为大区间包含小区间 所以无论 小区间怎么选 大区间总能选到
下方代码
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> using namespace std; const int INF=5100; int n; struct Node { int l; int r; int id; } x[INF],y[INF]; int ansx[INF],ansy[INF]; bool f[INF]; bool c; int cmp (Node a,Node b) { if(a.r==b.r) return a.l<b.l; return a.r<b.r; } int solve (Node a[INF],int ans[INF]) { memset(f,true,sizeof(f)); sort(a+1,a+1+n,cmp);//右端点从小到大排序 /*for(int i=1;i<=n;i++) { cout<<a[i].l<<" "<<a[i].r<<endl; } cout<<endl;*/ int i; for(i=1;i<=n;i++) { int j; c=false; for(j=a[i].l;j<=a[i].r;j++) { if(f[j]) { f[j]=false; ans[a[i].id]=j; c=true; break; } } if(!c) return false; } return true; } int main () { cin>>n; while(n) { for(int i=1;i<=n;i++) { cin>>x[i].l>>y[i].l>>x[i].r>>y[i].r; x[i].id=y[i].id=i; } if(solve(x,ansx)&&solve(y,ansy)) { for(int i=1;i<=n;i++) { cout<<ansx[i]<<" "<<ansy[i]<<endl; } } else cout<<"IMPOSSIBLE"<<endl; cin>>n; } return 0; }
end
阅读全文
0 0
- UVA - 11134 - 传说中的车
- 传说中的车 uva 11134
- 例题8-4 传说中的车 UVa 11134
- 传说中的车(Fabled Rooks,UVa 11134)
- uva 11134 传说中的车 从简单情形入手
- Uva 11134 传说中的车 贪心的思维
- [UVa 11134] 传说中的车(Fabled Rooks)
- 例题8-4 传说中的车(Fabled Rooks, UVa 11134)
- UVa 传说中的车(白书P11134_放棋子+set)
- 传说中的车 UVa11134
- 传说中的车uva11134
- UVa 11132 例题8-4 传说中的车(Fabled Rooks)
- UVA11134传说中的车(放棋子)
- 例题8-4 传说中的车 UVa11134
- UVA 10245 The Closest Pair Problem(传说中的分治法)
- 传说中的"盛唐"
- 传说中的DELPHI9--DiamondBack
- 传说中的软件工程
- 西电一键评教助手
- jsp 的页面跳转
- JAVA中虚方法、抽象方法、实例方法、静态方法的辨别
- 问题AttributeError: ‘module’ object has no attribute ‘sub’
- mybetis 调用储存过程 和 动态sql
- 传说中的车 uva 11134
- Android屏幕适配(不同的屏幕分辨率和尺寸)
- 数据库相关优化方案
- PHP正则匹配中文
- JS读取XML文件形成树结构
- jqueryMobile基础
- 分割线----博客中图片显示问题
- 解决android opengl glReadPixels 慢的问题一
- android studio编程遇见的难题及解决办法