ACM第一次练习—1000A
2016-03-17 08:25
204 查看
题目编号:A。
题意:在400个两两相对房间之间搬桌子,走廊一次只能通过一张桌子,把桌子从一个房间移到另一个房间需要10分钟。输入T表示搬桌子的组数,输入N表示每一组要搬的桌子数,接下来的N行输入桌子搬出的房间和搬入的房间。输出每一组搬桌子的最短时间。
思路形成过程:因为走廊不可以同时搬运两张桌子,可以将每两个相对的门之间的走廊设为一个参数,统计每组桌子搬完后走廊的占用次数,最大占用次数乘10即为所求时间。
感想:这里需要巧妙地将问题转化为统计走廊占用次数的的问题,而我一开始的想法是:将输入的各组数据按要到达的房间号排序(sort函数),在对排序好的数据进行遍历;每一遍找出一组可以同时搬用的桌子,直到所有的桌子被搬完,用组数乘以10即为所求时间,但最终没有实现,停在了怎么实现进行多次遍历。
代码:
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int i, j,T,S,B=0;
int move[200],max[200];
int N;
int form, to;
cin >> T;
S = T;
while (2)
{
for (i = 0; i < 200; i++)
{
move[i] = 0;
}
scanf("%d", &N);
for (i = 0; i < N; i++)
{
scanf("%d%d", &form, &to);
form = (form - 1) / 2;
to = (to - 1) / 2;
if (form > to)
{
int temp = form;
form = to;
to = temp;
}
for (j = (form - 1); j < to; j++)
{
move[j]++;
}
}
max[B] = 0;
for (i = 0; i < 200; i++)
{
if (max[B] < move[i])
max[B] = move[i];
}
B++;
if (T == 1)
break;
T--;
}
for (i = 0; i < S; i++)
cout << (max[i]*10 )<< endl;
return 0;
}
题意:在400个两两相对房间之间搬桌子,走廊一次只能通过一张桌子,把桌子从一个房间移到另一个房间需要10分钟。输入T表示搬桌子的组数,输入N表示每一组要搬的桌子数,接下来的N行输入桌子搬出的房间和搬入的房间。输出每一组搬桌子的最短时间。
思路形成过程:因为走廊不可以同时搬运两张桌子,可以将每两个相对的门之间的走廊设为一个参数,统计每组桌子搬完后走廊的占用次数,最大占用次数乘10即为所求时间。
感想:这里需要巧妙地将问题转化为统计走廊占用次数的的问题,而我一开始的想法是:将输入的各组数据按要到达的房间号排序(sort函数),在对排序好的数据进行遍历;每一遍找出一组可以同时搬用的桌子,直到所有的桌子被搬完,用组数乘以10即为所求时间,但最终没有实现,停在了怎么实现进行多次遍历。
代码:
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int i, j,T,S,B=0;
int move[200],max[200];
int N;
int form, to;
cin >> T;
S = T;
while (2)
{
for (i = 0; i < 200; i++)
{
move[i] = 0;
}
scanf("%d", &N);
for (i = 0; i < N; i++)
{
scanf("%d%d", &form, &to);
form = (form - 1) / 2;
to = (to - 1) / 2;
if (form > to)
{
int temp = form;
form = to;
to = temp;
}
for (j = (form - 1); j < to; j++)
{
move[j]++;
}
}
max[B] = 0;
for (i = 0; i < 200; i++)
{
if (max[B] < move[i])
max[B] = move[i];
}
B++;
if (T == 1)
break;
T--;
}
for (i = 0; i < S; i++)
cout << (max[i]*10 )<< endl;
return 0;
}
相关文章推荐
- 音乐图片视频查询
- 树莓派 (为学生计算机编程教育设计的一种卡片式电脑)
- 项目4:三色球问题
- 第三周项目4:穷举法解决组合问题(6)猜数字
- UTF-8 and Unicode FAQ for Unix/Linux
- 多线程中使用libevent
- [bzoj2653]middle
- 第三周项目三-输出星号图
- hdu3267 Graph Game 完全极大极小搜索+连通性剪枝+缩点
- 项目2:本月有几天?
- HTTP 请求方式: GET和POST的比较
- 第三周项目4——(3)年龄几何
- fullpage.js 结合固定导航栏—实现定位导航栏
- 基于14.04 ubuntu 配置 eclipse 为opencv 第二篇
- 深入浅出Spring之第三章AOP
- Android中fragment_main.xml文件里的组件获取的问题
- 第四周上机实践项目 项目3--随机函数应用游戏(2)小学算数能力测试系统
- 快速查询图片及参数的意义
- keil5的安装+工程的创建
- Activity生命周期