垃圾D题 啊啊啊啊CodeForces

来源:互联网 发布:mac更换登录帐号 编辑:程序博客网 时间:2024/06/05 23:53

垃圾  垃圾啊!!!!

这么水的一题应该分分钟搞定的

错了6次一直往下掉感觉跟脑子有问题一样一直在检查代码,看题意,傻逼的不知道多用几组测试数据

就是最后10分钟 随便试了一组测试数据;

10 2

2 4 7 9 12 14 16 17 21 23

一看就知道自己错在哪里了;就是后面求 t 的前面部分,吧判断条件写错了,他跟 t' 后面部分是不一样的,t后面大于 ,而t前面应该是小于

positive integer(正整数 )

#include <iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>using namespace std;int n,k;const int maxn=1000+5;int h[maxn];int a[maxn];struct Node{    int x,hi;    char ch;    Node (int xx=0,int hii=0,char chh='-')    {        if(hii<0)            hii=-hii;        x=xx;hi=hii;ch=chh;    }    void print()    {        cout<<ch<<" "<<x<<" "<<hi<<endl;    }    bool operator <(const Node &s)const    {        return x<s.x;    }};vector<Node> ans;int main(){    cin>>n>>k;    ans.clear();    for(int i=1;i<=n;i++)    {        cin>>h[i];    }    int minn=n;    int t=0;    for(int i=1;i<=n;i++)    {        int num=0;        memset(a,0,sizeof(a));        a[i]=h[i];        int flag=0;          for(int j=i+1;j<=n;j++)          {              a[j]=h[j];              if(a[j]-a[j-1]!=k)            {    a[j]=a[j-1]+k;                 num++;            }          }          for(int j=i-1;j>=1;j--)          {              a[j]=h[j];              if(a[j+1]-a[j]!=k)                {num++;                 a[j]=a[j+1]-k;                 if(a[j]<=0)                  {                   flag=1;                   break;                  }                }          }          if(num<minn&&!flag)            {minn=num;             t=i;            }    }      cout<<minn<<endl;      for(int j=t+1;j<=n;j++)    {        int oj=h[j]-h[j-1];       if(oj!=k)      {    h[j]=h[j-1]+k;          if(oj>k)          {               ans.push_back(Node(j,oj-k,'-'));          }         else            ans.push_back(Node(j,k-oj,'+'));     }    }    for(int j=t-1;j>=1;j--)    {         int oj=h[j+1]-h[j];       if(oj!=k)      {    h[j]=h[j+1]-k;       //cout<<h[j]<<endl;          if(oj<k)//wawawawawawawawawawawawawawaw!!!!!!siyuci          {    //cout<<oj-k<<endl;               ans.push_back(Node(j,oj-k,'-'));          }         else            ans.push_back(Node(j,k-oj,'+'));     }    }    //cout<<t<<endl;    sort(ans.begin(),ans.end());    for(int i=0;i<ans.size();i++)        ans[i].print();   // cout << "Hello world!" << endl;    return 0;}


原创粉丝点击