HDU 3262 Seat taking up is tough
来源:互联网 发布:数据恢复大师靠谱吗 编辑:程序博客网 时间:2024/06/06 16:35
这题其实挺简单,可是自己就是被坑了很长时间,究其原因,脑袋短路了。本来排完序之后,应该把结果按照未排序之前的顺序输出,结果我就直接输出了,而题目给的例子正好是按顺序给的,输出没有问题,哎,果然够坑。以后再也不能相信题目给的例子了。
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<stack>#include<queue>using namespace std;int seat[31][31];bool visited[31][31];int m,n,k,feeling,ans_x,ans_y;struct come{ int hh,mm,person; int id;//之前就是没有这个,总是WA。}data[52];struct result{ int x,y;}ans[52];bool cmp(come a,come b){ if(a.hh==b.hh) return a.mm<b.mm; return a.hh<b.hh;}bool judge(int x,int y,int id){ int k=data[id].person+y; if(k-1>m) return false; for(int i=y;i<k;i++) if(visited[x][i]) return false; return true;}void set_true(int x,int y,int id){ int k=data[id].person+y; for(int i=y;i<k;i++) visited[x][i]=true;}void dfs(int id){ for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(visited[i][j]) continue; if(judge(i,j,id)) if(feeling<seat[i][j]) feeling=seat[i][j],ans_x=i,ans_y=j; if((m-j+1)<data[id].person) break; } }}void get_max(){ int t=-100000000; ans_x=0,ans_y=0; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(visited[i][j]==false) if(t<seat[i][j]) t=seat[i][j],ans_x=i,ans_y=j;}int main(){ while(scanf("%d%d%d",&n,&m,&k)) { if(n==0&&m==0&&k==0) break; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&seat[i][j]); for(int i=1;i<=k;i++) { scanf("%d:%d %d",&data[i].hh,&data[i].mm,&data[i].person); data[i].id=i; } sort(data+1,data+k+1,cmp); memset(visited,false,sizeof(visited)); for(int i=1;i<=k;i++) { feeling=-100000000,ans_x=0,ans_y=0; dfs(i); if(ans_x!=0) { ans[data[i].id].x=ans_x,ans[data[i].id].y=ans_y; set_true(ans_x,ans_y,i); } else { get_max(); if(ans_x==0) ans[data[i].id].x=-1; else { ans[data[i].id].x=ans_x,ans[data[i].id].y=ans_y; visited[ans_x][ans_y]=true; } } } for(int i=1;i<=k;i++) { if(ans[i].x!=-1) printf("%d %d\n",ans[i].x,ans[i].y); else printf("-1\n"); } } return 0;}
0 0
- HDU 3262 Seat taking up is tough
- HDU 3262 Seat taking up is tough
- HDU 3262 Seat taking up is tough (模拟搜索)
- hdu 3262 Seat taking up is tough(暴力)
- POJ 3829 Seat taking up is tough
- life is tough
- HDU 5163 Taking Bus
- HDU 5163 Taking Bus
- HDU 5163 Taking Bus
- hdu 5163 Taking Bus 水题
- life is tough!最可怕的是牛人还那么努力!
- How tough life is, how strong you should be
- hdu 3609 Up-up
- hdu 5163 Taking Bus (BestCoder Round #27)
- hdu 5163 Taking Bus(模拟)
- 杭电 hdu 5163 Taking Bus【模拟】
- hdu 5163 Taking Bus(模拟)
- This Russian Software Is Taking Over the Internet
- cocos2dx 网络编程(CCHttpRequest和CURL两个方式)
- 利用itextsharp导出pdf
- oracle 两个时间函数的探究
- Android 补间动画之xml动画设置
- 如何彻底删除office2007
- HDU 3262 Seat taking up is tough
- 黑马程序员——Java多线程
- C# windows API
- Smart Cover更加智能 或为iPad提供新模式
- IM聊天进阶(二)IM>openfire>mina>nio>socket简单点对点聊天
- count and say
- nagios报错NRPE: Command 'check_heartbeat' not defined
- Windows下生成dump文件方法
- keepalived实现socket server 热机备份