A 走廊两边搬桌子
来源:互联网 发布:mac安装xampp 编辑:程序博客网 时间:2024/06/10 06:25
1.题目编号
2.简单题意
3.解题思路形成过程
4.感想
5AC代码
1. 1000 A
2.
题意:公司有400个房间,单号对双号对门,中间有一条走廊,现在要搬东西,给出要搬的次数,还有每次搬动的房间号,每次搬动需要10分钟,搬动过程中的那段走廊不能被使用,求最大搬动时长。
3. 建立结构体 里面是{ 开始房间 结束房间 被处理了么};
1. 按照结束房间排序
2. 选择 如果订单2的开始房间 大于 订单的1的结束房间 那么在这10min能共存。
4. 用模拟搬运的算法过了
但是纯贪心的算法一直wa。。。样例过了而已 不知道是什么情况
5. wa的代码:
#include <cstdio>
#include<iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<numeric>
#include<math.h>
#include<string.h>
#include<map>
#include<set>
#include<vector>
#include <fstream>
using namespace std;
void chuli();
struct luxian
{
int q; //起
int m; //末
int c; //订单被处理了么
};
bool cmp(const luxian &a,const luxian &b)
{
if(a.m<b.m) return true;
else if(a.m==b.m)return a.q<b.q;
return false;
};
int main()
{
int n;
cin>>n;
for(int i=1;i<=3;i++)
{
chuli(); //处理
}
}
void chuli()
{
int g;
cin>>g;
luxian z;
vector<luxian> v;
for(int i=1;i<=g;i++)
{
cin>>z.q;
cin>>z.m;
z.c=0;
if(z.q > z.m)
swap(z.q, z.m);
v.push_back(z);
}
sort(v.begin(),v.end(),cmp); //按照末房间排列起来
// int a[10000];
// memset(a,0,sizeof(a));
int time=0;
int final;
int sum=0;
for(int i=0;i<g;i++)
{
if(v[i].c==1) continue;
time += 10;
v[i].c=1; //起个头
if(v[i].m %2==0) final=v[i].m;
else final=v[i].m+1;
for(int j=i+1;j<g;j++)
{
if(v[j].q>final) v[j].c=1;
if(v[j].m %2==0) final=v[j].m;
else final=v[j].m+1;
}
//test 满了么
for(int i=1;i<g;i++)
{
if(v[i].c==0) break;
else sum++;
if(sum==g) goto shuchu;
}
}
shuchu:cout<<time<<endl;
}
- A 走廊两边搬桌子
- HDU-1050 走廊搬桌子
- 课程练习一Problem A 搬桌子
- 搬桌子
- 搬桌子
- 搬桌子
- 贪心算法—移动办公室桌子,占用走廊问题(1000,problem A)
- 搬桌子 tzc
- 台州Acm-搬桌子
- 台州ACM-搬桌子
- 周赛一 1005 搬桌子
- 1000搬桌子
- promble 1000 搬桌子
- bnu1210 搬桌子难题 C语言版
- poj 1083 搬桌子(贪心)
- POJ 1083 Moving Tables(搬桌子)
- POJ 1083 Moving Tables 搬桌子
- SDAU 贪心专题 00 搬桌子
- HDU1166-敌兵布阵
- hdu1205(基础)
- 端口被占用解决
- 链表中环的入口结点
- 高精度乘高精度FFT优化算法
- A 走廊两边搬桌子
- 关于单片机的学习经验
- [CodeForces] 510 C Fox And Names [拓扑排序]
- 一步一步教你实现Periscope点赞效果
- Java到底是值传递还是引用传递
- 构建乘积数组
- CSS3布局相关样式学习
- Java transient关键字使用小记
- 如何诊断和解决high version count