ACM 水题一道

用C/C++我的算法超时了TimeLimit:1000ms,MemoryLimit:32768KBProblemdescription寒假将至,老师们想到海南去度过假期。... 用C/C++ 我的算法超时了 Time Limit: 1000ms, Memory Limit:32768KB
Problem description
寒假将至,老师们想到海南去度过假期。出发前,需要先预定旅馆。他们从网上下载了旅馆的资料,希望选到称心的旅馆M——既便宜,离海边又近:
1. 如果有旅馆比M还近海边,那么就一定比M贵。
2。 如果有旅馆比M还便宜,那么就一定比M离海边远。
Input
有多组测试数据,每组测试数据第一行是一个整数N(1 ≤ N ≤ 10000),表示旅馆的数目。接下来N行是旅馆的资料,每行两个整数D和C(1 ≤ D, C ≤ 10000). D代表旅馆到海边的距离, C代表旅馆的房费。你可以肯定没有两家旅馆有(都)相同的D和C.测试数据 N = 0 表示输入结束,不需要处理。
Output
对于每组测试数据,输出一行,包含一个整数,表示可选的称心的旅馆的数目。
Sample Input
5
300 100
100 300
400 200
200 400
100 500
0

Sample Output
2

我的思路:从第一个旅馆开始,如果找到比它离海边近且便宜的,该旅馆不是称心的,找不到则是的。
代码:
#include<iostream>
using namespace std;
const int M=10000;
int main()
{
int n,sum,d[M],c[M],i,j;
while(cin>>n&&n)
{
for(i=0;i<n;i++)
cin>>d[i]>>c[i];
sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((d[j]<=d[i]&&c[j]<c[i])||(d[j]<d[i]&&c[j]<=c[i]))
break;
}
if(j==n)
sum++;
}
cout<<sum<<endl;
}
return 0;
}

这算法超时了
展开
 我来答
wandi1986
2013-03-05 · TA获得超过3007个赞
知道大有可为答主
回答量:1.2万
采纳率:0%
帮助的人:3368万
展开全部
假设A,B,X已经进入。
/ /算法不考虑的准确性失踪
(> BX)
- = BX
INT I = 0;
bool标志; BR />(1)
{
(X /(2 ^ I))* B>)
{+ +;继续;}
(X /(2 ^ I-1)* B <)
{标志= FALSE;休息;}
-= X /(2 ^ i)条)* B;
(一== 0)
{标志= TRUE;休息;}
}
(标志)法院<<“\ n”;
其他法院<<“无\ n “;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式