一道acm的水题帮我看下哪里错了

http://acm.nbut.cn/Problem/view.xhtml?id=1100原题在这里我的代码#include<stdio.h>#include<stdli... http://acm.nbut.cn/Problem/view.xhtml?id=1100原题在这里
我的代码
#include<stdio.h>
#include<stdlib.h>
struct table
{
int begin;
int end;
}data[210];
int cmp( const void *a , const void *b)
{
struct table *c = (struct table *)a;
struct table *d = (struct table *)b;
return c->end-d->end;
}
int a[210];
int main()
{
int i,j,t,x,k,n,count;
while(~scanf("%d",&n))
{
x=0;
for(i=0;i<n;i++)
{
count=1;
scanf("%d",&t);
for(j=0;j<t;j++)
{
scanf("%d %d",&data[j].begin,&data[j].end);
}
qsort(data,t,sizeof(data[0]),cmp);
for(k=1;k<t;k++)
{
if(data[k].begin>data[k-1].end)
{
continue;
}
else
count++;
}
a[x++]=count*10;
}
for(i=0;i<x;i++)
{
printf("%d\n",a[i]);
}
}
}
我的思路就是将 每一组桌子的end进行升序排列,然后将第一组开始的begin与它后面的end进行大小比较, 是不是我想的太简单了?
展开
 我来答
萌新妮可笑眯眯
推荐于2016-10-20 · TA获得超过211个赞
知道答主
回答量:51
采纳率:0%
帮助的人:60.8万
展开全部
  1. 想法的确太简单。这道题目只扫一遍是出不来的。

  2. 细节:奇偶没有考虑、没考虑begin比end大的情况。

  3. 下面看看我的ac代码吧,思想是模拟过程,一遍遍扫,把能在一回合内同时搬运的桌子都全部搬掉,直到全部搬完。


#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct Node
{
int s,t;
bool used;
bool operator<(const Node& rhs) const
{
return s<rhs.s;  //按begin排序
}
}a[210];
int n;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&a[i].s,&a[i].t);
a[i].used=false;
if(a[i].s>a[i].t) swap(a[i].s,a[i].t); //当begin>end,交换
if(a[i].s%2==0) a[i].s--; //处理奇偶情况,将偶数全变为奇数,防止重叠
if(a[i].t%2==0) a[i].t--;
}
sort(a,a+n);
int ans=0; //答案
int cnt=0; //已经移动的桌子数
while(cnt<n) //一遍一遍的扫,将一遍之内可以同时搬运的used全部置为true
{
int tmp=0; 
for(int i=0;i<n;i++)
{
if(!a[i].used && a[i].s>tmp)
{
a[i].used=true;
tmp=a[i].t;
cnt++;
}
}
ans++; //统计扫了几遍
}
printf("%d\n",ans*10);
}
return 0;
}
追问
恩 我也做出来了 主要忘记 1和2 对应的是同一个过道 谢谢!
xx_lyq00
2014-01-26 · TA获得超过4140个赞
知道大有可为答主
回答量:1794
采纳率:84%
帮助的人:826万
展开全部
~scanf("%d",&n)你确定这个没问题?

一般是写 scanf("%d",&n)!=EOF。。。
scanf 返回值是输入的个数。。。
追问
这个没错的  问题不在这^   我的这个计算的方法 有没有错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式