[水]ZOJ1029[有需要查错]

来源:互联网 发布:淘宝lee代购 编辑:程序博客网 时间:2024/05/22 05:25

给出若干个区间,问每个点被最多覆盖了多少次,

相对房间的走廊看作是一个点然后求每个点被覆盖的次数就是需要多少时间才能搬完箱子,

用两种姿势写了但第一种不知道为什么就WA了...

换姿势才过了【= =有空看看到底哪里错了】

 5WA 1CE...

AC版本

#include<bits/stdc++.h>using namespace std;void Gao(){    int n;    int a[210]={0};    cin>>n;    for (int i=0;i<n;i++)    {        int x,y,t1,t2;        cin>>t1>>t2;        x=min(t1,t2);y=max(t1,t2);        a[(x+1)/2]+=1;a[(y+1)/2 +1]-=1;    }    int ans=0;    for (int i=1;i<=205;i++)    {        a[i]+=a[i-1];        ans=max(ans,a[i]);    }    cout<<ans*10<<endl;}int main(){   //freopen("a.in","r",stdin);    int T;    cin>>T;    while (T--)        Gao();    return 0;}
WA3次 版本【待查错】

#include <bits/stdc++.h>using namespace std;typedef pair<int,int> PII;void Gao(){    vector<PII> a;    bool vis[300]={0};    int n;    cin>>n;    for(int i=0;i<n;i++)    {        int x,y,t1,t2;        cin>>x>>y;        t2=max(x,y);        t1=min(x,y);        t2=(t2+1)/2;        t1=(t1+1)/2;       // cout<<t1<<" "<<t2<<endl;        a.push_back(make_pair(t2,t1));    }    sort(a.begin(),a.end());    int ans=0;    for (int i=0;i<n;i++)    {        if (vis[i])            continue;        ans++;        int ed=a[i].first;        vis[i]=true;        for (int j=i+1;j<n;j++)        {            if (!vis[j] && a[j].second >ed )            {                ed=a[j].first;                vis[j]=true;            }        }    }    cout<<ans*10<<endl;}int main(){    //freopen("a.in","r",stdin);    int T;    cin>>T;    while (T--)        Gao();    return 0;}



0 0
原创粉丝点击